Online AB test pattern
Usecase
- 新推論モデルが本番データで問題なく推論できることを確認したいとき
- 新推論サーバが本番アクセスの負荷に耐えられることを確認したいとき
- オンラインで複数推論モデルのビジネス価値を計測するとき
- 新推論モデルが現行の推論モデルより悪い結果を出さないことを確認したいとき
Architecture
オンラインABテストパターンは複数の推論モデルおよび推論サーバを本番データで試験する手法です。オンラインABテストパターンでは複数の推論サーバを稼働させ、現行サーバに過半数のアクセスを振り分けつつ、新サーバに徐々にアクセスを流していきます。アクセス量の調整はプロキシサーバで行います。プロキシサーバはリクエストを一意に特定するIDと入力データ、推論結果を分析用DWHに格納します。ワークフローによっては推論結果を受けたクライアントの行動ログも収集し、新旧モデルの比較に利用します。アクセス振り分けのルールは目的次第です。新モデルによるエンドユーザの行動分析を行いたい場合、同一ユーザは同一推論モデルに流すほうが良いでしょう。違反検知等、推論結果を溜めるものであれば、ランダムに振り分けるか、両方にアクセスさせるという戦略も考えられます。
新推論モデルの推論結果やスピード、可用性に問題がある場合、現行サーバにアクセスを戻し、新推論モデルを停止します。新推論モデルの有効性を計測する期間は検討が必要です。季節性のあるサービスであれば長期的に計測する必要がありますし、毎日使うサービスであれば一週間程度で結果が出るでしょう。他方で新推論モデルのリリースから即座に結果がわかる場合(株価等、結果が順次判明する場合)もあります。新旧モデルの継続、停止は推論結果と影響を見て判断する必要があります。
オンラインABテストパターンは新モデルが本番システムに接続し、推論結果をクライアントに返却します。ビジネスや周辺システムへ影響あるテストパターンになり、注意が必要です。
Diagram
Pros
- 新モデルの推論結果やスピード、可用性を本番サービスで確認することができる。
- 複数モデルの推論結果を収集し分析することが可能。
Cons
- 新モデルが負のビジネス影響を及ぼす場合がある。
- 新推論サーバのためのコストが発生。
Needs consideration
- 新旧モデルへのアクセス量の割り振り方法および量
- 収集するログおよび新旧モデルの評価方法、試験期間、停止・継続の判断基準
Sample
https://github.com/shibuiwilliam/ml-system-in-actions/tree/main/chapter6_operation_management/online_ab_pattern