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、Dataflow、Dataproc Serverless などの別の実行エンジンに任せることができます。
ML パイプラインのライフサイクル
定義から実行やモニタリングまで、ML パイプラインのライフサイクルは次の大まかなステージで構成されます。
定義: ML パイプラインとそのタスクを定義するプロセスは、パイプラインの構築とも呼ばれます。このステージでは、次のステップを行います。
[ML フレームワークを選択する]: Vertex AI Pipelines は、TFX または Kubeflow Pipelines フレームワークを使用して定義された ML パイプラインをサポートします。パイプラインを構築するためのフレームワークの選択方法については、パイプラインを定義するインターフェースをご覧ください。
[パイプライン タスクを定義してパイプラインを構成する]: 詳細については、パイプラインを構築するをご覧ください。
[コンパイルする]: このステージでは、次のステップを行う必要があります。
中間表現用のコンパイルされた YAML ファイルで ML パイプライン定義を生成し、これを使用して ML パイプラインを実行できます。
(省略可)コンパイルされた YAML ファイルをパイプライン テンプレートとしてリポジトリにアップロードし、ML パイプライン実行を作成するために再利用できます。
[実行する]: コンパイル済みの YAML ファイルまたはパイプライン テンプレートを使用して ML パイプラインの実行インスタンスを作成します。パイプライン定義の実行インスタンスはパイプライン実行と呼ばれます。
1 回だけのパイプライン実行を作成することも、スケジューラ API を使用して同じ ML パイプライン定義から繰り返しパイプライン実行を作成することもできます。既存のパイプライン実行を複製することもできます。ML パイプラインを実行するためのインターフェースを選択する方法については、パイプライン実行のインターフェースをご覧ください。パイプライン実行の作成方法については、パイプラインを実行するをご覧ください。
[実行をモニタリング、可視化、分析する]: パイプライン実行を作成した後、次の操作を行ってパイプライン実行のパフォーマンス、ステータス、費用をモニタリングできます。
パイプライン障害のメール通知を構成する。詳細については、メール通知を構成するをご覧ください。
Cloud Logging を使用して、イベントをモニタリングするためのログエントリを作成する。詳細については、パイプライン ジョブのログを表示するをご覧ください。
パイプライン実行を可視化、分析、比較します。詳細については、パイプライン結果の可視化と分析をご覧ください。
BigQuery への Cloud Billing エクスポートを使用して、パイプライン実行の費用を分析します。詳細については、パイプライン実行の費用についてをご覧ください。
省略可: パイプライン実行を停止または削除する: パイプライン実行を有効にしておく期間に制限はありません。必要に応じて次の設定を行うこともできます。
パイプライン実行を停止します。
パイプライン実行スケジュールを一時停止または再開する。
既存のパイプライン テンプレート、パイプライン実行、またはパイプライン実行スケジュールを削除する。
パイプライン実行とは
パイプライン実行は、ML パイプライン定義の実行インスタンスです。各パイプライン実行は一意の実行名で識別されます。Vertex AI Pipelines を使用し、次の方法で ML パイプライン実行を作成できます。
パイプラインのコンパイル済み YAML 定義を使用する
テンプレート ギャラリーのパイプライン テンプレートを使用する
パイプライン実行の作成方法については、パイプラインを実行するをご覧ください。パイプライン テンプレートからパイプライン実行を作成する方法については、パイプライン テンプレートを作成、アップロード、使用するをご覧ください。
Vertex ML Metadata を使用してパイプライン実行メタデータをキャプチャして保存する方法については、Vertex ML Metadata を使用して ML アーティファクトのリネージを追跡するをご覧ください。
パイプライン実行を使用して Vertex AI Experiments を使用した ML ワークフローをテストする方法については、パイプライン実行をテストに追加するをご覧ください。
ML アーティファクトのリネージを追跡する
パイプライン実行には、パイプライン メタデータを含むいくつかのアーティファクトとパラメータが含まれます。ML システムのパフォーマンスや精度の変化を理解するには、ML パイプライン実行のメタデータと ML アーティファクトのリネージを分析する必要があります。ML アーティファクトのリネージには、そのアーティファクトの生成に関与するすべての要素に加えて、そのアーティファクトから派生するメタデータとアーティファクトへの参照も含まれます。
リネージグラフは、アップストリームの根本原因とダウンストリームの影響を分析する際に役立ちます。パイプラインを実行するたびに、実行に入力され、実行内で実体化され、実行から出力されるパラメータとアーティファクトのリネージグラフが生成されます。このリネージグラフを構成するメタデータは、Vertex ML Metadata に保存されます。このメタデータは Dataplex と同期することもできます。
Vertex ML Metadata を使用してパイプライン アーティファクトのリネージを追跡する
Vertex AI Pipelines を使用してパイプラインを実行すると、パイプラインによって使用および生成されるすべてのパラメータとアーティファクト メタデータが Vertex ML Metadata に保存されます。Vertex ML Metadata は、TensorFlow の ML Metadata ライブラリのマネージド実装であり、カスタム メタデータ スキーマの登録と書き込みをサポートしています。Vertex AI Pipelines でパイプライン実行を作成すると、パイプライン実行のメタデータは、パイプラインを実行するプロジェクトとリージョンのデフォルト メタデータ ストアに保存されます。
Dataplex を使用してパイプライン アーティファクトのリネージを追跡する
Dataplex は、Vertex AI、BigQuery、Cloud Composer など、Google Cloud 内の複数のシステムと統合されたグローバルなプロジェクト間のデータ ファブリックです。Dataplex 内でパイプライン アーティファクトを検索し、そのリネージグラフを表示できます。アーティファクトの競合を回避するため、Dataplex でカタログ化されたリソースは完全修飾名(FQN)で識別されます。
Vertex ML Metadata と Dataplex を使用して ML アーティファクトのリネージを追跡する方法の詳細については、パイプライン アーティファクトのリネージを追跡するをご覧ください。
パイプライン実行の可視化、分析、比較の詳細については、パイプライン結果を可視化して分析するをご覧ください。Google Cloud パイプライン コンポーネントで定義されているファースト パーティのアーティファクト タイプのリストについては、ML メタデータのアーティファクト タイプをご覧ください。
テストにパイプライン実行を追加する
Vertex AI Experiments を使用すると、さまざまなモデルのアーキテクチャ、ハイパーパラメータ、トレーニング環境を追跡して分析し、ML ユースケースに最適なモデルを見つけることができます。ML パイプライン実行を作成してから、テストまたはテスト実行に関連付けることができます。これにより、ハイパーパラメータ、トレーニング ステップの数、イテレーションなど、さまざまな変数セットをテストできます。
Vertex AI Experiments を使用して ML ワークフローをテストする方法の詳細については、Vertex AI Experiments の概要をご覧ください。