Vertex AI Model Monitoring とは? Google を支える機械学習サービス監視の MLOps を徹底解説!
- Cloud
- MLOps
- Model Monitoring
- Vertex AI
本記事は、2022年4月19日に開催された Google の公式イベント「 Google Cloud Day : Digital ’22」において、 Google デベロッパーアドボケイトの佐藤一憲氏が講演された「 Google を支える機械学習サービス監視の MLOps 」のレポート記事となります。
今回は、 ML 開発を効率化するための MLOps について、 Google の考え方を解説するとともに、 ML モデルの監視を実現するための Vertex AI Model Monitoring について、わかりやすくご紹介します。
なお、本記事内で使用している画像に関しては、 Google Cloud Day : Digital ’22の「 Google を支える機械学習サービス監視の MLOps 」を出典元として参照しております。
それでは、早速内容を見ていきましょう。
目次
Google の MLOps
機械学習の開発を行うためには、様々なライフサイクルを進めていく必要があります。以下、代表的な ML 開発のライフサイクルを図で示します。なお、「 ML 」とは「 Machine Learning 」の略であり、機械学習を意味する言葉です。
そして、この記事のテーマとなっている「 MLOps 」とは、 ML 開発チームと運用チームがお互いに協調し、 ML モデルの実装から運用までのサイクルを円滑に進めるための管理体制を構築することです。
Google では、15年以上にわたってビジネスの根幹に機械学習を使用しており、最近ではディープラーニングも積極的に使っています。また、 ML 基盤の設計・運用を長年担当する Google 社員は「 ML サービスはローンチは簡単だが運用が難しい」という言葉を残しています。
以下は Google のエンジニアが発表した論文に掲載されている図です。
この図では、「 ML モデルは実際の開発に必要な全体システムの一部に過ぎない」ということを表しています。つまり、多くのコスト・時間がかかるのは、機械学習のコーディングではなく、データ収集やパイプライン構築、データ検証など、コーディング以外の部分である、ということです。
また、以下は機械学習システムにおける実運用の課題です。なお、右側に記載のある「実運用環境の課題」の部分は DevOps で解決できるものです。例えば、スケーラビリティや可用性、セキュリティなどが挙げられます。
以下、 Google における、とある機械学習サービスの運用体制です。
- 15年以上の運用実績
- ML SREs による運用
- 数千種類の ML モデルを一時間おきに継続学習
- グローバルのサービスインフラに継続デプロイ
このように、 Google は MLOps の分野で豊富な実績を持っており、機械学習に長年取り組んできました。機械学習の活用を検討している企業にとっては、 Google には安心できる材料が揃っていると言えるでしょう。
ML モデルがうまく動かない理由
ML モデルがうまく動かない理由として、実世界との間で発生するズレが挙げられます。仮に ML モデルが PoC 段階では正常に動作していたとしても、いつかは必ず実世界とのズレが発生する時が訪れて、それは機械学習サービスの性能劣化として現れます。
このズレがいつ発生するのか?は誰にもわかりません。数年後かもしれませんし、数日後や数時間後など、短いスパンでやってくる可能性もあります。そのため、機械学習モデルを利用する際は、この実世界とのズレをいち早く察知することが重要になります。
そして、 Google ではこれらのズレのことを「スキュー」と「ドリフト」という言葉で表現しています。
ここで、実際に Google で発生したトラブル例を一つご紹介します。
とある ML パイプラインでは、モデル学習を毎日実行していましたが、エンジニアのコード改修によって特定の特徴量が「-1」に固定されてしまいました。しかし、 ML モデルの推論ではエラーが発生しないため、誰もこれに気づくことはなかったのです。そして、その推論結果は次の学習にも利用され、状況は次第に悪化していきました。
このような事態を避けるために、 Google では以下の考え方を基にして各種サービスを提供しています。下図に記載されている文章は、実際に論文の中でも明記されています。
Vertex AI Model Monitoring による MLOps
Vertex AI Model Monitoring とは?
Vertex AI は、 Google が提供するマネージドな機械学習のプラットフォームであり、 Google Cloud (GCP)に内包されています。機械学習 API の利用はもちろん、 AutoML トレーニングとカスタムトレーニングの両方でモデルの保存、モデルのデプロイ、予測のリクエストなどを行うことができます。
Vertex AI には様々なコンポーネントが存在しますが、今回は MLOps や機械学習モデルのモニタリングに特化した Vertex AI Model Monitoring についてご説明します。
Vertex AI Model Monitoring の具体的な機能としては、
- モデル性能の監視とアラート
- モデル性能の分析
- ML パイプラインによる再学習との統合
などが挙げられます。次章以降で具体的な活用方法をご紹介します。
Vertex AI Model Monitoring による特徴量分布の監視
学習に使うデータには「分布」がありますが、 Vertex AI Model Monitoring では、実際に届いたデータ分布と当初予測していたデータ分布を比較し、異常が認められた場合にアラートを返します。これにより、管理者はいち早くトラブルに気づくことができ、その後の対応を講じることができます。
そして、先ほどご説明した「スキュー」と「ドリフト」に関しても、下図のように視覚的に見える化することが可能です。
以下、 Vertex AI Model Monitoring による特徴量分布の監視設定です。下図のように、 gcloud コマンドを使って簡単に設定することができます。
さらに、監視対象の特徴量はコンソール UI 上で確認できるため、直感的に内容を理解することが可能です。
Vertex AI Model Monitoring による特徴量重要度の監視
次は、 Vertex AI Model Monitoring による特徴量重要度の監視について見ていきましょう。
以下は、2019年10月の Google 最大規模の ML 基盤で発生したトラブルの実際のログデータになります。
上図は特徴量の重要度を示しており、推論ごとに「どの特徴量を見て結果を出しているのか?」を測っています。これを MLOps の基盤上で継続的に監視することで、入ってくる特徴量の異常に気づくことができます。
例えば、複数のチームが連携しながら特徴量を扱っている場合、別のチームで使っていた特徴量の意味が突然変わってしまう可能性があります。このような場合は、 ML モデルの再学習を行い、適正な運用ができるようにモデルを構築し直します。
このように、 ML モデルを監視する上では、特徴量分布だけではなく、特徴量重要度も大切な指標になります。特に、多次元ベクトルや複数特徴量など「正解」を得にくい ML モデルの場合は特徴量重要度の監視が有効な手段になります。
以下、 Vertex AI Model Monitoring による特徴量重要度の監視設定です。特徴量分布と同じように、 gcloud コマンドで簡単に設定可能です。
さらに、コンソール上で重要度の変化をチェックして、アラートを受け取ることもできます。
Vertex AI Model Monitoring に関する Q&A
Q.Vertex AI Model Monitoring で学習時の特徴量分布を監視することはできますか?
A.Vertex AI Model Monitoring は推論時の監視しかできませんが、別サービスの「 Vertex AI Feature Store 」を使うことで、学習時の特徴量分布の監視が可能になります。
Q.画像データの場合、特徴量分布のドリフトは検知できますか?また、複数次元の特徴量の高次元な分布ドリフトを検知することはできますか?
A.高次元になると特徴量分布の意味が薄れてしまうので、特徴量重要度を監視するのがオススメな方法になります。
まとめ
今回は、 ML 開発を効率化するための MLOps について、 Google の考え方を解説するとともに、 ML モデルの監視を実現するための Vertex AI Model Monitoring について、わかりやすくご紹介しました。
ML モデルの性能は様々な要因で低下するため、 ML モデルの現在の性能を正しく把握することが重要なポイントになります。そのため、 ML モデルを高いパフォーマンスで長期的に利用したい場合は、監視が必要不可欠だと言えるでしょう。
特徴量の分布はスキューやドリフトで変化するため、特徴量分布の監視で検出します。しかし、特徴量分布の監視だけでは不足するケースもあるので、状況に応じて、特徴量重要度の監視で検出すると良いでしょう。そして、今回ご紹介した Vertex AI Model Monitoring を活用することで、特徴量分布と特徴量重要度の両方を手間なく監視することができます。
Vertex AI は Google Cloud (GCP)に内包されているため、利用するためには Google Cloud (GCP)の契約が必要ですが、 Google Cloud (GCP)には多彩なソリューションが搭載されており、様々なシーンでの生産性向上に大きく寄与します。
本記事を参考にして、 Google Cloud (GCP)の導入および Vertex AI Model Monitoring の活用を検討してみてはいかがでしょうか?
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!