Vertex AI Pipelinesとは
Vertex AI Pipelines は、Google Cloud の機械学習パイプライン管理サービスです。ML ワークフローを自動化し、スケーリングし、管理するのに役立ちます。Vertex AI Pipelines を使用すると、パイプラインを記述して、データの準備、モデルのトレーニング、モデルのデプロイを自動化できます。また、パイプラインを継続的インテグレーション/継続的デプロイ (CI/CD) パイプラインに統合して、モデルをより頻繁に更新することもできます。
メリット
- サーバーレス:Vertex AI Pipelines はサーバーレスであるため、インフラストラクチャを管理する必要はありません。
- 自動化:Vertex AI Pipelines を使用すると、パイプラインを記述して、データの準備、モデルのトレーニング、モデルのデプロイを自動化できます。これにより、時間と労力をかけずに、モデルをより頻繁に更新できます。
- スケーリング:Vertex AI Pipelines は、大規模なデータセットやモデルを処理するようにスケーリングできます。これにより、あらゆる規模の ML ワークフローに使用できます。
- 管理:Vertex AI Pipelines は、CI/CD パイプラインに統合して、モデルをより頻繁に更新できます。また、パイプラインの実行を追跡し、パフォーマンスを監視することもできます。
パイプラインの実行
実行ステップ
-
コンポーネントを作成します。
- コンポーネント用のプログラムを作成します。
- Cloud Source Repositories(又はGitHub)にプログラムを登録します。
- Cloud BuildでDockerイメージをAritifact Registry(又はContainer Registry)に登録します。
- コンポーネントをyaml形式で定義します。
💡コンポーネントとは、パイプラインを構成するために使用できる小さな実行可能単位です。コンテナイメージまたはPython関数で記述できます。コンポーネントの種類
-
独自のパイプライン コンポーネント
独自でコンポーネントを定義します。コンポーネント内で、コンテナイメージを指定します。
記述例
pipeline.py
import kfp sample_op = kfp.components.load_component_from_file( "../components/component.yaml")
component.yaml
name: Sample Component description: sample component model inputs: - name: words type: String outputs: - name: data type: String implementation: container: image: gcr.io/xxx command: [python, main.py] args: [--words, { inputValue: words }, --output_path, { outputPath: data }]
-
Python関数ベースのコンポーネント
Python 関数でコンポーネントを生成することができます。
記述例
pipeline.py
import kfp import kfp.dsl as dsl from kfp.v2.dsl import component @component def add(a: float, b: float) -> float: '''Calculates sum of two arguments''' return a + b
-
Google Cloud Pipeline コンポーネントのビルド済みコンポーネント
Google 仕様のコンポーネントです。BigQueryなどのGoogle Cloud プロダクトと連携します。
記述例
pipeline.py
model_deploy_op = ModelDeployOp(model=training_job_run_op.outputs["model"], endpoint=endpoint_op.outputs["endpoint"], automatic_resources_min_replica_count=1, automatic_resources_max_replica_count=1, service_account="SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com")
-
パイプラインを記述します。
パイプラインをPythonで記述してJSON ファイルにコンパイルします。
💡パイプラインは、データ準備、モデルトレーニング、モデルデプロイを含む、ML ワークフローの一連のタスクを定義します。 -
パイプラインを実行します。
パイプラインを実行するには、Vertex AI Pipelines コンソールまたは gcloud コマンドラインツールを使用できます。パイプラインをデプロイすると、Vertex AI Pipelines サービスによって実行されます。
構成図
費用
1つのパイプライン実行あたり下記になります。サーバーレスなので、固定の費用がありません。パイプライン実行数が多くない場合は、GKE上でKubeflowパイプラインを実行するよりもトータルで安くなります。
- 0.03 ドル
- 各コンポーネントのリソース費用
Vertex AI Pipelines では、パイプライン実行ごとに 0.03 ドルの実行手数料がかかります。プレビュー リリース中に実行手数料が請求されることはありません。また、パイプライン コンポーネントによって使用される Compute Engine リソースなど、Vertex AI Pipelines で使用する Google Cloud リソースに対しても課金されます(Vertex AI トレーニングと同じレートで課金されます)。最後に、パイプラインによって呼び出されるすべてのサービス(Dataflow など)の費用については、お客様の責任となります。
参考
公式サイトのVertex AI Pipelinesの概要
チュートリアル
Vertex AI Pipelines Codelab の概要
パイプラインコンポーネントの一覧