コンテンツに移動
デベロッパー

パイプライン テンプレートで再利用可能な機械学習ワークフローを構築する

2022年10月11日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 10 月 4 日に、Google Cloud blog に投稿されたものの抄訳です。

機械学習(ML)ワークフローを共有、再利用、拡張するための最良の方法の 1 つは、パイプラインとして実行することです。その価値を最大化するためには、論文「機械学習システムの隠れた技術的負債」で説明されているように、類似した結果を出す実行を簡単に再現できるようなパイプラインを構築することが重要です。

このたび、Vertex AI Pipelines のパイプライン テンプレートのサポートを開始したことをお知らせします。このブログ記事では、Kubeflow Pipelines(KFP)SDK レジストリ クライアント(RegistryClient)、Artifact Registry、および Vertex AI Pipelines を使って、エンドツーエンドのパイプライン テンプレートを作成、アップロード、再使用する方法を説明します。

パイプライン テンプレートについて

パイプライン テンプレートは、ワークフロー定義を公開し、再利用できるようにするためのリソースです。KFP RegistryClient は、Kubeflow Pipelines テンプレートのバージョン管理のために、Artifact Registry などの互換レジストリ サーバーで使用できる新しいクライアント インターフェースです。Artifact Registry を使用することで、組織は以下のことを容易に行えるようになります。

  • 他のユーザーが実行可能なワークフロー定義の公開

  • ワークフロー定義の保存、管理、制御 

  • ワークフローの発見 

再利用可能なパイプライン テンプレートの構築

テンプレートの構築、アップロード、利用がわずか数ステップで可能です。ここでは、シンプルな 3 ステップのパイプラインの構築について見ていきましょう。その後、Artifact Registry にテンプレートを登録して、アップロードし、そこから Vertex AI Pipelines を使って実行できるようにします。Notebook は、Google Cloud の GitHub リポジトリで公開されています。結果は次のようになります。
https://storage.googleapis.com/gweb-cloudblog-publish/images/20221011ja1.max-900x900.png

ステップ 1: アーティファクト リポジトリを作成する

まず、Artifact Registry にリポジトリを作成します。ここでは、テンプレートの成果物を保存し、追跡できます。リポジトリを作成する際に、必ず Kubeflow Pipelines の形式に設定します。リポジトリを作成すると、次のような画面が表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/20221011ja2.max-500x500.png

ステップ 2: パイプラインを構築する

KFP DSL を使ってエンドツーエンドのパイプラインをビルドしてコンパイルしてみましょう。この例のパイプラインには、次の 2 つのステップ(カスタム コンポーネント)があります。

  1. TensorFlow モデルをトレーニングする。

  2. トレーニングしたモデルを Vertex AI Model Registry にアップロードする。

読み込んでいます...

(ユースケースに応じて、より高度なパイプラインを独自に構築することも可能です。)パイプラインが確定したら、コンパイラを使ってワークフローの yaml: template-pipeline.yaml を生成します。

読み込んでいます...

ステップ 3: テンプレートのアップロード

パイプラインをコンパイルした後、RegistryClient を使用してレジストリのクライアントを構成します。

読み込んでいます...

これでワークフローの YAML(この場合は template-pipeline.yaml)を先ほど作成したリポジトリにアップロードする準備が整いました。この場合、client.upload_pipeline() を使用します。

読み込んでいます...

アップロードしたテンプレートを見つけるには、Vertex AI Pipelines の [パイプライン] タブに移動します。次のような出力が表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/20221011ja3.max-700x700.png

このセントラル リポジトリを使用して、すべてのパイプライン テンプレートを一か所で保存、管理、追跡できます。

ステップ 4: Vertex AI SDK を使用して Vertex AI Pipelines でテンプレートを再利用

パイプラインのテンプレートを中央のリポジトリに保存する最大のメリットは、共有と再利用が容易なことです。Vertex AI Pipelines のパイプライン テンプレートは簡単に再利用できます。

Vertex AI Pipelines でパイプライン テンプレートを実行(再利用)するには、まず、パイプラインの実行をステージングするための Cloud Storage バケットを作成する必要があります。次に、Vertex AI SDK を使用して、アーティファクト リポジトリ内のテンプレートからパイプライン実行を作成します。

読み込んでいます...

特定のパイプライン バージョンによって作成された実行を、Vertex AI SDK for Python で表示します。パイプラインの実行状況を一覧表示するには、PipelineJobs.list コマンドを実行します。

読み込んでいます...

また、Vertex Pipelines UI の [実行] タブに移動して、パイプラインの実行を確認できます。パイプライン ジョブをクリックすると、そのトポロジーと進捗状況が表示されます。

オプション: UI を介した Vertex AI Pipelines でのテンプレート再利用

また、必要に応じて、Vertex UI を使用して、パイプラインのテンプレートを再利用することも可能です。まず、Vertex Pipelines UI の [パイプライン] タブに移動します。

次に、実行するパイプラインを選択し、[実行を作成] をクリックします。パイプライン実行の作成ウィンドウで、詳細と実行時の構成を設定し、パイプライン実行を送信します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/20221011ja4.max-1000x1000.png

次のステップ

パイプライン テンプレートの構築、アップロード、再利用の方法がわかったので、次はパイプライン テンプレートをデプロイしてみましょう。詳しくは、ドキュメントをご覧ください。また、Vertex AI Pipelines については、こちらの Codelab で詳しく紹介しています。

ご精読ありがとうございました。質問やチャットをご希望の場合は、Twitter または LinkedIn で Erwin と検索してください。

- Google Cloud デベロッパー アドボケイト、Erwin Huizenga

- ソフトウェア エンジニア、Desmond Liu
投稿先