google-cloud-aiplatform SDK の CustomJob クラスを介して Vertex AI と連携します。CustomJob のパラメーターは Launch キュー設定で制御できます。Vertex AI では、Google Cloud 外部のプライベート レジストリからイメージをプルするように設定することはできません。そのため、W&B Launch で Vertex AI を使用する場合は、コンテナーイメージを Google Cloud またはパブリック レジストリに保存する必要があります。Vertex ジョブからコンテナーイメージにアクセスできるようにする方法の詳細については、Vertex AI のドキュメントを参照してください。
前提条件
Launch キューを設定する前に、以下の Google Cloud リソースと権限が準備されていることを確認してください。- Vertex AI API を有効にした Google Cloud プロジェクトを作成するか、既存のプロジェクトにアクセスできるようにします。 API の有効化の詳細については、Google Cloud API Console のドキュメントを参照してください。
- Vertex で実行するイメージを保存するための Google Cloud Artifact Registry リポジトリを作成します。詳細については、Google Cloud Artifact Registry のドキュメントを参照してください。
- Vertex AI がメタデータを保存するための ステージング用 GCS バケットを作成します。ステージングバケットとして使用するには、このバケットを Vertex AI ワークロードと同じリージョンに配置する必要があります。ステージングとビルドコンテキストには同じバケットを使用できます。
- Vertex AI ジョブを起動するために必要な権限を持つ サービスアカウントを作成します。サービスアカウントへの権限の割り当ての詳細については、Google Cloud IAM のドキュメントを参照してください。
- 次の表に示すとおり、サービスアカウントに Vertex ジョブを管理する権限を付与します。
Vertex AI ワークロードに標準以外のサービスアカウントのアイデンティティを引き受けさせる場合は、サービスアカウントの作成方法と必要な権限について Vertex AI のドキュメントを参照してください。W&B run で使用するカスタムサービスアカウントを選択するには、launch キュー設定の
spec.service_account フィールドを使用します。Vertex AI 用のキューを設定する
Google Cloud の前提条件が整ったら、次に、W&B Launch が Vertex AI ジョブを送信する際に使用するキュー設定を計画します。Vertex AI リソースのキュー設定では、Vertex AI Python SDK のCustomJob コンストラクターと、CustomJob の run メソッドに渡す入力を指定します。リソース設定は spec キーと run キーの下に格納されます。
specキーには、Vertex AI Python SDK のCustomJobコンストラクターの名前付き引数に渡す値を指定します。runキーには、Vertex AI Python SDK のCustomJobクラスのrunメソッドの名前付き引数に渡す値を指定します。
spec.worker_pool_specs リストでカスタマイズします。ワーカープール仕様では、ジョブを実行するワーカーのグループを定義します。デフォルト設定のワーカー仕様では、アクセラレーターなしの n1-standard-4 マシンを 1 台要求します。マシンタイプ、アクセラレータータイプ、アクセラレーターの数は、必要に応じて変更できます。
利用可能なマシンタイプとアクセラレータータイプの詳細については、Vertex AI のドキュメントを参照してください。
キューを作成する
キュー設定の計画ができたら、Vertex AI をコンピュートリソースとして使用するキューを W&B アプリで作成します。- Launch ページにアクセスします。
- Create Queue ボタンをクリックします。
- キューを作成する Entity を選択します。
- Name フィールドにキューの名前を入力します。
- Resource として Google Cloud Vertex AI を選択します。
-
Configuration フィールドに、Vertex AI 用のキューを設定するで定義した Vertex AI
CustomJobの情報を入力します。デフォルトでは、次のような YAML および JSON のリクエストボディが W&B によって自動入力されます。 - キューの設定が完了したら、Create Queue ボタンをクリックします。
spec.worker_pool_specs: ワーカープール仕様のリスト (空にはできません)。spec.staging_bucket: Vertex AI のアセットとメタデータのステージングに使用する GCS バケット。
Launch エージェントを設定する
キューを作成したら、Launch エージェントを設定して、キューをポーリングし、ジョブを Vertex AI にディスパッチできるようにします。Launch エージェントの設定は設定ファイルで行います。この設定ファイルは、デフォルトでは~/.config/wandb/launch-config.yaml に配置されています。