カスタム トレーニング ジョブ(Vertex AI API の CustomJob
リソース)は、Vertex AI でカスタム機械学習(ML)トレーニング コードを実行するための基本的な方法です。
ジョブを送信する前に
Vertex AI で CustomJob
を作成する前に、Python トレーニング アプリケーションまたはカスタム コンテナ イメージを作成して、Vertex AI で実行するトレーニング コードと依存関係を定義する必要があります。
このガイドの後半で説明する Google Cloud CLI の自動パッケージ化機能を使用することをおすすめします。この機能を使用すると、1 つのコマンドでローカルマシン上のコードから Docker コンテナ イメージを作成して Container Registry に push し、CustomJob
を作成できます。
この機能を使用しない場合は、Python トレーニング アプリケーションまたはカスタム コンテナ イメージを手動で作成する必要があります。
どちらを選択すべきか判断に迷う場合は、トレーニング コードの要件をご覧ください。
カスタムジョブの内容
カスタムジョブを作成する場合、Vertex AI がトレーニング コードを実行するために必要な設定を指定します。次のような設定になります。
- 単一ノード トレーニング用のワーカープール(
WorkerPoolSpec
)または分散トレーニング用の複数のワーカープール - ジョブ スケジューリングの構成のオプション設定(
Scheduling
)、トレーニング コード用の特定の環境変数の設定、カスタム サービス アカウントの使用、VPC ネットワーク ピアリングの使用
ワーカープールでは次の設定を指定できます。
- マシンタイプとアクセラレータ
- ワーカープールで実行するトレーニング コードの種類の構成: Python トレーニング アプリケーション(
PythonPackageSpec
)またはカスタム コンテナ(ContainerSpec
)のいずれか
分散トレーニングを構成する
分散トレーニングに CustomJob
を構成するには、複数のワーカープールを指定します。
このページのほとんどの例では、1 つのワーカープールを持つ単一レプリカ トレーニング ジョブを示しています。分散トレーニング用に変更するには:
- 最初のワーカープールを使用してプライマリ レプリカを構成し、レプリカ数を 1 に設定します。
- 機械学習フレームワークが分散トレーニング用のこれらの追加クラスタタスクをサポートしている場合は、ワーカープールを追加して、ワーカー レプリカ、パラメータ サーバー レプリカ、またはエバリュエータ レプリカを構成します。
分散トレーニングの使用方法の詳細をご覧ください。
CustomJob
を作成する
CustomJob
を作成するには、使用するツールのタブを選択して、手順を確認してください。gcloud CLI を使用する場合は、1 つのコマンドでローカルマシン上のトレーニング コードを Docker コンテナ イメージに自動的にパッケージ化し、そのコンテナ イメージを Container Registry に push して CustomJob
を作成できます。他のオプションの場合は、Python トレーニング アプリケーションまたはカスタム コンテナ イメージをすでに作成していることが前提となります。
gcloud
次の例では、gcloud ai custom-jobs create
コマンドを使用しています。
トレーニング コードがローカル コンピュータ上にある場合は、自動パッケージ化ありの手順を行うことをおすすめします。また、Python トレーニング アプリケーションまたはカスタム コンテナ イメージをすでに作成している場合は、自動パッケージ化なしに進んでください。
自動パッケージ化あり
ローカル コンピュータにトレーニング コードがある場合、単一のコマンドで次のことを行うことができます。
- コードに基づいてカスタム Docker イメージをビルドします。
- イメージを Container Registry に push します。
- 画像に応じて
CustomJob
を開始します。
結果は、他のカスタム コンテナを使用した CustomJob
を作成する場合と似ています。ワークフローに役立つ場合は、このバージョンのコマンドを使用できます。
始める前に
このバージョンのコマンドでは、Docker イメージをビルドして push するため、ローカル コンピュータで次の構成を行う必要があります。
Linux を使用している場合は、
sudo
なしで実行できるように Docker を構成します。Container Registry API を有効にします。
Docker イメージを Container Registry に push できるように Docker の認証を構成します。
gcloud auth configure-docker
Docker イメージをビルドして push し、CustomJob
を作成する
次のコマンドは、ビルド済みのトレーニング コンテナ イメージとローカルの Python コードに基づいて Docker イメージをビルドし、Container Registry に push して CustomJob
を作成します。
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=EXECUTOR_IMAGE_URI,local-package-path=WORKING_DIRECTORY,script=SCRIPT_PATH
次のように置き換えます。