> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# チュートリアル: Vertex AI で W&B Launch を設定する

> CustomJob spec と Artifact Registry を使用して、ML ワークロード向けに Google Cloud Vertex AI で W&B Launch を設定します。

このチュートリアルでは、ジョブを Vertex AI トレーニング ジョブとして実行するよう W\&B Launch を設定する手順を説明します。これにより、トレーニング ワークロードを Google Cloud のマネージド インフラストラクチャーにオフロードできます。Vertex AI トレーニング ジョブでは、Vertex AI プラットフォーム上で、組み込みのアルゴリズムまたはカスタム アルゴリズムを使用して機械学習モデルをトレーニングできます。Launch job を開始すると、基盤となるインフラストラクチャー、スケーリング、オーケストレーションは Vertex AI が管理します。このガイドは、W\&B Launch をすでに使用しており、Google Cloud Vertex AI でジョブを実行したい ML エンジニアおよびプラットフォーム管理者を対象としています。

W\&B Launch は、`google-cloud-aiplatform` SDK の `CustomJob` クラスを介して Vertex AI と連携します。`CustomJob` のパラメーターは Launch キュー設定で制御できます。Vertex AI では、Google Cloud 外部のプライベート レジストリからイメージをプルするように設定することはできません。そのため、W\&B Launch で Vertex AI を使用する場合は、コンテナーイメージを Google Cloud またはパブリック レジストリに保存する必要があります。Vertex ジョブからコンテナーイメージにアクセスできるようにする方法の詳細については、Vertex AI のドキュメントを参照してください。

<h2 id="prerequisites">
  前提条件
</h2>

Launch キューを設定する前に、以下の Google Cloud リソースと権限が準備されていることを確認してください。

1. **Vertex AI API を有効にした Google Cloud プロジェクトを作成するか、既存のプロジェクトにアクセスできるようにします。** API の有効化の詳細については、[Google Cloud API Console のドキュメント](https://support.google.com/googleapi/answer/6158841?hl=en)を参照してください。
2. Vertex で実行するイメージを保存するための **Google Cloud Artifact Registry リポジトリを作成します**。詳細については、[Google Cloud Artifact Registry のドキュメント](https://cloud.google.com/artifact-registry/docs/overview)を参照してください。
3. Vertex AI がメタデータを保存するための **ステージング用 GCS バケットを作成します**。ステージングバケットとして使用するには、このバケットを Vertex AI ワークロードと同じリージョンに配置する必要があります。ステージングとビルドコンテキストには同じバケットを使用できます。
4. Vertex AI ジョブを起動するために必要な権限を持つ **サービスアカウントを作成します**。サービスアカウントへの権限の割り当ての詳細については、[Google Cloud IAM のドキュメント](https://cloud.google.com/iam/docs/creating-managing-service-accounts)を参照してください。
5. 次の表に示すとおり、**サービスアカウントに Vertex ジョブを管理する権限を付与します**。

| 権限 | リソーススコープ | 説明 |
| - | - | - |
| `aiplatform.customJobs.create` | 指定した Google Cloud プロジェクト | プロジェクト内で新しい機械学習ジョブを作成できます。 |
| `aiplatform.customJobs.list` | 指定した Google Cloud プロジェクト | プロジェクト内の機械学習ジョブを一覧表示できます。 |
| `aiplatform.customJobs.get` | 指定した Google Cloud プロジェクト | プロジェクト内の特定の機械学習ジョブに関する情報を取得できます。 |

<Note>
  Vertex AI ワークロードに標準以外のサービスアカウントのアイデンティティを引き受けさせる場合は、サービスアカウントの作成方法と必要な権限について Vertex AI のドキュメントを参照してください。W\&B run で使用するカスタムサービスアカウントを選択するには、launch キュー設定の `spec.service_account` フィールドを使用します。
</Note>

<h2 id="configure-a-queue-for-vertex-ai">
  Vertex AI 用のキューを設定する
</h2>

Google Cloud の前提条件が整ったら、次に、W\&B Launch が Vertex AI ジョブを送信する際に使用するキュー設定を計画します。Vertex AI リソースのキュー設定では、Vertex AI Python SDK の `CustomJob` コンストラクターと、`CustomJob` の `run` メソッドに渡す入力を指定します。リソース設定は `spec` キーと `run` キーの下に格納されます。

* `spec` キーには、Vertex AI Python SDK の [`CustomJob` コンストラクター](https://cloud.google.com/vertex-ai/docs/pipelines/customjob-component)の名前付き引数に渡す値を指定します。
* `run` キーには、Vertex AI Python SDK の `CustomJob` クラスの `run` メソッドの名前付き引数に渡す値を指定します。

実行環境は `spec.worker_pool_specs` リストでカスタマイズします。ワーカープール仕様では、ジョブを実行するワーカーのグループを定義します。デフォルト設定のワーカー仕様では、アクセラレーターなしの `n1-standard-4` マシンを 1 台要求します。マシンタイプ、アクセラレータータイプ、アクセラレーターの数は、必要に応じて変更できます。

利用可能なマシンタイプとアクセラレータータイプの詳細については、[Vertex AI のドキュメント](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/MachineSpec)を参照してください。

<h2 id="create-a-queue">
  キューを作成する
</h2>

キュー設定の計画ができたら、Vertex AI をコンピュートリソースとして使用するキューを W\&B アプリで作成します。

1. [Launch ページ](https://forge.coreweave.com/wandb/launch)にアクセスします。

2. **Create Queue** ボタンをクリックします。

3. キューを作成する **Entity** を選択します。

4. **Name** フィールドにキューの名前を入力します。

5. **Resource** として **Google Cloud Vertex AI** を選択します。

6. **Configuration** フィールドに、[Vertex AI 用のキューを設定する](#configure-a-queue-for-vertex-ai)で定義した Vertex AI `CustomJob` の情報を入力します。デフォルトでは、次のような YAML および JSON のリクエストボディが W\&B によって自動入力されます。

   ```yaml theme={"system"}
   spec:
     worker_pool_specs:
       - machine_spec:
           machine_type: n1-standard-4
           accelerator_type: ACCELERATOR_TYPE_UNSPECIFIED
           accelerator_count: 0
         replica_count: 1
         container_spec:
           image_uri: ${image_uri}
     staging_bucket: [STAGING-BUCKET]
   run:
     restart_job_on_worker_restart: false
   ```

7. キューの設定が完了したら、**Create Queue** ボタンをクリックします。

少なくとも次のフィールドは指定する必要があります。

* `spec.worker_pool_specs`: ワーカープール仕様のリスト (空にはできません)。
* `spec.staging_bucket`: Vertex AI のアセットとメタデータのステージングに使用する GCS バケット。

<Warning>
  Vertex AI のドキュメントの一部では、ワーカープール仕様のキーがすべてキャメルケース (例: `workerPoolSpecs`) で記載されています。一方、Vertex AI Python SDK では、これらのキーにスネークケース (例: `worker_pool_specs`) を使用します。

  Launch キュー設定のキーには、すべてスネークケースを使用してください。
</Warning>

<h2 id="configure-a-launch-agent">
  Launch エージェントを設定する
</h2>

キューを作成したら、Launch エージェントを設定して、キューをポーリングし、ジョブを Vertex AI にディスパッチできるようにします。Launch エージェントの設定は設定ファイルで行います。この設定ファイルは、デフォルトでは `~/.config/wandb/launch-config.yaml` に配置されています。

```yaml theme={"system"}
max_jobs: [N-CONCURRENT-JOBS]
queues:
  - [QUEUE-NAME]
```

Vertex AI で実行するイメージを Launch エージェントにビルドさせる場合は、[エージェントの高度な設定](/ja/products/wandb/platform/launch/setup-agent-advanced)を参照してください。

<h2 id="set-up-agent-permissions">
  エージェントの権限を設定する
</h2>

最後に、前提条件で作成したサービスアカウントとして動作するために必要な認証情報を Launch エージェントに付与します。このサービスアカウントとして認証する方法は複数あります。ワークロード アイデンティティ、ダウンロードしたサービスアカウントの JSON、環境変数、Google Cloud Platform のコマンドラインツールのいずれか、またはこれらを組み合わせて認証できます。


## Related topics

- [チュートリアル: Kubernetes で W&B Launch を設定する](/ja/products/wandb/platform/launch/setup-launch-kubernetes.md)
