ElcamyTECH
Articles

Vertex AI Pipelinesとは

TechVertex AIGoogleCloudGoogle Cloud2023/05/15

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 パイプラインに統合して、モデルをより頻繁に更新できます。また、パイプラインの実行を追跡し、パフォーマンスを監視することもできます。

パイプラインの実行

メモ

Vertex AI Pipelinesで実行可能なパイプライン は、Kubeflow Pipelines SDKとTFX(TensorFlow Extended)の2種類ありますが、Kubeflow Pipelines SDK の活用事例が多いためこちらをもとに説明します。

実行ステップ

  1. コンポーネントを作成します。
  2. コンポーネント用のプログラムを作成します。
  3. Cloud Source Repositories(又はGitHub)にプログラムを登録します。
  4. Cloud BuildでDockerイメージをAritifact Registry(又はContainer Registry)に登録します。
  5. コンポーネントをyaml形式で定義します。
メモ

コンポーネントとは、パイプラインを構成するために使用できる小さな実行可能単位です。コンテナイメージまたはPython関数で記述できます。

:::details コンポーネントの種類

  1. 独自のパイプライン コンポーネント 独自でコンポーネントを定義します。コンポーネント内で、コンテナイメージを指定します。

:::details 記述例

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 }]
  1. Python関数ベースのコンポーネント Python 関数でコンポーネントを生成することができます。

    :::details 記述例

    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


:::

1. **Google Cloud Pipeline コンポーネントのビルド済みコンポーネント**
Google 仕様のコンポーネントです。BigQueryなどのGoogle Cloud プロダクトと連携します。

:::details 記述例

pipeline.py

```python
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")

:::

:::

:::

  1. パイプラインを記述します。 パイプラインをPythonで記述してJSON ファイルにコンパイルします。

    :::message

    パイプラインは、データ準備、モデルトレーニング、モデルデプロイを含む、ML ワークフローの一連のタスクを定義します。

    :::

  2. パイプラインを実行します。 パイプラインを実行するには、Vertex AI Pipelines コンソールまたは gcloud コマンドラインツールを使用できます。パイプラインをデプロイすると、Vertex AI Pipelines サービスによって実行されます。

構成

image

費用

1つのパイプライン実行あたり下記になります。サーバーレスなので、固定の費用がありません。パイプライン実行数が多くない場合は、GKE上でKubeflowパイプラインを実行するよりもトータルで安くなります。

  • 0.03 ドル
  • 各コンポーネントのリソース費用

Vertex AI Pipelines では、パイプライン実行ごとに 0.03 ドルの実行手数料がかかります。プレビュー リリース中に実行手数料が請求されることはありません。また、パイプライン コンポーネントによって使用される Compute Engine リソースなど、Vertex AI Pipelines で使用する Google Cloud リソースに対しても課金されます(Vertex AI トレーニングと同じレートで課金されます)。最後に、パイプラインによって呼び出されるすべてのサービス(Dataflow など)の費用については、お客様の責任となります。

参考

公式サイトのVertex AI Pipelinesの概要

https://cloud.google.com/vertex-ai/docs/pipelines/introduction?hl=ja チュートリアル

https://cloud.google.com/vertex-ai/docs/pipelines/notebooks Vertex AI Pipelines Codelab の概要

https://codelabs.developers.google.com/vertex-pipelines-intro#0 パイプラインコンポーネントの一覧

https://cloud.google.com/vertex-ai/docs/pipelines/gcpc-list

関連記事

Elcamyについて

AI・データエンジニアリング・クラウドを中心に、技術で事業課題を解決しています。 お気軽にご相談ください。