機械学習オペレーション(MLOps)は、機械学習(ML)システムに DevOps 戦略を応用するプラクティスです。DevOps 戦略では、コードの変更を効率的にビルドしてリリースし、システムをモニタリングして信頼性の目標を達成します。MLOps では、このプラクティスを ML システムに応用してモニタリングを行い、データの取り込みから本番環境へのモデルのデプロイまでの時間を短縮します。
Vertex AI Pipelines では、サーバーレス方式で ML ワークフローをオーケストレートし、Vertex ML Metadata を使用してワークフローのアーティファクトを保存することで、ML システムの自動化、モニタリング、管理を行うことができます。ML ワークフローのアーティファクトを Vertex ML Metadata に保存することで、ワークフローのアーティファクトのリネージを分析できます。たとえば、ML モデルのリネージには、モデルの作成に使用されたトレーニング データ、ハイパーパラメータ、コードが含まれている場合があります。
ML パイプラインについて
Vertex AI Pipelines で ML ワークフローをオーケストレートするには、まずワークフローをパイプラインとして記述する必要があります。ML パイプラインは、移植可能でスケーラブルなコンテナベースの ML ワークフローです。ML パイプラインは、一連の入力パラメータとステップのリストで構成されます。各ステップはパイプライン コンポーネントのインスタンスです。
ML パイプラインを使用して、次のことができます。
- MLOps 戦略を応用して、繰り返し可能なプロセスを自動化し、モニタリングする。
- ハイパーパラメータのさまざまなセット、多数のトレーニング ステップやイテレーションなどがある ML ワークフローを実行してテストを行う。
- パイプラインのワークフローを再利用して新しいモデルをトレーニングする。
Vertex AI Pipelines では、Kubeflow Pipelines SDK または TensorFlow Extended を使用して構築されたパイプラインを実行できます。詳しくは、Kubeflow Pipelines SDK または TFX の選択をご覧ください。
パイプラインのコンポーネントについて
パイプライン コンポーネントは、パイプラインのワークフローで 1 つのパーツ(データの前処理、データの変換、モデルのトレーニングなど)を実行する自己完結型のコードセットです。
コンポーネントは、一連の入力、一連の出力、コンテナ イメージの場所で構成されます。コンポーネントのコンテナ イメージとは、コンポーネントの実行可能コードと、コードが実行される環境の定義が含まれるパッケージのことです。
カスタム コンポーネントを作成することも、ビルド済みのコンポーネントを再利用することもできます。パイプラインで AutoML などの Vertex AI の機能を使用するには、Google Cloud パイプラインのコンポーネントを使用します。詳しくは、パイプラインでの Google Cloud パイプライン コンポーネントの使用をご覧ください。
パイプライン ワークフローについて
パイプラインの各ステップは、パイプラインのワークフローの一部として実行されます。ステップはパイプライン コンポーネントのインスタンスで、入力、出力、コンテナ イメージが含まれます。ステップの入力は、パイプラインの入力から設定することも、このパイプライン内の他のステップの出力に応じて設定することもできます。これらの依存関係は、パイプラインのワークフローを有向非巡回グラフとして定義します。
たとえば、次のステップが含まれるパイプラインがあるとします。
- データの取り込み: トレーニング データをパイプラインに読み込みます。
- データの前処理: 取り込まれたトレーニング データを前処理します。
- モデルのトレーニング: このステップでは、前処理済みのトレーニング データを使用してモデルをトレーニングします。
- モデルの評価: トレーニング済みのモデルを評価します。
- デプロイ: 予測用にトレーニングしたモデルをデプロイします。
パイプラインをコンパイルすると、パイプライン SDK(Kubeflow Pipelines SDK または TFX)によってステップ間のデータの依存関係が分析され、ワークフロー グラフが作成されます。
- データ取り込みステップは他のタスクには依存しません。このステップは、ワークフローの最初のステップにすることも、他のステップと同時に実行することもできます。
- データの前処理ステップは、データの取り込みステップで生成されたデータに依存します。このため、データの前処理はデータの取り込み後に行う必要があります。
- モデルのトレーニング ステップは、前処理されたトレーニング データに依存するため、このステップはデータの前処理後に行う必要があります。
- モデルの評価とトレーニング済みのモデルのデプロイは、トレーニングされたモデルに依存するため、モデルのトレーニング ステップの後に行う必要があります。モデルの評価と、予測用にトレーニングされたモデルのデプロイは、どちらもモデルのトレーニング ステップに依存するため、同時に行うことができます。
この分析に基づいて、Vertex AI Pipelines はデータの取り込み、データの前処理、モデルのトレーニング ステップを順番に行い、その後、モデルの評価とデプロイのステップを同時に実行します。
ML アーティファクトのリネージについて
ML システムのパフォーマンスや精度の変化を理解するには、パイプライン実行のメタデータと ML アーティファクトのリネージを分析する必要があります。アーティファクトのリネージには、作成に使用された要素だけでなく、このアーティファクトから派生したアーティファクトやメタデータも含まれます。このメタデータをアドホックに管理するのは手間がかかり、時間もかかります。
たとえば、モデルのリネージには次のものが含まれます。
- モデルの作成に使用されたトレーニング、テスト、評価データ。
- モデルのトレーニング中に使用されたハイパーパラメータ
- モデルのトレーニングに使用されたコード。
- トレーニングと評価プロセスで記録されたメタデータ(モデルの精度など)。
- このモデルから派生したアーティファクト(バッチ予測の結果など)。
Vertex AI Pipelines を使用してパイプラインを実行すると、Vertex ML Metadata により、パイプライン実行のアーティファクトとメタデータが保存されます。このメタデータを使用すると、次のようなことを分析できます。
- 特定のパイプライン実行が正確なモデルを生成した理由。
- どのパイプライン実行が最も正確なモデルを生成し、どのハイパーパラメータを使用してモデルをトレーニングしたか。
- パイプラインのステップによっては、Vertex ML Metadata を使用してシステム ガバナンスの状況を分析できる場合があります。たとえば、メタデータを使用して、特定の時点で本番環境にあったモデルのバージョンを特定できます。
詳細については、パイプライン実行の可視化、ML アーティファクトのリネージの分析、または Google Cloud パイプライン コンポーネントが定義する最初の部分のアーキティファクト タイプをご覧ください。
次のステップ
- パイプラインの構築を開始する。
- パイプラインを実行する方法を学習する。
- Vertex AI 上でカスタム トレーニングされた ML モデルを実装するためのベスト プラクティスを学習する。