Em comparação à versão WebUI, a versão com frontend e backend desacoplados oferece maior desempenho. A instância de backend processa 80% da carga computacional full-stack. Com o uso de tecnologia de aceleração sem perdas, uma única instância de backend gerencia o tráfego de até oito instâncias de frontend, o que aumenta o throughput e reduz a latência em 25%. Este tópico mostra como implantar a versão desacoplada do CosyVoice2 no Alibaba Cloud PAI-EAS (Elastic Algorithm Service).
Visão geral
Esta solução implanta a versão de alta concorrência do CosyVoice2 e oferece os seguintes benefícios:
Implantação de nível empresarial: utiliza uma arquitetura desacoplada para separar Hift/Flow do Qwen2LM. Isso permite implantar o componente mais custoso em termos de tempo, o Qwen2LM, de forma independente.
Alto throughput: um mecanismo de inferência de alto desempenho aumenta o throughput. Uma única instância do Qwen2LM suporta múltiplas instâncias de Hift/Flow, economizando recursos de GPU e reduzindo custos.
Baixa latência: comparada à implementação open-source, esta solução reduz a latência ponta a ponta de uma única solicitação em 25%.
Se você quiser apenas testar os recursos, implante diretamente a versão WebUI do CosyVoice2.0. Para mais informações, consulte Quickly Deploy a WebUI Service.
Limitações
O WebUI suporta apenas uma única instância de frontend. Para acessar o service a partir de várias instâncias de frontend simultaneamente, use chamadas de API.
Implantação
Scenario-based
Na aba Inference Service, clique em Deploy Service. Na área Scenario-based Model Deployment, clique em Deploy CosyVoice for AI Speech Generation.
-
Na seção Basic Information, configure o Service Name. Em Version selection, escolha High performance. Em seguida, configure os parâmetros das instâncias de backend e frontend.
Frontend instance
Parameter
Description
Environment Information
Deployment version
Selecione uma imagem com base no tipo de recurso. Este tópico usa
cosyvoice-frontend:0.2.0-pytorch2.3.1-gpu-py310-cu128-ubuntu22.04.NotaAs versões das imagens são atualizadas frequentemente. As versões disponíveis no console têm precedência. Se houver várias versões listadas, selecione a mais recente.
Storage Mount
Para implantar múltiplas instâncias de frontend, monte um armazenamento externo para guardar arquivos de áudio enviados ou arquivos de modelo ajustados. O exemplo a seguir utiliza o Standard NAS:
-
Select a file system: selecione um sistema de arquivos existente. Caso não haja nenhum disponível, clique em Create NAS File System.
-
Mount Target: selecione um ponto de montagem. Se não houver nenhum disponível, clique em Create a mount point.
-
File System Path: insira um subcaminho dentro do sistema de arquivos, como
/. -
Mount Path: especifique o caminho de montagem dentro da instância do service, como
/mnt/data/.
NotaCaso não seja necessária alta estabilidade, como em um ambiente de teste, ignore a montagem de armazenamento externo para reduzir custos.
Command to Run, Port
Após selecionar uma imagem, o sistema configura automaticamente o comando e o número da porta. Não os altere.
Observe que, no Command to Run,
--data_direspecifica o diretório de montagem, que deve ser consistente com o caminho de montagem no Storage Mount.Resource Information
Resource Type
Esta solução utiliza Public Resources.
Number of Replicas
Configure conforme o método de invocação:
-
Para chamadas via WebUI: defina como 1.
-
Para chamadas de API: uma única instância de backend suporta até oito instâncias de frontend. Se você tiver uma instância de backend, o número de instâncias de frontend pode variar de 1 a 8.
Deployment
Selecione um tipo de instância GPU com pelo menos 16 GB de memória GPU. Exemplos incluem
ecs.gn8is.4xlargeeml.gu8is.c16m128.1-gu60.Configure a system disk
Recomendamos um disco de sistema de 100 GiB. Esse tamanho ajuda a evitar falhas na implantação causadas por armazenamento insuficiente para o arquivo grande da imagem. Se você não definir esse parâmetro, o PAI-EAS aloca 100 GiB por padrão para este cenário.
VPC configuration
Se você configurou um sistema de arquivos NAS, a VPC será configurada automaticamente. Basta selecionar um grupo de segurança.
Backend instance
Parameter
Description
Environment Information
Deployment version
Selecione uma imagem com base no tipo de recurso. Esta solução usa
cosyvoice-backend:0.2.0-pytorch2.3.1-gpu-py310-cu128-ubuntu22.04.NotaAs versões das imagens são atualizadas frequentemente. As versões disponíveis no console têm precedência. Se houver várias versões listadas, selecione a mais recente.
Command to Run, Port
Após selecionar uma imagem, o sistema configura automaticamente o comando e o número da porta. Não os altere.
Resource Information
Resource Type
Esta solução utiliza Public Resources.
Number of Replicas
Configure conforme necessário. Uma instância de backend pode lidar com até oito instâncias de frontend. Esta solução define o valor como 1.
Deployment
Selecione um tipo de instância GPU com pelo menos 16 GB de memória GPU. Exemplos incluem
ecs.gn8is.4xlargeeml.gu8is.c16m128.1-gu60.Configure a system disk
Recomendamos um disco de sistema de 100 GiB. Esse tamanho ajuda a evitar falhas na implantação causadas por armazenamento insuficiente para o arquivo grande da imagem. Se você não definir esse parâmetro, o PAI-EAS aloca 100 GiB por padrão para este cenário.
VPC configuration
Selecione uma VPC, vSwitch e grupo de segurança. As instâncias de frontend e backend devem estar na mesma VPC. Se nenhuma VPC estiver disponível, consulte Create and manage VPCs e Manage security groups.
-
Após configurar os parâmetros, clique em Deploy. Quando o Service Status mudar para Running, a implantação terá sido concluída com sucesso.
Custom
Para uma implantação personalizada, implante primeiro a instância de backend e, em seguida, a instância de frontend.
Step 1: CosyVoice-Backend
Faça login no PAI console. Selecione uma região no topo da página. Em seguida, selecione o workspace desejado e clique em Enter Elastic Algorithm Service (EAS).
Clique em Deploy Service. Na seção Inference Service, clique em Custom Deployment na área Custom Model Deployment.
-
Na página Custom Deployment, configure os seguintes parâmetros principais. Após a configuração, clique em Deploy.
Deployment Method: selecione Image-based Deployment.
-
Image Configuration: na lista Alibaba Cloud Image, selecione cosyvoice-backend > cosyvoice-backend:0.2.0-pytorch2.3.1-gpu-py310-cu128-ubuntu22.04.
NotaAs versões das imagens são atualizadas frequentemente. As versões disponíveis no console têm precedência. Se houver várias versões listadas, selecione a mais recente.
Resource Type: esta solução utiliza Public Resources.
Number of Replicas: configure conforme necessário. Uma instância de backend pode lidar com até oito instâncias de frontend. Esta solução define o valor como 1.
Command to Run, Port Number: após selecionar uma imagem, o sistema configura automaticamente o comando e o número da porta. Não os altere.
Deployment: selecione um tipo de instância GPU com pelo menos 16 GB de memória GPU. Exemplos incluem
ecs.gn8is.4xlargeeml.gu8is.c16m128.1-gu60.Configure a system disk: recomendamos um disco de sistema de 100 GiB. Esse tamanho ajuda a evitar falhas na implantação causadas por armazenamento insuficiente para o arquivo grande da imagem. Se você não definir esse parâmetro, o PAI-EAS aloca 100 GiB por padrão para este cenário.
VPC configuration: selecione uma VPC, vSwitch e grupo de segurança. Garanta que a instância de frontend criada posteriormente esteja na mesma VPC. Para mais informações, consulte Create and manage VPCs e Manage security groups.
-
Após a conclusão da implantação (cerca de 3 minutos), obtenha o endpoint da VPC e o Token. Eles serão necessários para conectar a instância de frontend.
Clique no nome do service alvo. Na seção Basic Information, clique em View Endpoint Information.
-
No painel Invocation Information, acesse a aba Shared Gateway. Anote o VPC endpoint e o Token. Clique no ícone de olho para visualizar o token e no ícone de cópia para copiá-lo.
NotaAo conectar uma instância de frontend a uma de backend, não utilize o endpoint público. O uso do endpoint público é mais lento e gera cobranças adicionais.
Step 2: CosyVoice-Frontend
Faça login no PAI console. Selecione uma região no topo da página. Em seguida, selecione o workspace desejado e clique em Enter Elastic Algorithm Service (EAS).
Clique em Deploy Service. Na seção Inference Service, clique em Custom Deployment na área Custom Model Deployment.
-
Na página Custom Deployment, configure os seguintes parâmetros principais. Após a configuração, clique em Deploy.
Deployment Method: selecione Image-based Deployment e marque a caixa de seleção Enable Web App.
-
Image Configuration: na lista Alibaba Cloud Image, selecione cosyvoice-frontend > cosyvoice-frontend:0.2.0-pytorch2.3.1-gpu-py310-cu128-ubuntu22.04 .
NotaAs versões das imagens são atualizadas frequentemente. As versões disponíveis no console têm precedência. Se houver várias versões listadas, selecione a mais recente.
-
Storage Mount: para implantar múltiplas instâncias de frontend, monte um armazenamento externo para guardar arquivos de áudio enviados ou arquivos de modelo ajustados. O exemplo a seguir utiliza o Standard NAS:
File System: selecione um sistema de arquivos existente. Caso não haja nenhum disponível, clique em Create NAS File System.
Mount Target: selecione um ponto de montagem. Se não houver nenhum disponível, clique em Create a mount point.
File System Path: insira um subcaminho dentro do sistema de arquivos, como
/.Mount Path: especifique o caminho de montagem dentro da instância do service, como
/mnt/data/.
NotaCaso não seja necessária alta estabilidade, como em um ambiente de teste, ignore a montagem de armazenamento externo para reduzir custos.
-
Command to Run: após selecionar uma imagem, o sistema fornece automaticamente um comando. Atualize os seguintes parâmetros no comando:
/bin/bash /tmp/entry.sh --action=start_frontend --port=9000 --data_dir=/mnt/data/ --model_dir=/nasmnt/models/pretrained_models/CosyVoice2-0.5B/ --ttsfrd_dir=/nasmnt/models/pretrained_models/CosyVoice-ttsfrd/ --llm_api_key=token --llm_base_url=http://cosyvoice-server-ip:8000/v1--workers: define o número de workers para o service de frontend. Se não for especificado, o sistema aloca workers com base nas especificações de recurso selecionadas. Para acessar a página WebUI pelo navegador, defina explicitamente
--workerscomo 1.--port: o número da porta do service. Deve corresponder ao número da porta configurado para o service.
--data_dir: o diretório de montagem. Deve corresponder ao Mount path nas configurações de Storage Mount.
--model_dir: o caminho de carregamento do modelo. Se você usar armazenamento externo para arquivos de modelo ajustados, ajuste este caminho de acordo com seu caminho de montagem.
--llm_api_key: defina como o Token do service CosyVoice-Backend. Por exemplo,
Yjk4YjdlNjM1YW*****GIxZDRmZmNhMjRjZmQwMz*****.--llm_base_url: defina como o endpoint da VPC do service CosyVoice-Backend e adicione
/v1ao final. Por exemplo,http://11577032709*****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/cosyvoice_backend1/v1.
Resource Type: esta solução utiliza Public Resources.
Deployment: selecione um tipo de instância GPU com pelo menos 16 GB de memória GPU. Exemplos incluem
ecs.gn8is.4xlargeeml.gu8is.c16m128.1-gu60.-
Number of Replicas: configure conforme o método de invocação:
Para chamadas via WebUI: defina como 1.
Para chamadas de API: uma única instância de backend suporta até oito instâncias de frontend. Se você tiver uma instância de backend, o número de instâncias de frontend pode variar de 1 a 8.
Configure a system disk: recomendamos um disco de sistema de 100 GiB. Esse tamanho ajuda a evitar falhas na implantação causadas por armazenamento insuficiente para o arquivo grande da imagem. Se você não definir esse parâmetro, o PAI-EAS aloca 100 GiB por padrão para este cenário.
VPC configuration: se você configurou um sistema de arquivos NAS, a VPC será configurada automaticamente. Basta selecionar um grupo de segurança. Certifique-se de que ele esteja na mesma VPC da instância de backend.
Gerar áudio
A implantação baseada em cenário agrega os dois services de uma implantação personalizada em um único service, exibido na aba Inference Service. Observe as seguintes diferenças:
Implantação personalizada: acesse o WebUI e faça chamadas de API através do service da instância de frontend.
Implantação baseada em cenário: o WebUI não é suportado. Faça chamadas de API utilizando as informações de invocação do service agregado.
Usar a API
Faça chamadas de API usando as informações de invocação do service da instância de frontend (para implantações personalizadas) ou do service agregado (para implantações baseadas em cenário). Para detalhes, consulte API Reference.
FAQ
P: Por que ocorre um erro 404 {"detail":"Not Found"} nas chamadas de API?
Um erro 404 geralmente indica um caminho de solicitação incorreto. Ao implantar um service com frontend e backend desacoplados, direcione as chamadas de API para o service de frontend. Esse erro ocorre se você usar o endpoint do service de backend. Verifique se o caminho da sua solicitação aponta para o service de frontend.