WebUI 版と比較して、フロントエンドとバックエンドが分離したバージョンは、より高いパフォーマンスを実現します。バックエンドインスタンスが全計算負荷の 80 % を処理します。ロスレス加速技術を活用することで、単一のバックエンドインスタンスで最大 8 台のフロントエンドインスタンスからのトラフィックをサポートできます。これにより、スループットが向上し、エンドツーエンドのレイテンシーが 25 % 削減されます。本トピックでは、Alibaba Cloud PAI-EAS 上で CosyVoice2 のフロントエンド/バックエンド分離版をデプロイする手順について説明します。
機能概要
本ソリューションでは、高同時接続数対応の CosyVoice2 をデプロイし、以下のメリットを提供します:
エンタープライズグレードのデプロイメント:本ソリューションでは、Hift/Flow と Qwen2LM を分離するアーキテクチャを採用し、最も処理時間のかかるコンポーネントである Qwen2LM を独立してデプロイします。
高スループット:高性能推論エンジンを活用してスループットを向上させます。単一の Qwen2LM インスタンスで複数の Hift/Flow インスタンスをサポートできるため、GPU 使用量を削減し、コストを低減できます。
低レイテンシー:オープンソース実装と比較して、リクエストごとのエンドツーエンドレイテンシーを 25 % 削減します。
機能の検証のみを目的とする場合は、CosyVoice2.0 WebUI 版を直接デプロイできます。詳細については、「WebUI サービスの迅速なデプロイ」をご参照ください。
制限事項
WebUI 経由でサービスを呼び出す場合、フロントエンドインスタンスは 1 台のみがサポートされます。複数のフロントエンドインスタンスから同時にサービスにアクセスするには、API 呼び出しを使用する必要があります。
サービスのデプロイ
方法 1:シナリオベースのデプロイメント(推奨)
Inference Service タブで、Deploy Service をクリックします。Scenario-based Model Deployment セクションで、Deploy CosyVoice for AI Speech Generation をクリックします。
Basic Information で、Service Name を設定します。Version selection で、High performance を選択します。その後、バックエンドインスタンスおよびフロントエンドインスタンスのパラメーターをそれぞれ個別に設定します:
フロントエンドインスタンス
パラメーター
説明
Environment Information
デプロイバージョン
リソースタイプに応じてイメージを選択します。本トピックでは
cosyvoice-frontend:0.2.0-pytorch2.3.1-gpu-py310-cu128-ubuntu22.04を使用します。説明イメージのバージョンは頻繁に更新されます。コンソールに表示される最新バージョンをご利用ください。
Storage Mount
複数のフロントエンドインスタンスをデプロイする場合は、アップロードされた音声ファイルやファインチューニング済みモデルファイルを格納するために外部ストレージをマウントします。以下の例では、Standard NAS を使用します:
Select a file system:既存のファイルシステムを選択します。該当するファイルシステムがない場合は、Create NAS File System をクリックして新規作成します。
Mount Target:マウントターゲットを選択します。該当するマウントターゲットがない場合は、Create a mount point をクリックして新規作成します。
File System Path:ファイルシステム内のサブパス(例:
/)を入力します。Mount Path:サービスインスタンス内でのマウントパスを指定します(例:
/mnt/data/)。
説明安定性要件が低い場合(ステージング環境など)は、コスト削減のため外部ストレージのマウントを省略できます。
Command to Run、Port
イメージを選択すると、システムが自動的に実行コマンドおよびポート番号を設定します。変更は不要です。
なお、実行コマンド内で
--data_dirはマウントディレクトリを指定しており、これは「ストレージマウント」で設定したマウントパスと一致する必要があります。Resource Information
Resource Type
本ソリューションでは、Public Resources を使用します。
Number of Replicas
呼び出し方法に応じて設定します:
WebUI 呼び出し:1 のみに設定します。
API 呼び出し:1 台のバックエンドインスタンスで最大 8 台のフロントエンドインスタンスをサポートできます。バックエンドインスタンス数が 1 の場合、フロントエンドインスタンス数は 1~8 の範囲で設定できます。
Deployment
最低 16 GB の VRAM を備えた GPU インスタンスタイプを選択します。例:
ecs.gn8is.4xlarge、ml.gu8is.c16m128.1-gu60。Configure a system disk
イメージファイルが大規模であるため、100 GiB への設定を推奨します。これにより、ストレージ不足によるデプロイ失敗を防止できます。設定しない場合、EAS バックエンドは CosyVoice2.0 シナリオに対してデフォルトで 100 GiB を割り当てます。
VPC configuration
NAS ファイルシステムを構成する場合、システムが自動的に VPC を設定します。セキュリティグループの選択のみが必要です。
バックエンドインスタンス
パラメーター
説明
Environment Information
デプロイバージョン
リソースタイプに応じてイメージを選択します。本ソリューションでは
cosyvoice-backend:0.2.0-pytorch2.3.1-gpu-py310-cu128-ubuntu22.04を使用します。説明イメージのバージョンは頻繁に更新されます。コンソールに表示される最新バージョンをご利用ください。
Command to Run、Port
イメージを選択すると、システムが自動的に実行コマンドおよびポート番号を設定します。変更は不要です。
Resource Information
Resource Type
本ソリューションでは、Public Resources を使用します。
Number of Replicas
必要に応じて設定します。1 台のバックエンドインスタンスで最大 8 台のフロントエンドインスタンスをサポートできます。本ソリューションでは 1 に設定します。
Deployment
リソース仕様は、最低 16 GB の GPU メモリを備えた GPU インスタンスタイプである必要があります。例:
ecs.gn8is.4xlarge、ml.gu8is.c16m128.1-gu60。Configure a system disk
イメージファイルが大規模であるため、100 GiB への設定を推奨します。これにより、ストレージ不足によるデプロイ失敗を防止できます。設定しない場合、EAS バックエンドは CosyVoice2.0 シナリオに対してデフォルトで 100 GiB を割り当てます。
VPC configuration
VPC、vSwitch、セキュリティグループを選択します。フロントエンドおよびバックエンドインスタンスは同一の VPC を使用する必要があります。VPC が存在しない場合は、「VPC の作成と管理」および「セキュリティグループの管理」をご参照ください。
パラメーターを設定後、Deploy をクリックします。サービスステータス が 実行中 に変化した時点で、サービスのデプロイが正常に完了します。
方法 2:カスタムデプロイメント
カスタムデプロイメントを行う場合、バックエンドインスタンスを先にデプロイし、その後フロントエンドインスタンスをデプロイする必要があります。
ステップ 1:CosyVoice-Backend インスタンスのデプロイ
-
PAI コンソール にログインします。ページ上部でリージョンを選択し、目的のワークスペースを選択して、Elastic Algorithm Service (EAS) をクリックします。
Custom Deployment ページで、主要なパラメーターを設定し、Deploy をクリックします。
Deployment Method として、Image-based Deployment を選択します。
Image Configuration:「Alibaba Cloud Image」リストから、cosyvoice-backend > cosyvoice-backend:0.2.0-pytorch2.3.1-gpu-py310-cu128-ubuntu22.04 を選択します。
説明イメージのバージョンは頻繁に更新されます。コンソールに表示される最新バージョンをご利用ください。
Resource Type: Public Resources を選択します。
Number of Replicas:必要に応じてレプリカ数を設定します。バックエンドインスタンスは最大 8 台のフロントエンドインスタンスをサポートできます。本ソリューションではこのパラメーターを 1 に設定します。
Command to Run および Port Number:イメージを選択すると、システムが自動的に実行コマンドおよびポート番号を設定します。変更は不要です。
Deployment:VRAM が最低 16 GB の GPU インスタンスタイプ(例:
ecs.gn8is.4xlarge、ml.gu8is.c16m128.1-gu60)を選択します。Configure a system disk:イメージファイルが大規模であるため、システムディスクを 100 GiB に設定することを推奨します。これにより、ストレージ不足によるデプロイ失敗を防止できます。サイズを指定しない場合、EAS バックエンドは CosyVoice2.0 シナリオに対してデフォルトで 100 GiB を割り当てます。
VPC configuration:VPC、vSwitch、セキュリティグループを選択します。選択した VPC がフロントエンドインスタンスで使用される VPC と一致していることを確認してください。「VPC の作成と管理」および「セキュリティグループの管理」をご参照ください。また、選択した VPC が CosyVoice-Frontend サービスと一致していることも確認してください。
デプロイが完了(所要時間は約 3 分)すると、VPC エンドポイントおよびトークンを取得します。フロントエンドインスタンスは、これらの情報を使用してバックエンドインスタンスに接続します。
対象のサービス名をクリックし、Basic Information セクションで、View Endpoint Information をクリックします。
Invocation Information パネルで、エンドポイントおよびトークンを確認できます。
説明フロントエンドインスタンスからバックエンドインスタンスへの接続には、インターネットエンドポイントを使用しないでください。この接続方法は遅く、追加の課金が発生します。
ステップ 2:CosyVoice-Frontend インスタンスのデプロイ
-
PAI コンソール にログインします。ページ上部でリージョンを選択し、目的のワークスペースを選択して、Elastic Algorithm Service (EAS) をクリックします。
Custom Deployment ページで、以下の主要なパラメーターを設定します。設定後、Deploy をクリックします。
Deployment Method: Image-based Deployment を選択し、Enable Web App を選択します。
Image Configuration:「Alibaba Cloud Image」リストから、cosyvoice-frontend > cosyvoice-frontend:0.2.0-pytorch2.3.1-gpu-py310-cu128-ubuntu22.04 を選択します。
説明イメージのバージョンは頻繁に更新されます。コンソールに表示される最新バージョンをご利用ください。
Storage Mount:複数のフロントエンドインスタンスをデプロイする場合は、アップロードされた音声ファイルやファインチューニング済みモデルファイルを格納するために外部ストレージをマウントできます。以下の例では、Standard NAS を使用します:
File System:既存のファイルシステムを選択できます。該当するファイルシステムがない場合は、Create NAS File System をクリックして新規作成できます。
Mount Target:マウントターゲットを選択します。マウントターゲットが利用できない場合は、Create a mount point をクリックして新規作成します。
File System Path:ファイルシステム内のサブパス(例:
/)を入力します。Mount Path:サービスインスタンス内でのマウントパスを指定します(例:
/mnt/data/)。
説明ステージング環境など、安定性要件が低い場合は、コスト削減のため外部ストレージのマウントを省略できます。
Command to Run:イメージを選択すると、システムが自動的に以下の実行コマンドを設定します:
/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:フロントエンドサービスのワーカー数を設定します。このパラメーターを指定しない場合、システムは選択したリソース仕様に基づいて値を割り当てます。ブラウザで WebUI ページにアクセスする場合は、--workersを明示的に 1 に設定してください。--port:サービスポート番号であり、サービス設定で構成したポートと一致する必要があります。
--data_dir:マウントディレクトリであり、「ストレージマウント」で構成したマウントパスと一致する必要があります。--model_dir:モデルの読み込みパスを指定します。ファインチューニング済みモデルファイルを外部ストレージで使用する場合は、マウントパスに応じてこのパスを調整してください。--llm_api_key:CosyVoice-Backend サービスのトークンです。例:Yjk4YjdlNjM1YW*****GIxZDRmZmNhMjRjZmQwMz*****。--llm_base_url:CosyVoice-Backend サービスの VPC エンドポイントに/v1を付加したものを設定します。例:http://11577032709*****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/cosyvoice_backend1/v1。
Resource Type:本ソリューションでは、Public Resources を使用します。
Deployment:リソースは、最低 16 GB の GPU メモリを必要とする GPU インスタンスタイプである必要があります。例:
ecs.gn8is.4xlarge、ml.gu8is.c16m128.1-gu60。Number of Replicas:必要なレプリカ数は呼び出し方法によって異なります:
WebUI 呼び出し:このパラメーターを 1 に設定します。
API 呼び出し:1 台のバックエンドインスタンスで最大 8 台のフロントエンドインスタンスをサポートできます。バックエンドインスタンスが 1 台の場合、フロントエンドインスタンス数を 1~8 の範囲で設定できます。
Configure a system disk:大規模なイメージファイルに対応し、ストレージ不足によるデプロイ失敗を防止するため、システムディスクを 100 GiB に設定することを推奨します。このパラメーターを設定しない場合、EAS バックエンドは CosyVoice 2.0 シナリオに対してデフォルトで 100 GiB を割り当てます。
VPC configuration:NAS ファイルシステムを構成する場合、システムが自動的に VPC を設定します。バックエンドインスタンスで使用される VPC と一致するセキュリティグループを選択するだけで済みます。
推論サービスを用いた音声生成
シナリオベースのデプロイメントでは、カスタムデプロイメント方式の 2 つのサービスを統合し、推論サービスタブ上で単一のサービスとして表示します。サービスを利用する際は、以下の点にご注意ください:
カスタムデプロイメント: WebUI ページへのアクセスおよびフロントエンドサービス経由での API 呼び出しが可能です。
シナリオベースのデプロイメント: WebUI はサポートされていません。集約サービスのエンドポイント情報を用いた API 呼び出しのみが可能です。
API 呼び出し
API 呼び出しは、フロントエンドサービス(カスタムデプロイメントの場合)または集約サービス(シナリオベースのデプロイメントの場合) のエンドポイント情報を使用して行います。詳細については、「API 操作リファレンス」をご参照ください。
よくある質問
Q:CosyVoice API の呼び出しでエラーが返される 404 {"detail":"Not Found"}
A:404 エラーは、通常、リクエスト URI が不正であることを示します。フロントエンドとバックエンドが分離したデプロイメントを使用する場合、API リクエストはフロントエンドサービスに送信する必要があります。バックエンドサービスのエンドポイントを使用した場合にこのエラーが発生します。使用しているエンドポイントを確認することを推奨します。