メインコンテンツへスキップ
Docker Compose および Docker Swarm によるデプロイは現在ベータ版です。サポートが必要な場合は Cartesia チームにお問い合わせください。
Docker Compose を使って単一マシン上に、または Docker Swarm を使ってマルチノードクラスタ上に Cartesia TTS をデプロイできます。

前提条件

  • Docker がインストールされた 1 台以上のマシン(ユーザーが docker グループに所属している必要があります)
  • Compose のみ: Docker Compose V2(docker compose
  • Swarm のみ: ノードが Docker の Swarm ネットワーキング要件を満たすこと
  • ドライバーがインストールされた NVIDIA GPU を 1 つ以上。対応する NVIDIA GPU 上では MIG(Multi-Instance GPU)パーティショニングがサポートされます
  • GPU ノードで NVIDIA Docker ランタイムがデフォルトに設定されていること(下記参照)
  • cartesia-kube のダウンロードで説明されている cartesia-kube リポジトリをダウンロード済みであること
  • オンボーディング時に提供される Cartesia API キーファイル(container_key)と GCS サービスアカウント JSON ファイル

GPU ランタイムの確認

各 GPU ノードで NVIDIA ランタイムを確認します:
nvidia がデフォルトランタイムでない場合は、NVIDIA Container Toolkit をインストールして次を実行します:
MIG を使用する場合: ホストで MIG を有効化してインスタンスを作成した後、それらが認識されていることを確認します:
デプロイ前に、ホスト側で MIG を有効化してインスタンスを作成する必要があります。MIG インスタンスを再作成すると新しい UUID が生成されるため、その場合はスタックを再デプロイしてください。

ステップ 1 — シークレットの準備

以下のファイルを、ホスト(Compose)またはマネージャーノード(Swarm)に配置します:
  • container_key — Cartesia API キーを含むファイル
  • service-account.jsonroles/artifactregistry.reader(イメージ取得)および roles/storage.objectViewer(GCS 同期)を持つ GCS サービスアカウント JSON
デプロイスクリプトを実行可能にします:

ステップ 2 — クラスタの初期化(Swarm のみ)

Docker Compose を使用する場合はこのステップをスキップしてください。 マネージャーノードで:
出力された docker swarm join コマンドをコピーします。各追加ノードで次を実行します:
マネージャーから各ノードにラベル付けします。docker node ls でノード ID を一覧表示できます:
MIG を使用する場合: MIG が有効なノードに mig=true ラベルと、MIG インスタンスの UUID(そのノード上の nvidia-smi -L から取得)をカンマ区切りで指定したリストを付与します。MIG ノードには gpu=true付けないでください
標準 GPU ノードと MIG ノードが混在するクラスタもサポートされており、デプロイスクリプトが両方のスケジューリングを自動的に処理します。

ステップ 3 — 環境の設定

デプロイ前に 環境変数 を設定します。local/ 配下の .env ファイル(local/.env.example 参照)を使用するか、シェルでエクスポートします。
各変数の詳細は 設定 を参照してください。

ステップ 4 — デプロイ

リポジトリのルートから:
--mig を使用すると、スクリプトは nvidia-smi から MIG インスタンスの UUID を自動検出し、スライスごとのワーカー設定を生成し、標準ワーカーをゼロにスケールします。
TTS ワーカーは GPU メモリへのモデルロードに数分かかります。この間、コンテナが healthy 表示でも TTS リクエストはエラーを返します。ready シグナルを待ってください:

ステップ 5 — 検証

サービスが稼働しているか確認します:
MIG を有効にしてデプロイした場合、各ワーカーが正確に 1 つの MIG デバイスを認識していることを確認します:
API をテストします:
TTS をテストします:

トラブルシューティング

API が no servers available for connection(NATS が未準備)で終了した場合は、スタック起動後に API を再起動します:

設定

デプロイスクリプト実行前に以下の環境変数を設定します。IMAGE_REGISTRYRELEASE_TAGMODEL_NAME はオンボーディング時に Cartesia から提供されます。イメージを自身のレジストリにミラーリングしている場合は、IMAGE_REGISTRY にミラーの URL を指定してください。

必須

オプション