与WebUI版本相比,Frontend/Backend分离版本提供较高性能。Backend实例承载了全链路80%的算力,通过无损加速技术,可以使一个Backend实例承接8个Frontend实例的流量,从而提升吞吐量,并降低25%的延迟。本文将介绍如何在阿里云PAI-EAS上部署CosyVoice2 Frontend/Backend分离版本。
功能概述
本方案部署CosyVoice2高并发版本,具有如下优势:
企业级部署:采用分离式结构,将Hift/Flow与Qwen2LM解耦合,独立部署最耗时的Qwen2LM。
高吞吐:通过高性能推理引擎提升吞吐量,单个Qwen2LM实例可支持多个Hift/Flow,节省了GPU使用量,进而降低成本。
低延时:与开源实现相比,单个请求的端到端延迟降低25%。
如仅用于功能体验,可直接部署CosyVoice2.0 WebUI版本,详情请参见快速部署WebUI服务。
使用限制
通过WebUI调用服务时,仅支持使用单个Frontend实例。若需同时通过多个Frontend实例访问服务,请使用API方式调用。
部署服务
1. 创建CosyVoice-Backend实例
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在模型在线服务(EAS)页面,单击部署服务,然后在自定义模型部署区域,单击自定义部署。
在自定义部署页面,配置以下关键参数。参数配置完成后,单击部署。
部署方式:选择镜像部署。
镜像配置:在官方镜像列表中选择
。说明镜像版本迭代迅速,以控制台页面为准,如有多个选择最高版本即可。
资源类型:本方案选择公共资源。
实例数:按需配置,一个Backend实例最多可以承接8个Frontend实例。本方案配置为1。
部署资源:资源规格必须选择GPU机型,且最低显存要求为16 GB或以上。例如
ml.gu7i.c32m188.1-gu30
或ecs.gn7i-c32g1.8xlarge
。配置系统盘:建议配置100 GB,因为镜像文件较大,避免因存储空间不足导致服务部署失败。如未配置,EAS后端将默认为CosyVoice2.0场景分配100 GB的存储空间。
专有网络(VPC):选择专有网络、交换机和安全组。请确保与后续创建的Frontend实例在同一VPC内。创建方法,请参见创建和管理专有网络和管理安全组。请确保选择的专有网络与CosyVoice-Frontend服务一致。
部署完成后(约3分钟),获取VPC调用地址和Token,用于Frontend实例连接。
单击目标服务名称,在基本信息区域,单击查看调用信息。
在调用信息配置面板,查询访问地址和Token。
说明Frontend实例连接Backend实例,不建议使用公网调用地址,速度慢,且需额外收费。
2. 创建CosyVoice-Frontend实例
自定义部署模型服务,并配置以下关键参数,参数配置完成后,单击部署。
部署方式:选择镜像部署,并勾选开启Web应用。
镜像配置:在官方镜像列表中选择
。说明镜像版本迭代迅速,以控制台页面为准,如有多个选择最高版本即可。
直接挂载:如需API调用且部署较多Frontend实例,建议挂载外部存储,用于存储上传的音频文件或微调后的模型文件。以通用型NAS为例:
选择文件系统:选择已有文件系统,如无可单击新建文件系统创建。
文件系统挂载点:选择对应挂载点。若无可用项,单击新建文件系统挂载点创建。
文件系统路径:填写该文件系统下的子路径,例如
/
。挂载路径:指定服务实例内挂载路径。例如
/mnt/data/
。
说明如果对稳定性要求较低(如测试环境),可不挂载外部存储,以节省费用。
运行命令:选择镜像后,系统会自动配置运行命令
/bin/bash /tmp/entry.sh --action=start_frontend --workers=1 --port=50000 --data_dir=/mnt/data/ --enable_mps --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:Frontend服务worker数。
--port:服务端口号,必须与服务配置的端口号保持一致。
--data_dir:挂载目录,需与直接挂载中的挂载路径一致。
--model_dir:模型加载路径。若使用外部存储存放微调后的模型文件,需根据挂载路径调整。
--llm_api_key:配置为CosyVoice-Backend服务的Token。例如
Yjk4YjdlNjM1YW*****GIxZDRmZmNhMjRjZmQwMz*****
。--llm_base_url:配置为CosyVoice-Backend服务的VPC调用地址,并在末尾添加
/v1
。例如http://11577032709*****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/cosyvoice_backend1/v1
。
资源类型:本方案选择公共资源。
实例数:按调用方式配置:
WebUI调用:只能配置为1。
API调用:单Backend实例最多支持8个Frontend实例。当Backend实例数为1时Frontend实例数取值范围为[1,8]。
配置系统盘:建议配置100 GB,因为镜像文件较大,避免因存储空间不足导致服务部署失败。如未配置,EAS后端将默认为CosyVoice2.0场景分配100 GB的存储空间。
专有网络(VPC):如配置了NAS文件系统,系统自动配置VPC,仅需选择安全组。确保与Backend实例在同一VPC。
推理服务生成音频
WebUI调用
Frontend服务部署成功后,单击服务名进入详情页面,在右上角单击查看Web应用。在页面中配置参数后单击生成音频,即可根据推理模式生成相应的音频,详情请参见推理服务生成音频。
API调用
支持通过API调用Frontend服务生成音频。具体请参见API接口说明。
常见问题
Q:调用CosyVoice API接口报错404 {"detail":"Not Found"}
A:404通常为请求路径错误。部署Frontend/Backend分离式服务时,API调用请求的是Frontend服务,如果使用Backend服务的调用地址会出现该错误,请检查。