[レポート] 新機能Amazon SageMaker Model Monitorでコンセプトドリフトを検知してモデルの品質を担保する [REPEAT] The new Amazon SageMaker Model Monitor: Address concept drift & model quality #AIM213-R #reinvent

2019.12.05

最初に

こんにちはデータアナリティクス事業本部のyoshimです。
re:Invent2019にて行われた「The new Amazon SageMaker Model Monitor: Address concept drift & model quality」という「Session」の内容についてご紹介します。

ワークショップ概要

本ワークショップの概要は下記の通りです。

Machine learning (ML) models are trained and evaluated using historical data, but their quality often degrades after they’re deployed in production as the distribution of real-world data deviates from training data. This is called concept drift, and it can impact model quality. Join us as we introduce Amazon SageMaker Model Monitor, a new capability that automatically detects concept drift and takes remedial actions to maintain quality. Model Monitor alerts you when drift is detected, helping you identify the root cause and allowing you to adjust the training data. You can use it within the Amazon SageMaker studio interface, allowing you to address concept drift and maintain quality as part of the ML workflow.

一応、Google翻訳したものも載せておきます。

機械学習(ML)モデルは、履歴データを使用してトレーニングおよび評価されますが、実世界のデータの分布がトレーニングデータと異なるため、実稼働環境に展開した後、その品質が低下することがよくあります。これはコンセプトドリフトと呼ばれ、モデルの品質に影響を与えます。コンセプトドリフトを自動的に検出し、品質を維持するための是正措置を講じる新しい機能であるAmazon SageMaker Model Monitorをご紹介します。モデルモニターは、ドリフトが検出されると警告を発し、根本原因を特定し、トレーニングデータを調整できるようにします。 Amazon SageMakerスタジオのインターフェース内で使用でき、MLワークフローの一部としてコンセプトのドリフトに対処し、品質を維持できます。

機械学習システムをプロダクションとして運用する際にかなり便利そうだし理解を深めたいな、と思い参加しました。

動画

アップロードが確認出来次第、リンクを貼ります。

目次

1.アジェンダ

2.内容

overview of model deployment in Amazon SageMaker

SageMakerを利用したデプロイの特徴について、下記のように挙げていました。
いずれも、「簡単に色々なことができる」といった感じですね。

  • ワンクリックで簡単にデプロイできる
  • 推論の方法についても、リアルタイム推論とバッチ推論の2パターンある
  • フルマネージドサービスなので、AWSがインフラ管理をしてくれる
  • Amazon CloudWatchと連携しているので、ログの確認が簡単
  • 1つのエンドポイントに複数のモデルを稼働させること、またそれぞれのモデルに推論を振り分けることが可能
  • 推論の前処理や後処理と統合した状態で推論させることができる
  • 推論エンドポイントをオートスケーリングさせることができる
  • 異なるタイプのモデルを推論エンドポイントに同居させることができる

2-2.ADP's use of Amazon SageMaker

SageMakerを利用するメリットとして「フルマネージドなので管理が楽」、「モデルの学習からデプロイまでを一貫してできる」、「スケールしやすく柔軟である」、「データとモデルまでの通信間のセキュリティを配慮できる」といった点を挙げていました。

しかしながら、モデルをプロダクションとして運用するとなると、「時間の経過に伴うコンセプトドリフトの発生」、「新規利用者や業界の変化に対応するために、かなり業界に精通しなければならない」、「アプリケーションの利用方法が変わる」、「エラーを見過ごしてしまう可能性」といったリスクがある、とのことでした。

2-3.Concept drift causes, impact, and mitigation

上記のような課題を把握した上で、今後も「コンセプトドリフトの影響を緩和」し「ITシステム部分をスケールする」ためには、「監視ができて」、「適切な対応が取れて」、「自動化&スケールできるようにする」必要がある、とまとめています。
この3点の流れの整理はとても大事だと思います。

2-4.Amazon SageMaker Model Monitor Deep dive

ここまでで、「モデルの品質担保のための監視の体制」の重要性が語られてきましたが、ここでこの問題を解消するためのサービスである「Amazon SageMaker Model Monitor」についての紹介が始まりました。

「推論エンドポイントからデータをS3に自動連携」してくれて、「スケジュールを設定すれば定期的にコンセプトドリフトをチェック」し、「チェックした結果も簡単、柔軟に可視化でき」、「CloudWatchと連携しているためアラートをあげて色々な機能と統合」することが可能です。
しかも、モデルをデプロイする時に少し設定を渡すだけで利用できるので、導入も簡単です。
とても多機能で良いサービスですね。

モニタリングJOBは、AWS側が管理しているインフラ上で実行され、実行時間に応じた課金体系となっています。
また、ベースラインの計測もAWS側が管理しているコンテナ上で実行され「カスタムのベースライン計測」も可能ということで柔軟性が高いです。

モニタリングJOBごとにベースラインと比較してドリフトを検知し、スケジュールで指定したモニタリングJOBの間隔ごとにレポートや分析結果を出力します。

モニタリングJOBのステータスは4種類あります。

モニタリングJOBの結果は「ルール違反のレポート」、「統計情報」、「オススメの制約」の3種類の結果がそれぞれS3にファイルとして出力されます。

正しい対応手段を検討するためには、CloudWatchに出力されているログを確認したり、ルール違反があった際にモデルの再学習をするように設定しておく、といった方法があります。

「Amazon SageMaker Studio」を使うことで、詳細な調査も可能となります。

2-5.Amazon SageMaker Model Monitor Application at ADP

「Amazon SageMaker Model Monitor」を使うことで、スケールするために必要な「継続的なモニタリング」、「アラートの自動化」といった要素を満たすことができた、とのことです。
また、導入も簡単だったため自分達がやるべきタスクに集中できたので、今後は「モデルやモニタリングスケジュールが多くなっても管理できるような体制」を考えたい、とまとめていました。

3.まとめ

「Amazon SageMaker Model Monitor」について理解を深めたかったので参加したのですが、だいぶ理解を深めることができました。
皆さんも、もしよかったら「Amazon SageMaker Model Monitor」を使ってみてください。