コンテンツにスキップ

Vertex AI Pipelines を触ってみた

Vertex AI Pipelines を使ってみて、機械学習パイプラインを Google Cloud 上で実行するときの機能と注意点をまとめました。コンポーネントの記述方法や出力の種類、kfp のバージョンとリージョンの指定で注意したい点を紹介します。

Vertex AI Pipelines とは

Vertex AI Pipelines を使うと、Google Cloud のマネージド機械学習プラットフォームである Vertex AI 上で、機械学習パイプラインを容易に構築・実行できます。Kubeflow Pipelines の機能をベースにしており、Kubernetes 上で動作する機械学習パイプラインの開発や実行に必要な機能を提供しています。

Vertex AI Pipelines では、次のような機能が利用できます。

  • パイプラインの視覚化とデバッグ:パイプラインのステップをグラフィカルに表示し、パイプラインの実行時にデバッグできる
  • パラメータの調整:機械学習モデルのハイパーパラメータを調整し、モデルの精度を向上
  • データの前処理:データの前処理や変換を自動化し、機械学習モデルの品質を向上
  • 分散トレーニング:複数のワーカーノードで機械学習モデルをトレーニングし、トレーニング時間を短縮
  • モデルのデプロイ:機械学習モデルのデプロイを容易に行い、実際のアプリケーションに統合
  • Python の関数もしくはコンテナベースでコンポーネントを記述する

さらに、Vertex AI Pipelines では、Kubeflow Pipelines に加えて、Google Cloud の機械学習サービスと統合するための機能も提供されています。たとえば、AutoML や BigQuery などの Google Cloud のサービスをパイプラインに組み込むことができます。

tips

実際に触って気づいた tips を、コンポーネントの記述方法と出力の扱いの順にまとめます。

コンポーネントの記述

Python の関数ベースで記述するときは、@component(base_image=...)のデコレータで実行するコンテナイメージを指定します。一方、YAML ベースで記述する方法についてはTatsuya Shirakawa 氏の note 記事が詳しく解説しています。

Output

生成したモデルや Dataset、レポート(Confusion Matrix や HTML、Markdown)などをコンポーネントから出力でき、結果を確認・共有しやすくなります。

使ってみた感想

  • kfp の 1 系と 2 系で挙動が変わるので、参考にするコードがどのバージョンで動いているかに注意が必要
  • リージョンの指定を間違えやすいので注意が必要で、pipeline の YAML へ変換したときに確認するとよい

まとめ

Kubeflow Pipelines をベースにした機械学習パイプラインを Google Cloud 上で構築・実行でき、AutoML や BigQuery などのサービスも組み込めるのが Vertex AI Pipelines の利点です。実際に触ってみると、kfp の 1 系と 2 系の挙動の違いやリージョンの指定など、注意が必要な点もありました。まずは参考に挙げたチュートリアルやサンプルコードで一通りの流れを確認し、そのうえで自分のユースケースに合わせて調整するとよいでしょう。

参考

サンプルコード

コードラボ・ハンズオン

その他の参考記事