MLOps と Intelligent Products Essentials

Last reviewed 2022-06-28 UTC

このドキュメントでは、Intelligent Products EssentialsVertex AI を使用して MLOps を実装するためのリファレンス アーキテクチャについて説明します。メーカーは次の操作を行って製品を継続的に改善できます。

  • より効率的にお客様のニーズを満たすインテリジェント機能を追加する。
  • 新しいサービス機能を収益化する。

このドキュメントはこれらの目標を念頭に置き、コネクテッド プロダクトの MLOps ソリューション アーキテクチャについて学ぶ必要があるデータ サイエンティスト、ML(ML)エンジニア、ソリューション アーキテクトを対象としています。

MLOps

ML システムの隠れた技術的負債で説明したように、ML コードは成熟した ML システムのごく一部にすぎません。ML コードや高品質のデータに加えて、ML プロセスを運用にのせる方法が必要です。

MLOps は、企業が ML システムを反復可能かつ信頼性の高い方法で迅速に構築、デプロイ、運用することを支援するプラクティスです。MLOps は、DevOps の原則を ML システムに適用したもので、ML システム開発(Dev)と ML システム オペレーション(Ops)の統合を目的とするエンジニアリングの文化と手法です。MLOps の目的は、ML システムを迅速かつ確実に構築、デプロイ、運用するため、標準化されたプロセスと技術機能のセットを提供することです。

次のセクションでは、Intelligent Products Essentials と Vertex AI を使用して MLOps を実装する方法について説明します。

MLOps のペルソナ

Intelligent Products Essentials のアーキテクチャの概要と中心となる MLOps のユーザー ペルソナ

上の図は、次のコンポーネントと中心となる MLOps のユーザー ペルソナを示しています。

  • Intelligent Products Essentials: BigQuery と Cloud Storage にまたがる顧客データ、デバイスデータ、デバイス テレメトリー、所有権データを保存します。
  • データ サイエンティスト: Intelligent Products Essentials に保存されたデータの分析、特徴量エンジニアリング、モデル開発、モデル評価、ML パイプラインの構築を担当します。
  • ML エンジニア: 大規模なモデルのデプロイのオーケストレーションとホスティングを担当します。

次のセクションでは、データ サイエンティストと ML エンジニアの視点から MLOps アーキテクチャについて説明します。

データ サイエンティスト

ML の問題に対して、データ サイエンティストの目的は、高度な分析手法と ML 手法を適用して、データと出力の予測のパターンを特定することです。データは ML の基盤であるため、データ サイエンティストは、データセットに簡単にアクセスする必要があり、データ分析を行うための柔軟な開発環境を必要としています。

次の図は、データ サイエンティストの視点から見た Intelligent Products Essentials の MLOps アーキテクチャを示しています。

データ サイエンティストの視点から見た、Intelligent Products Essentials の詳細な MLOps アーキテクチャ。

上の図は、データ サイエンティストに以下の MLOps コンポーネントを示しています。

  • Vertex AI Workbench: Jupyter ベースのフルマネージドでスケーラブルなエンタープライズ対応のコンピューティング インフラストラクチャを提供し、組織内のすべての Google Cloud データに接続します。データ サイエンティストは、このインフラストラクチャを開発環境として使用できます。

  • Vertex AI Feature Store: 機械学習で使用する特徴量を整理、保存、提供するための一元化されたリポジトリです。データ サイエンティストは、Vertex AI Feature Store を使用して特徴を保存し、組織全体で共有できます。

  • Kubeflow Pipelines SDK: データ サイエンティストは、Docker コンテナに基づいて移植可能でスケーラブルな ML ワークフローを構築してデプロイできます。データ サイエンティストは ML モデルを作成した後、Kubeflow Pipelines SDK を使用して、トレーニング手順を ML パイプラインにパッケージ化できます。

  • Vertex AI Pipelines: Kubeflow Pipelines SDK または TensorFlow Extended を使用してビルドされた ML パイプラインの実行環境を提供します。Intelligent Products Essentials では、Kubeflow Pipelines SDK を使用することをおすすめします。Kubeflow Pipelines SDK を使用する場合は、Google Cloud パイプライン コンポーネントなどのビルド済みコンポーネントを使用して、シンプルかつ迅速なデプロイも可能です。ビルド済みコンポーネントの一覧については、Google Cloud パイプライン コンポーネントのリストをご覧ください。

  • Cloud Source Repositories: Google Cloud でホストされる多機能のプライベート Git リポジトリ。データ サイエンティストは、継続的トレーニング ML パイプラインを定義してから、Cloud Source Repositories などのソース リポジトリにパイプライン定義を保存できます。このアプローチでは、継続的インテグレーションと継続的デプロイ(CI / CD)パイプラインの実行がトリガーされます。

ML エンジニア

Intelligent Products Essentials は、ML エンジニアがタイムリーかつ信頼性の高い方法で ML モデルのオペレーションを自動化する際に役立ちます。ML エンジニアは、ML パイプライン、モデル、場合によっては予測サービスのデプロイをサポートする CI / CD パイプラインを管理します。

次の図は、ML エンジニアの視点から見た Intelligent Products Essentials の MLOps アーキテクチャを示しています。

ML エンジニアの視点から見た、Intelligent Products Essentials の詳細な MLOps アーキテクチャ。

上の図は、機械学習エンジニアに次の MLOps コンポーネントを示しています。

  • CI パイプライン: ML パイプラインのコンポーネントをビルド、テスト、パッケージ化します。
  • CD パイプライン: ML パイプラインをステージング環境や本番環境などの適切な環境にデプロイします。
  • ML パイプライン: トレーニング データを準備して ML モデルをトレーニングします。以下の手順が含まれます。
    • データの抽出: 事前定義されたデータソースからトレーニング データセットを取得します。
    • データの検証: データスキーマとデータ値の分布の異常を特定します。
    • データの準備: データ クリーニング、データ変換、特徴量エンジニアリングが含まれます。
    • モデルのトレーニング: トレーニング データとハイパーパラメータ最適化などの ML 手法を使用して、トレーニング済みモデルを作成します。
    • モデルの評価: 前のモデル トレーニング ステップでのトレーニング済みモデルのパフォーマンスを、テスト データセットで評価します。
    • モデルの検証: トレーニング済みモデルがデプロイの予測パフォーマンス ベンチマークを満たしていることを確認します。
  • ML パイプライン トリガー: 継続的なトレーニングのために、ML パイプラインをトリガーする、Pub/Sub にパブリッシュされたイベント。
  • Vertex AI Model Registry: トレーニング済みモデルのさまざまなバージョンとそれに関連するメタデータを保存します。
  • バッチ予測: Cloud Storage または BigQuery(AutoML Tables で利用可能)に格納された入力データに対して、バッチで予測を適用します。バッチ予測オペレーションでは、予測結果を Cloud Storage または BigQuery(AutoML Tables で利用可能)に出力し、ダウンストリーム システムで利用できます。

次のステップ