Wiki トピック

実稼働モデルのライフサイクル管理

実稼働モデルのライフサイクル管理とは

機械学習モデルには、本稼働環境での頻繁な更新を含む複雑なライフサイクルがあります。機械学習モデルの最初のデプロイは、長く、場合によっては複雑なプロセスの始まりにすぎません。モデルのライフサイクルには以下のような複数のステップがあります。

モデルの再トレーニング – 実稼働モデルを監視して、モデルのパフォーマンスに関する問題を特定し、新しいデータでモデルを再トレーニングします。モデルのアルゴリズムおよびチューニングパラメーターを変更することはありません。モデルのこの新しいバージョンは、再トレーニングが完了次第、テストプロセスを経て本稼働環境に移行させます。
モデルのテスト – 実稼働モデルは、信頼を維持し、機械学習の目標に基づく厳格なパフォーマンス基準を満たす必要があります。そのため、モデルの各イテレーションでは、トレーニングプロセスとは関係のないモデルのテストおよび検定手順を踏む必要があります。これは、新しいバージョンのモデルが精度を維持し、以前のバージョンのモデルとの一貫性を保つために必要な作業です。

チャンピオン / チャレンジャーモデル – データサイエンスチームが新しい、より適切と思われるモデルを導入する際、既存のモデルとの並行運用を行うことができます。既存のモデルへの予測リクエストを新しいモデルにも割当て、その応答を記録します。新しいモデルの応答がリクエストへの応答として返却されることはありませんが、データサイエンスチームは本番環境にて既存モデルとの並行運用を行い、どちらがよりビジネスの要求に対して優れているかを確認を行うことができます。また、この確認後、即座にモデルの入れ替えを行うことができます。

モデルの Blue-Green デプロイ – ダウンストリームのビジネスアプリケーションからのリクエストを中断することなく、新しいバージョンのモデルをデプロイしなければなりません。そのため、内部のルーティングシステムは、外部のプロセスや運用に支障をきたすことなく、新しいモデルにシームレスに切り替える必要があります。

モデルのフェイルオーバーとフォールバック – 実稼働モデルでは、モデルが有効なレスポンスを提供できない、または推論プロセスに時間がかかりすぎるという状況が発生します。いずれの場合も、SLA を満たすレスポンスを提供するために、モデルにはフォールバック値を設定するかフェイルオーバー用のモデルを用意する必要があります。このフォールバックの状態は、トラブルシューティング時にも使用できます。

モデルのバージョン管理とロールバック – モデルが致命的な問題を抱えたまま本稼働環境に導入されることがあります。この場合、新しいバージョンの準備が完了するまで、実稼働モデルを以前のバージョンにロールバックします。適切に検定を行い、ウォームアッププロセスを実施することで、これらの問題は最小限に抑えられます。

本稼働環境でのライフサイクル管理が重要である理由

本稼働環境で機械学習モデルの利用と価値を拡大するには、堅ろうで反復可能なモデルライフサイクル管理プロセスが必要です。ライフサイクルを管理しないと、本稼働環境に導入されたモデルでデータの不正確さ、パフォーマンスの低下、または予期しない結果が発生し、AI の信頼性に関する企業の評判が損なわれる可能性があります。実稼働モデルのライフサイクル管理は、Machine Learning Operations(MLOps)システムを構築するにあたって極めて重要です。MLOps により、企業は本稼働環境のモデル数を数百さらには数千へと拡張していくことができるためです。また、本稼働環境でライフサイクル管理を行うと、IT 運用部門が実稼働モデルのテストを実行できるため、データサイエンティストに余裕が生まれ、その他のデータサイエンスプロジェクトに取り組めるようになります。

実稼働モデルのライフサイクル管理 + DataRobot

DataRobot MLOps は、DataRobot エンタープライズ AI プラットフォームの一部として提供される製品です。そして、モデルライフサイクル管理は、DataRobot MLOps の 4 つの重要な機能のうちの 1 つです。DataRobot MLOps により、任意の機械学習プラットフォームで構築されたモデルを本稼働環境でデプロイおよびテストしたり、シームレスに更新したりすることができます。この際に、ダウンストリームアプリケーションへのサービスが中断されることはありません。

フィッティング

DataRobot MLOps でモデルのデプロイ、管理、テスト、更新、ガバナンスを実施