(このブログポストは Introducing MLOps Champion/Challenger Models の和訳です)
本番環境で多数の機械学習モデルを運用しているとします。DataRobot の MLOps をお使いの方もいらっしゃれば、独自の方法で行っている方もいらっしゃるでしょう。また、これらのモデルを監視してサービスの状態や精度などを把握しているとします。
まずは、おめでとうございます。あなたは、実際にここまでたどり着けたエリート組織10%の中に入っています。残りの90%の方々は、まだ最初のモデルをどうやって運用化するかを考えていて、監視方法については考え始めてもいません。
10%のエリートの方々に質問です。モデルの精度や性能が1~2か月後に劣化しそうなことが監視システムからわかった場合は、どうしますか?
お使いのモデルがこのような状況になった場合、いくつかの選択肢があります。
- 劣化するモデルを新しいモデルと交換
- 劣化するモデルを再トレーニング
- 以前のバージョンのモデルにロールバック
どの選択肢においても、現在運用中のモデルを別のモデルやバージョンに単純に置き換えることにはリスクが伴うため、良いことではありません。
それはなぜでしょうか?
基本的に、試験環境でどれだけモデルのトレーニングやテストをしても、その結果は、実際の本番環境へ移行した際のモデル動作の推定に過ぎません。
モデルの劣化に対処する最善の方法とは?
こうした重要なモデル管理作業を正しく実施するには、いくつかの方法があります。そのほとんどは、「チャンピオン/チャレンジャー」という言葉でその特徴を表すことができます。
チャンピオン/チャレンジャーにより、本番環境においてさまざまなアプローチで予測モデルをテストすることが可能です。このコンセプトは、マーケティングの観点から見ると A/B テストと似ています。チャンピオン/チャレンジャーでは、ある意思決定ロジックに関する予測をいろいろなパターンで実行し、それを監視、評価することができます。最終的な目標は、どのパターンが最も成功しているかを見極めることです。
簡単に言うと、現行のモデル(チャンピオン)に対して、新しいモデルや再トレーニングされたモデルをチャレンジャーとして設定することができます。チャレンジャーはチャンピオンをシャドーイング、つまりチャンピオンと同じ予測を実行します。チャレンジャー達は、新チャンピオンになるチャンスを求めて精度などを競い合うことになります。その後 MLOps のエンジニアは、この本番の予測ベースの競争の結果を検討し、勝者となったモデル(つまり、既存のチャンピオンまたはチャレンジャーの1つ)を推薦することができます。
もしガバナンスのプロセスがある場合は、このタイミングで指定された承認者が新しい標準(つまり、新しいチャンピオン)となるモデルを最終的に決定します
チャンピオン/チャレンジャーの仕組みだけではなく、これが循環型プロセスであることを理解しておくことも重要です。つまり、このプロセスのアクティビティは、実行中のすべての実稼働モデルでほぼ常に発生しています(発生していなければなりません)これにより、質問への回答やテストの完了を待つことなく、モデルの「ホットスワップ」がいつでも可能です。
MLOps を詳しく見る
本番環境での機械学習モデルのデプロイ、監視、管理、ガバナンス
チャンピオン/チャレンジャーは MLOps 6.1の新機能です
DataRobot のリリース6.1では、MLOps にチャンピオン/チャレンジャーのフレームワークを追加しました。この新しい機能により、DataRobot のお客様は、管理されたフレームワークの中で、現在最高のパフォーマンスを発揮しているモデルと並行して、チャレンジャーモデルをシャドーモードで実行できます。
さらに、DataRobot の Automated Machine Learning を使用することで、潜在的なチャレンジャーとしての高品質な代替モデルをいつでも簡単に構築できます。DataRobot のモデルまたはカスタムモデルをチャンピオンとして選択し、最大3つのチャレンジャーモデル (DataRobot AutoML で自動生成したり、DataRobot の外で作成したりすることも可能)を選んで、チャンピオンをシャドーイングすることができます。
DataRobot の MLOps プラットフォームでのチャンピオン/チャレンジャーの主な特徴は、ライブで予測を行えるのはある一時点において1つだけであることです。予測リクエストはすべて、現在のチャンピオンモデルが対応します。その後、分析用に同じ予測リクエストがチャレンジャーに対して再生されます。
これが A/B テストや多腕バンディットとの重要な違いです。これらのアプローチでは、実際にモデル間でトラフィックを分割しています(つまり、一方のモデルに対して50%、もう一方のモデルに対しても50%とし、両方のモデルがリクエスト元のアプリケーションに対して予測を返します)。A/B テストでは、新しいモデルを段階的にテストでき、各モデルの KPI への影響について、より良い実験結果を得ることができます。しかし、このアプローチでは、アプリケーションがさまざまなモデルからランダムに予測を得るため、多くの組織において重大な欠点とされています。
つまり、テストするモデルのバリエーションは、(特徴量の使い方や精度などの点で)本番環境に適したものでなければなりません。A/B テストでは、最も精度が良い保険料率算出モデルと比較することはできません。このようなチャレンジャーモデルについては、本番環境への投入が禁止されていることが多いためです。また、ベースライン参照モデルを本番環境で実行するのは、精度に関する対処ができないため、やめたほうがいいかもしれません。
DataRobot のシャドーイング方式では、安全に予測をミラーリングすることができ、ビジネスや顧客に影響を与えるアプローチを取る必要がありません。このセーフティネットによって、比較したいモデルをより詳しく調べることができます。
MLOps において、Python で作成されたチャンピオンモデルが、3つのチャレンジャーを相手にどのようなパフォーマンスを発揮しているのかを時間を追って示した例
チャンピオンモデルと同じ本番環境データを提供することで、チャレンジャーモデルも同時にアクティブ化され、実際に本番環境のビジネスプロセスで使用されたチャンピオンの予測とチャレンジャーモデルの予測を比較できます。その後、さらに予測の内容、精度、データの誤差を継続的に分析し、過去の任意の期間に的を絞ることができます。
MLOps による厳格な管理の下で、このプロセスには承認ワークフローと監査証跡が提供されており、権限を与えられたユーザーのみがチャレンジャーモデルの提案・分析や現チャンピオンの交換を行えるようになっています。また、提案された交換を行う前に「シャドーモード」で実行することは、モデルの交換処理の安定性を向上させることにもつながります。
新しいチャレンジャーモデルを追加して、新しい予測と過去の予測をテストし、チャレンジャーとチャンピオンをホットスワップする
MLOps のチャンピオン/チャレンジャー機能では、本番運用のためのモデルとしてほかにどのような選択肢があるかを可視化できます。また、常に代替モデルが用意されているということになります。これにより、常に変化するビジネス状況に対応し、可能な限り最高のモデル品質を長期的に維持できます。
MLOps のチャンピオン/チャレンジャーモデルについてもっと知りたいですか?
DataRobot MLOps をすでにお使いの場合は、お持ちのライセンスでこの重要な新機能をご利用いただけます。また、DataRobotコミュニティでは、チャンピオン/チャレンジャーモデルについて詳しくご紹介し、初めてチャレンジャーモデルを構築する際に役立つビデオをご覧いただけます。MLOps のチャンピオン/チャレンジャーモデルは、リリース6.1の一般提供機能です。
プラットフォーム
MLOps
データサイエンスチームとIT運用チームが連携して機械学習モデルを本番環境でデプロイ、監視および管理する上で必要な機能を提供します
もっと詳しく
執筆者について
Richard Tomlinson(リチャード・トムリンソン)
プロダクトマーケティングディレクター
プロダクト、マーケティング、セールスの各チームと密接に連携し、DataRobot AIプラットフォームにおいてデータ管理およびデータエンジニアリングの各機能の導入と活用を推進。データウェアハウス、BI、アナリティクスの分野で20年以上の経験を有し、直近の8年間はHadoopおよびクラウドプラットフォームに注力。シカゴを拠点にしているが、イギリス出身で、ロンドン・スクール・オブ・エコノミクスで統計学の学位を取得。
Richard Tomlinson(リチャード・トムリンソン) についてもっとくわしく
小幡 創(Hajime Obata)
プロダクトマネージャー
DataRobot プロダクトマネージャー。2018年から DataRobot に参加。DataRobot 製品に関するフィードバック収集と新規開発計画への反映、新機能・新製品のベータプログラムやローンチ、トレーニングやマーケティングを通じた普及活動、ローカライゼーション管理、などを通じて、AI と DataRobot の価値を日本に広く広めるための業務に従事。
小幡 創(Hajime Obata) についてもっとくわしく