🐺
VertexAIのCustomContainerTrainingJobでTrainする
Vertex AI の CustomContainerTrainingJob を使ってみる
Vertex AI では自前で作成したコンテナをArtifact Registryから指定して使えるので触ってみる
Vertex AI とは
Vertex AI は、MLモデルとAIアプリケーションのトレーニングとデプロイを行う機械学習プラットフォームで
データエンジニアリング、データサイエンス、MLエンジニアリングのワークフローを統合している。
ステップバイステップで実施
公式リポジトリにステップバイステップで実施できそうなREADMEがあるので
そちらを参考にしながら進めてみる
※今回は、あくまでモデルのtrainを実施したいので対象となるステップを参考にして進めています。
主に「Create a custom training job with your container」の部分
TENSORBOARD_NAME = "[your-tensorboard-name]"
if (
TENSORBOARD_NAME == ""
or TENSORBOARD_NAME is None
or TENSORBOARD_NAME == "[your-tensorboard-name]"
):
TENSORBOARD_NAME = PROJECT_ID + "-tb-" + UUID
tensorboard = aiplatform.Tensorboard.create(
display_name=TENSORBOARD_NAME, project=PROJECT_ID, location=LOCATION
)
TENSORBOARD_RESOURCE_NAME = tensorboard.gca_resource.name
print("TensorBoard resource name:", TENSORBOARD_RESOURCE_NAME)
流れ
Artifact Registryに登録する
まずは、作成したdockerイメージをpushする
cliを実行するpythonを実装する
google.cloud.aiplatform
を使ってCLIを作成していきます。
ここではローカルから実行する想定です。
import google.cloud.aiplatform as aiplatform
aiplatform.init(
project=project_id,
location=location,
experiment=experiment,
experiment_tensorboard=False,
staging_bucket="gs://my-bucket",
)
job = aiplatform.CustomContainerTrainingJob(
display_name="my-training-job",
container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-2:latest",
)
job.run(
machine_type=machine_type,
accelerator_type=accelerator_type,
accelerator_count=accelerator_count,
sync=False,
environment_variables={"HOGE": os.environ["HOGE"]},
)
python-aiplatformリポジトリにもサンプル実装が用意されています。
aiplatform.init
いわゆる初期化設定
aiplatform.CustomContainerTrainingJob
Artifact Registoryにpushしたイメージを使用したJob設定ができる
Requiredなparameter
- display_name: TrainingPipelineの名前
- container_uri: GCR内にあるTrainingContainerのイメージuri
aiplatform.CustomContainerTrainingJob.run
- machine_type: トレーニングで使用するマシンを指定
- accelerator_type: ハードウェアアクセラレータのタイプを指定
- accelerator_count: ワーカレプリカにアタッチするアクセラレータの数を指定
- sync: このメソッドを同期的に実行するかどうか
- environment_variables: コンテナに渡す環境変数 ※最大10個の環境変数を指定できるらしい。
scriptを実行する
最後に作成したpythonを実行します。
argparse
など導入してCLI化しておくと使い回せて便利です。
実行後はGCPのVertexAIのコンソール画面を確認すると実行ログが確認できます。
Discussion