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 パイプライン コンポーネントを使用してパイプラインを定義する方法については、パイプラインを構築するをご覧ください。
カスタム コンポーネント
独自のカスタム コンポーネントを作成して 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 回だけのパイプライン実行を作成することも、Vertex AI Scheduler を使用して同じ ML パイプライン定義から繰り返しパイプライン実行を作成することもできます。既存のパイプライン実行を複製することもできます。ML パイプラインを実行するためのインターフェースを選択する方法については、パイプライン実行のインターフェースをご覧ください。パイプライン実行の作成方法については、パイプラインを実行するをご覧ください。
実行のモニタリング、可視化、分析: パイプライン実行を作成した後で、次の操作を行ってパイプライン実行のパフォーマンス、ステータス、費用をモニタリングできます。
パイプライン障害のメール通知を構成する。詳細については、メール通知を構成するをご覧ください。
Cloud Logging を使用して、イベントをモニタリングするためのログエントリを作成する。詳細については、パイプライン ジョブのログを表示するをご覧ください。
パイプライン実行を可視化、分析、比較する。詳細については、パイプライン結果の可視化と分析をご覧ください。
BigQuery への Cloud Billing エクスポートを使用して、パイプライン実行の費用を分析します。詳細については、パイプライン実行の費用についてをご覧ください。
省略可: パイプライン実行を停止または削除する: パイプライン実行をアクティブにしておく期間に制限はありません。必要に応じて次の設定を行うこともできます。
パイプライン実行を停止する。
パイプライン実行スケジュールを一時停止または再開する。
既存のパイプライン テンプレート、パイプライン実行、またはパイプライン実行スケジュールを削除する。
パイプライン実行とは
パイプライン実行は、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 Experiments を使用すると、さまざまなモデルのアーキテクチャ、ハイパーパラメータ、トレーニング環境を追跡して分析し、ML ユースケースに最適なモデルを見つけることができます。ML パイプライン実行を作成してから、テストまたはテスト実行に関連付けることができます。これにより、ハイパーパラメータ、トレーニング ステップの数、イテレーションなど、さまざまな変数セットをテストできます。
Vertex AI Experiments を使用して ML ワークフローをテストする方法の詳細については、Vertex AI Experiments の概要をご覧ください。
次のステップ
Vertex AI Pipelines を使用してパイプラインを定義して実行するために使用できるインターフェースについて学習する。
パイプラインを実行する方法を学習する。