カスタム トレーニングを実施するときは、Vertex AI で実行する ML コードを指定する必要があります。これを行うには、カスタム コンテナまたはビルド済みコンテナで動作する Python トレーニング アプリケーション用にトレーニング コンテナ設定を構成します。
カスタム コンテナとビルド済みコンテナのどちらを使用するかを決定するには、トレーニング コードの要件をご覧ください。
このドキュメントでは、そのどちらのケースでも指定する必要がある Vertex AI API のフィールドについて説明します。
コンテナ設定を指定する場所
構成の詳細は WorkerPoolSpec 内で指定します。カスタム トレーニングの実行方法に応じて、この WorkerPoolSpec を次のいずれかの API フィールドに配置します。
- CustomJobリソースを作成する場合は、- CustomJob.jobSpec.workerPoolSpecsに- WorkerPoolSpecを指定します。- Google Cloud CLI を使用している場合は、 - gcloud ai custom-jobs createコマンドで- --worker-pool-specフラグまたは- --configフラグを使用して、ワーカープール オプションを指定します。- 詳細については、 - CustomJobの作成をご覧ください。
- HyperparameterTuningJobリソースを作成する場合は、- HyperparameterTuningJob.trialJobSpec.workerPoolSpecsに- WorkerPoolSpecを指定します。- gcloud CLI を使用している場合は、 - gcloud ai hpt-tuning-jobs createコマンドで- --configフラグを使用して、ワーカープール オプションを指定します。- 詳細については、 - HyperparameterTuningJobの作成をご覧ください。
- ハイパーパラメータ調整を行わない - TrainingPipelineリソースを作成する場合は、- TrainingPipeline.trainingTaskInputs.workerPoolSpecsに- WorkerPoolSpecを指定します。- 詳細については、カスタムの - TrainingPipelineの作成をご覧ください。
- ハイパーパラメータ調整を行う - TrainingPipelineを作成する場合は、- TrainingPipeline.trainingTaskInputs.trialJobSpec.workerPoolSpecsに- WorkerPoolSpecを指定します。
分散トレーニングを行う場合、ワーカープールごとに異なる設定を使用できます。
コンテナ設定を構成する
ビルド済みコンテナとカスタム コンテナのどちらを使用するかによって、指定する必要のある WorkerPoolSpec 内のフィールドが異なります。ご自身のシナリオに対応するタブを選択してください。
ビルド済みコンテナ
- トレーニングに使用する ML フレームワークをサポートするビルド済みのコンテナを選択します。コンテナ イメージの URI を - pythonPackageSpec.executorImageUriフィールドに指定します。
- pythonPackageSpec.packageUrisフィールドに、Python トレーニング アプリケーションの Cloud Storage URI を指定します。
- pythonPackageSpec.pythonModuleフィールドに、トレーニング アプリケーションのエントリ ポイント モジュールを指定します。
- 必要に応じて、 - pythonPackageSpec.argsフィールドに、トレーニング アプリケーションのエントリ ポイント モジュールに渡すコマンドライン引数のリストを指定します。
次の例は、CustomJob の作成時に、これらのコンテナ設定を指定する場所をハイライト表示しています。
コンソール
 Google Cloud コンソールでは、CustomJob を直接作成できません。ただし、CustomJob を作成する TrainingPipeline を作成することは可能です。 Google Cloud コンソールで TrainingPipeline を作成するときに、[トレーニング コンテナ] ステップで、特定のフィールドにビルド済みコンテナ設定を指定できます。
- pythonPackageSpec.executorImageUri: [モデル フレームワーク] と [モデル フレームワークのバージョン] のプルダウン リストを使用します。
- pythonPackageSpec.packageUris: [Package location] フィールドを使用します。
- pythonPackageSpec.pythonModule: [Python モジュール] フィールドを使用します。
- pythonPackageSpec.args: [引数] フィールドを使用します。
gcloud
gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --python-package-uris=PYTHON_PACKAGE_URIS \
  --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE
詳細については、CustomJob の作成ガイドをご覧ください。
カスタム コンテナ
- containerSpec.imageUriフィールドに、カスタム コンテナの Artifact Registry または Docker Hub URI を指定します。
- 必要に応じて、コンテナ内の - ENTRYPOINTまたは- CMDの命令をオーバーライドする場合は、- containerSpec.commandフィールドまたは- containerSpec.argsフィールドを指定してください。これらのフィールドは、次のルールに対するコンテナの動作に影響します。- どちらのフィールドも指定しない場合: コンテナは、 - ENTRYPOINT命令と- CMD命令(存在する場合)に従って動作します。- CMDと- ENTRYPOINTの相互作用については、Docker のドキュメントを参照してください。
- containerSpec.commandのみを指定する場合: コンテナは、- ENTRYPOINT命令を- containerSpec.commandの値に置き換えて動作します。コンテナに- CMD命令がある場合は、無視されます。
- containerSpec.argsのみを指定する場合: コンテナは- ENTRYPOINT命令に従い、- CMD命令を- containerSpec.argsの値に置き換えて動作します。
- 両方のフィールドを指定する場合: コンテナは、 - ENTRYPOINT命令を- containerSpec.commandに、- CMD命令を- containerSpec.argsにそれぞれ置き換えて動作します。
 
次の例は、CustomJob の作成時に、これらのコンテナ設定の一部を指定する場所をハイライト表示しています。
コンソール
 Google Cloud コンソールでは、CustomJob を直接作成できません。ただし、CustomJob を作成する TrainingPipeline を作成することは可能です。 Google Cloud コンソールで TrainingPipeline を作成するときに、[トレーニング コンテナ] ステップで、特定のフィールドにカスタム コンテナ設定を指定できます。
- containerSpec.imageUri: [コンテナ イメージ] フィールドを使用します。
- containerSpec.command: この API フィールドはGoogle Cloud コンソールでは構成できません。
- containerSpec.args: [引数] フィールドを使用します。
gcloud
gcloud ai custom-jobs create \
  --region=LOCATION \
  --display-name=JOB_NAME \
  --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI
Java
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。詳細については、Vertex AI Java API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。詳細については、Vertex AI Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Vertex AI SDK for Python のインストールまたは更新の方法については、Vertex AI SDK for Python をインストールするをご覧ください。詳細については、Python API リファレンス ドキュメントをご覧ください。
詳細については、CustomJob の作成ガイドをご覧ください。
次のステップ
- CustomJobを作成するして、カスタム トレーニングの実行方法を学習する。