Vertex AI Pipelines の概要

Vertex AI Pipelines では、ML パイプラインを使用して ML ワークフローをオーケストレートすることで、サーバーレス方式で機械学習(ML)システムの自動化、モニタリング、管理を行うことができます。Kubeflow Pipelines または TensorFlow Extended(TFX)フレームワークを使用して定義された ML パイプラインをバッチ実行できます。ML パイプラインを定義するフレームワークの選択方法については、パイプラインを定義するインターフェースをご覧ください。

このページでは、次の概要を説明します。

ML パイプラインとは

ML パイプラインは、MLOps ワークフローの移植可能で拡張可能な記述であり、パイプライン タスクと呼ばれる一連のステップです。各タスクでは、ML モデルのトレーニングやデプロイのワークフローの特定のステップを実行します。

ML パイプラインを使用すると、MLOps 戦略を適用して、ML プラクティスの繰り返し可能なプロセスを自動化およびモニタリングできます。たとえば、パイプライン定義を再利用して、最新の本番環境データでモデルを継続的に再トレーニングできます。Vertex AI での MLOps の詳細については、Vertex AI での MLOps をご覧ください。

ML パイプラインの構造

ML パイプラインは、入出力の依存関係を使用して相互接続された、コンテナ化されたパイプライン タスクの有向非巡回グラフ(DAG)です。各タスクは、Python で、またはビルド済みコンテナ イメージとして作成できます。

Kubeflow Pipelines SDK または TFX SDK を使用してパイプラインを DAG として定義し、中間表現用に YAML にコンパイルしてから、パイプラインを実行できます。デフォルトでは、パイプライン タスクは並行して実行されます。タスクをリンクして、順番に実行できます。パイプライン タスクの詳細については、パイプライン タスクをご覧ください。パイプラインの定義、コンパイル、実行のワークフローの詳細については、ML パイプラインのライフサイクルをご覧ください。

パイプラインのタスクとコンポーネント

パイプライン タスクは、特定の入力を含むパイプライン コンポーネントをインスタンス化したものです。ML パイプラインを定義する際に、1 つのパイプライン タスクの出力を ML ワークフローの次のパイプライン タスクの入力にルーティングすることで、複数のタスクを相互接続して DAG を形成できます。ML パイプラインの入力をパイプライン タスクの入力として使用することもできます。

パイプライン コンポーネント

パイプライン コンポーネントは、ML ワークフローの特定のステップ(データの前処理、モデルのトレーニング、モデルのデプロイなど)を実行する自己完結型のコードセットです。コンポーネントは通常、次のもので構成されます。

  • 入力: コンポーネントには 1 つ以上の入力パラメータとアーティファクトを含めることができます。

  • 出力: すべてのコンポーネントに 1 つ以上の出力パラメータまたはアーティファクトがあります。

  • ロジック: コンポーネントの実行可能コードです。コンテナ化されたコンポーネントの場合、ロジックには、コンポーネントが実行される環境またはコンテナ イメージの定義も含まれます。

コンポーネントは、ML パイプライン内でタスクを定義するための基礎となります。パイプライン タスクを定義するには、事前定義された Google Cloud パイプライン コンポーネントを使用するか、独自のカスタム コンポーネントを作成します。

事前定義されたコンポーネント

パイプラインで AutoML などの Vertex AI の機能を使用する場合は、事前定義された Google Cloud パイプライン コンポーネントを使用します。Google Cloud Pipeline コンポーネントを使用してパイプラインを定義する方法については、パイプラインを構築するをご覧ください。

カスタム コンポーネント

ML パイプラインで使用する独自のカスタム コンポーネントを作成できます。カスタム コンポーネントの作成の詳細については、独自のパイプライン コンポーネントを構築するをご覧ください。

カスタム Kubeflow Pipelines コンポーネントを作成する方法については、GitHub の「Python 関数に基づく軽量コンポーネントを含むパイプライン」Jupyter ノートブックをご覧ください。カスタム TFX コンポーネントを作成する方法については、本番環境における TensorFlow Extended のチュートリアルTFX Python 関数コンポーネントのチュートリアルをご覧ください。

パイプライン タスク

パイプライン タスクはパイプライン コンポーネントをインスタンス化し、ML ワークフローで特定のステップを実行します。ML パイプライン タスクは、Python を使用して、またはビルド済みコンテナ イメージとして作成できます。

タスク内では、Kubernetes を使用して Vertex AI のオンデマンド コンピューティング機能を基に、コードをスケーラブルに実行できます。また、ワークロードを別の実行エンジン(BigQuery、Dataproc Serverless など)に任せることができます。

ML パイプラインのライフサイクル

定義から実行、モニタリングまで、ML パイプラインのライフサイクルは次の大まかなステージで構成されます。

  1. 定義: ML パイプラインとそのタスクを定義するプロセスは、パイプラインの構築とも呼ばれます。このステージでは、次のステップを行います。

    1. [ML フレームワークを選択する]: Vertex AI Pipelines は、TFX または Kubeflow Pipelines フレームワークを使用して定義された ML パイプラインをサポートします。パイプラインを構築するフレームワークの選択方法については、パイプラインを定義するインターフェースをご覧ください。

    2. [パイプライン タスクを定義してパイプラインを構成する]: 詳細については、パイプラインを構築するをご覧ください。

  2. [コンパイルする]: このステージでは、次のステップを行う必要があります。

    1. 中間表現用のコンパイルされた YAML ファイルで ML パイプライン定義を生成し、これを使用して ML パイプラインを実行できます。

    2. (省略可)コンパイルされた YAML ファイルをパイプライン テンプレートとしてリポジトリにアップロードし、ML パイプライン実行を作成するために再利用できます。

  3. [実行する]: コンパイル済みの YAML ファイルまたはパイプライン テンプレートを使用して ML パイプラインの実行インスタンスを作成します。パイプライン定義の実行インスタンスはパイプライン実行と呼ばれます。

    パイプライン実行は、1 回だけ作成することも、Vertex AI Scheduler を使用して同じ ML パイプライン定義から繰り返しのパイプライン実行を作成することもできます。既存のパイプライン実行のクローンを作成することもできます。ML パイプラインを実行するインターフェースの選択方法については、パイプラインを実行するためのインターフェースをご覧ください。パイプライン実行の作成方法については、パイプラインを実行するをご覧ください。

  4. [実行をモニタリング、可視化、分析する]: パイプライン実行を作成した後、次の操作を行ってパイプライン実行のパフォーマンス、ステータス、費用をモニタリングできます。

  5. 省略可: パイプライン実行を停止または削除する: パイプライン実行を有効にしておく期間に制限はありません。必要に応じて、次の設定を行います。

    • パイプライン実行を停止します。

    • パイプライン実行スケジュールを一時停止または再開します。

    • 既存のパイプライン テンプレート、パイプライン実行、パイプライン実行スケジュールを削除します。

パイプライン実行とは

パイプライン実行は、ML パイプライン定義の実行インスタンスです。パイプライン実行は、それぞれ一意の実行名で識別されます。Vertex AI Pipelines を使用すると、次の方法で ML パイプライン実行を作成できます。

  • パイプラインのコンパイル済み YAML 定義を使用する

  • テンプレート ギャラリーのパイプライン テンプレートを使用する

パイプライン実行の作成方法については、パイプラインを実行するをご覧ください。パイプライン テンプレートからパイプライン実行を作成する方法については、パイプライン テンプレートを作成、アップロード、使用するをご覧ください。

Vertex ML Metadata を使用してパイプライン実行アーティファクトとメタデータを追跡、保存する方法については、Vertex ML Metadata を使用して ML アーティファクトのリネージを追跡するをご覧ください。

パイプライン実行を使用して Vertex AI Experiments を使用した ML ワークフローをテストする方法については、パイプライン実行をテストに追加するをご覧ください。

Vertex ML Metadata を使用して ML アーティファクトのリネージを追跡する

パイプライン実行には、パイプライン メタデータなど、いくつかのアーティファクトとパラメータが含まれています。ML システムのパフォーマンスや精度の変化を理解するには、ML パイプライン実行のメタデータと ML アーティファクトのリネージを分析する必要があります。ML アーティファクトのリネージには、そのアーティファクトの生成につながった全要素だけでなく、そのアーティファクトから派生したアーティファクトやメタデータも含まれます。

このメタデータをアドホックに管理するのは手間がかかり、時間もかかります。 Vertex ML Metadata を使用して、このメタデータを効率的に維持できます。Vertex AI Pipelines を使用して ML パイプラインを実行すると、パイプライン実行のアーティファクトとメタデータは、Vertex ML Metadata を使用して保存されます。

Vertex ML Metadata を使用して ML アーティファクトのリネージを追跡する方法について詳しくは、パイプライン アーティファクトのリネージを追跡するをご覧ください。

パイプライン実行の可視化、分析、比較の詳細については、パイプライン結果を可視化して分析するをご覧ください。Google Cloud パイプライン コンポーネントで定義されたファースト パーティ アーティファクト タイプのリストについては、ML メタデータ アーティファクト タイプをご覧ください。

テストにパイプライン実行を追加する

Vertex AI テストでは、さまざまなモデル アーキテクチャ、ハイパーパラメータ、トレーニング環境を追跡および分析して、ML ユースケースに最適なモデルを見つけることができます。ML パイプライン実行を作成したら、それをテストまたはテスト実行に関連付けることができます。そうすることで、ハイパーパラメータ、トレーニング ステップ数、イテレーションなど、さまざまな変数のセットを試すことができます。

Vertex AI Experiments を使用して ML ワークフローをテストする方法の詳細については、Vertex AI Experiments の概要をご覧ください。

次のステップ