カスタム トレーニングを実施するときは、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
を作成するして、カスタム トレーニングの実行方法を学習する。