コンテンツに移動
デベロッパー

Vertex AI Model Evaluation を使用してモデルの品質を大規模に改善する

2022年12月21日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 12 月 3 日に、Google Cloud blog に投稿されたものの抄訳です。

通常、データ サイエンティストはモデルを最新かつ関連性の高い状態に保つために定期的にモデルの再トレーニングを行います。この手法は、モデルの再トレーニングが頻繁に行われすぎる場合は費用がかさみ、モデルの再トレーニングがビジネスに対応できるほどの頻度で行われない場合は効率的でなくなります。データ サイエンティストは、理想を言えば継続的にモデルの評価を行い、モデルのパフォーマンスが劣化しはじめたときに意図的にモデルの再トレーニングを行うことを望んでいます。モデルの継続的な評価を大規模に行うには、標準的で効率的な評価プロセスとシステムが必要になります。

事実、データ サイエンティストや ML エンジニアは、モデルのトレーニングの後、本番環境におけるオフライン データセットの過去の例を使用して、複数のモデルテストにわたってモデルのパフォーマンスを評価しています。評価指標が事前に定義されたしきい値に達すれば、データ サイエンティストと ML エンジニアは手動で、または ML パイプラインを使用して、モデルのデプロイに進むことができます。このプロセスにより、本番環境に移行するための最適なモデル(アプローチと構成)を見つけることができます。図 1 は、データ サイエンティストと ML エンジニアが新しいデータを収集し、定期的にモデルを再トレーニングさせる基本的なワークフローを示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Improving_model_quality_at_scale_-_Figure_.max-1500x1500.png
図 1: 標準的なモデル評価のワークフロー(クリックして拡大)

ユースケースによっては、モデルの継続的な評価が必要になる場合があります。本番環境にデプロイされたモデルは、特徴量とターゲット分布の両面でスキューとドリフトを検出することで、モニタリングされます。これらの分布に変化が検出されると、モデルのパフォーマンスが低下し始める可能性があるため、本番環境データを使用してモデルを評価する必要があります。図 2 は、チームが新しいデータを収集し、モデルを継続的に評価する高度なワークフローを示しています。継続的な評価の結果に基づいて、モデルは新しいデータで再トレーニングされます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Improving_model_quality_at_scale_-_Figure_.max-1500x1500_G88Qodq.png
図 2: 継続的なモデル評価のワークフロー(クリックして拡大)

規模が大きくなると、この継続的な評価システムを構築することは困難な作業になる可能性があります。本番環境データへのアクセス、コンピューティング リソースのプロビジョニング、モデル評価プロセスの標準化、再現性の保証など、それを困難にする要因がいくつかあります。Vertex AI Model Evaluation では、ML 評価の定義と実行のプロセス全体を簡素化および高速化することを目的として、モデルのパフォーマンスを大規模に繰り返し評価、比較できます。

Vertex AI Model Evaluation を使用してテスト データセット、モデル、評価構成を入力として定義すると、ノートブックを使用してモデルがトレーニングされるか、トレーニングのジョブを実行しているか、Vertex AI で ML パイプラインを実行しているかにかかわらず、モデル パフォーマンス指標が返されます。

Vertex AI Model Evaluation は、次のプロダクトと統合されています。

  • Vertex AI Model Registry: さまざまな評価ジョブと、モデル トレーニング ジョブの完了後に生成される指標にアクセスできる新しいビューを提供します。

  • Model Builder SDK: ローカルでトレーニングされたモデルの分類、回帰、予測の指標を取得するための新しい評価手法を導入します。

  • マネージド パイプライン: Vertex AI Pipelines コンソール内で指標結果を生成および可視化するための新しい評価コンポーネントを備えています。

Vertex AI Model Evaluation の新機能を把握したところで、それらを活用してモデルの品質を大規模に改善する方法を見ていきましょう。

Vertex AI Model Registry でさまざまなモデルのパフォーマンスを評価する

モデルを本番環境に昇格させる必要がある意思決定者は、モデルのリリース プロセスを管理する必要があります。

モデルをリリースするには、トレーニング済みのモデルのオフラインとオンラインのパフォーマンスと説明可能性の指標を簡単に取得、可視化、比較できなければなりません。

Vertex AI Model Registry と Vertex AI Model Evaluation の統合により、各モデル(BQML、AutoML、カスタムモデル)のすべての過去の評価を表示できるようになりました。Vertex AI Model Registry コンソールではモデルのバージョンごとに、モデルのタイプに応じた分類、回帰、予測の指標が表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image4_Cwyq32Z.max-1700x1700.png
図 3: モデル バージョン間でのモデル評価の比較(クリックして拡大)

また、さまざまなモデル バージョン間でこれらの指標を比較することで、オンライン テストとしてデプロイするか、直接本番環境にデプロイするうえで最適なモデル バージョンを特定し、説明することもできます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/image5_0974ID9.gif
図 4: モデル評価ビューの比較(クリックして拡大)

Model Builder SDK を使用してノートブックでモデルのトレーニングと評価を行う

モデル開発フェーズでは、データ サイエンティストがノートブックでさまざまなモデルとパラメータをテストします。さらに、精度、適合率、再現率などの測定値を計算し、検証 / テスト データセットで混同行列や ROC などのパフォーマンス プロットを作成します。こうした指標により、チームは候補のモデルのパフォーマンスを確認し、それを他のモデルと比較して、候補のモデルが本番環境パイプラインのコンポーネントで形式化できる状態にあるかどうかを最終的に判断できます。

新しい Vertex AI Model Builder SDK を使用すれば、Vertex AI を活用して、こうした指標とプロットを計算できます。テスト データセット、モデル、評価構成を提供することで、評価ジョブを送信できます。評価タスクが完了したら、さまざまなモデルの評価結果をローカルに取得して可視化し、それを並べて比較することで、オンライン テストとしてデプロイするか、直接本番環境にデプロイするかを判断できます。

以下は、分類モデルの評価ジョブを実行する方法の例です。

読み込んでいます...

再現性を保証するために、評価ジョブのすべてのパラメータと指標がテストの一部として追跡されることに注意してください。

Vertex SDK のモデル評価は試験運用版がリリースされています。アクセスするには、こちらのフォームに必要事項をご記入ください。

Vertex AI Pipelines を使用してモデル評価を運用化する

モデルが検証されると、ML エンジニアは手動でまたはパイプラインからモデルのデプロイに進むことができます。本番環境パイプラインが必要な場合は、モデルの品質指標を生成する正式な評価パイプライン コンポーネントを含める必要があります。このようにして、モデル評価プロセスを大規模に複製し、評価指標を Experiments の追跡や Model Registry サービスなどのダウンストリーム システムに記録できます。最終的に、意思決定者はこうした指標を使用してモデルを検証し、デプロイするモデルを決定できます。

現在は評価コンポーネントの構築と保守に時間とリソースが割かれています。しかし、実際に焦点を当てるべきは新しい課題の解決と新しい ML プロダクトの構築です。ML パイプライン内での評価の定義と実行のプロセスを簡素化および高速化できるよう、このたび Vertex AI Pipelines におけるモデル評価の運用化を容易にする Vertex AI Pipelines の新しい演算子をリリースすることになりましたので、お知らせします。このコンポーネントは評価結果を自動的に生成および追跡し、検索とモデルの比較を容易にします。以下に、主な評価演算子を示します。

  1. GetVertexModelOp: 評価のために Vertex モデル アーティファクトを初期化します。

  2. EvaluationDataSamplerOp: Vertex XAI 特徴量アトリビューションの計算のために、指定されたサイズで入力データセットをランダムに作成します。

  3. TargetFieldDataRemoverOp: Vertex Batch Prediction のカスタムモデルをサポートするために、入力データセットからターゲット フィールドを削除します。

  4. ModelBatchPredictOp: Google Cloud Vertex BatchPredictionJob を実行し、モデル評価の予測を生成します。

  5. ModelEvaluationClassificationOp: トレーニング済みモデルのバッチ予測結果で評価指標を計算します。

  6. ModelEvaluationFeatureAttributionOp: トレーニング済みモデルのバッチ説明結果で特徴量アトリビューションを生成します。

  7. ModelImportEvaluationOp: ModelService を使用してモデル評価アーティファクトを既存の Vertex モデルのリソースとして保存します。

これらのコンポーネントを使用すれば、モデルリソースから開始し、特定のデータセットから評価指標と特徴量アトリビューションを生成するトレーニング パイプラインを定義できます。以下に、分類シナリオでこれらのコンポーネントを Vertex AI AutoML モデルと組み合わせて使用する Vertex AI パイプラインの例を示します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image6_ELyWEZp.max-1400x1400.png
図 5: Vertex AI Model Evaluation パイプライン(クリックして拡大)

まとめ

Vertex AI Model Evaluation を使用すると、エンドツーエンドの MLOps ワークフローで必要となるモデル パフォーマンスの分析と検証の手順を高速化および運用化できます。Vertex AI Model Evaluation は、他の Vertex AI サービスとネイティブに統合されているため、モデルのトレーニングに使用した Vertex サービス(AutoML、マネージド パイプライン、カスタム トレーニングなど)を問うことなくモデル評価ジョブ(テスト データセットでのモデルのパフォーマンスの測定)を実行し、Vertex AI Model Registry で複数のモデルの評価結果を保存および可視化できます。こうした機能により、Vertex AI Model Evaluation のユーザーはどのモデルをオンライン テストに進められるか、本番環境に移行できるか、または本番環境ではいつモデルを再トレーニングする必要があるかを判断できます。

それでは実際に試してみましょう。公式の GitHub リポジトリにあるノートブックと以下のリソースを読み、Vertex AI Model Evaluation の利用を開始してください。そして、忘れないでください...楽しむ気持ちを持ち続けることを。

詳細を確認する

ドキュメント:

サンプル: 


Jing Qi、Kevin Naughton、Marton Balint、Sara Robinson、Soheila Zangeneh、Karen Lin およびすべての Vertex AI Model Evaluation チームのサポートとフィードバックに感謝の意を表します。

- カスタマー エンジニア Ivan Nardini

プロダクト マネージャー Safwan Samla
投稿先