Shadow AB test pattern
Usecase
- 新推論モデルが本番データで問題なく推論できることを確認したいとき
- 新推論サーバが本番アクセスの負荷に耐えられることを確認したいとき
Architecture
シャドウABテストパターンは複数の推論モデルおよび推論サーバを本番データで試験する手法です。シャドウABテストパターンでは複数の推論サーバを稼働させ、プロキシサーバは全推論モデルへリクエストを送信しますが、クライアントへ推論結果を返すのは現行モデルのみです。そのため新モデルの推論結果はクライアントへ送信しません。プロキシサーバは両方の推論結果を分析用DWHに格納します。シャドウABテストパターンではクライアントへ影響なく新モデルの推論結果やスピードを計測し、本番導入の可否を判断します。
新推論モデルの推論結果やスピード、可用性に問題がある場合、新推論モデルを停止します。新推論モデルの有効性を計測する期間は検討が必要です。季節性のあるサービスであれば長期的に計測する必要がありますし、毎日使うサービスであれば一週間程度で結果が出るでしょう。他方で新推論モデルのリリースから即座に結果がわかる場合(株価等、結果が順次判明する場合)もあります。新旧モデルの継続、停止は推論結果と影響を見て判断する必要があります。
シャドウABテストパターンはオンラインABテストパターンと違い、本番へのリスクなく新推論モデルを試験することが可能です。他方で、新モデルの推論結果はクライアントへ返却されないため、最終的なビジネス価値を測ることが難しくなります。シャドウABテストパターンで推論モデルが問題なく稼働することを確認したら、オンラインABテストパターンでビジネス価値を計測することを推奨します。
Diagram
Pros
- 新モデルの推論結果やスピード、可用性を本番サービスで確認することができる。
- 複数モデルの推論結果を収集し分析することが可能。
Cons
- 新推論サーバのためのコストが発生。
Needs consideration
- 収集するログおよび新旧モデルの評価方法、試験期間、停止・継続の判断基準
Sample
https://github.com/shibuiwilliam/ml-system-in-actions/tree/main/chapter6_operation_management/shadow_ab_pattern