ML システムの QA パターン
機械学習システムのQAには様々な方法があります。今回はMercari社の GitHub に記載されている次のMLシステムのQAのパターンを紹介します。
- シャドウA/Bテストパターン
- オンラインA/Bテストパターン
シャドウ A/B テストパターン
シャドウABテストパターンでは、複数の推論サーバーを稼働させ、プロキシサーバーは全推論モデルへリクエストを送信しますが、クライアントへ推論結果を返すのは現行モデルのみになります。そのため、本番サービスへ影響を与えずに新しい推論モデルを試験することが可能です。一方、新モデルの推論結果はクライアントへ返却されないため、最終的なビジネス価値を測ることが難しくなります。
- Pros
- 新モデルの推論結果やスピード、可用性を本番サービスで確認することができる
- 複数モデルの推論結果を収集し分析することができる
- 本番サービスに影響を与えない
- Cons
- エンドユーザーの反応を見ることができないため、最終的なビジネス価値を測ることが難しい
- ユースケース
- 新推論モデルが本番データで問題なく推論できることを確認したい場合
- 新推論サーバーが本番アクセスの負荷に耐えられることを確認したい場合
オンライン A/B テストパターン
オンラインABテストパターンでは、複数の推論サーバーを稼働させ、現行サーバーに過半数のアクセスを振り分けつつ、新サーバーに徐々にアクセスを流していきます。アクセス量の調整はプロキシサーバーで行います。新モデルを本番システムに接続し、推論結果をクライアントに返却するため、ビジネスへ影響が出るテストパターンとなります。
- Pros
- 新モデルの推論結果やスピード、可用性を本番サービスで確認することができる
- 複数モデルの推論結果を収集し分析することができる
- エンドユーザーの反応を見ることができる
- Cons
- 新モデルが負のビジネス影響を及ぼす場合がある
- ユースケース
- 新推論モデルが本番データで問題なく推論できることを確認したい場合
- 新推論サーバーが本番アクセスの負荷に耐えられることを確認したい場合
- オンラインで複数推論モデルのビジネス価値を計測したい場合
参考
AlloyDB
Amazon Cognito
Amazon EC2
Amazon ECS
Amazon QuickSight
Amazon RDS
Amazon Redshift
Amazon S3
API
Autonomous Vehicle
AWS
AWS API Gateway
AWS Chalice
AWS Control Tower
AWS IAM
AWS Lambda
AWS VPC
BERT
BigQuery
Causal Inference
ChatGPT
Chrome Extension
CircleCI
Classification
Cloud Functions
Cloud IAM
Cloud Run
Cloud Storage
Clustering
CSS
Data Engineering
Data Modeling
Database
dbt
Decision Tree
Deep Learning
Descriptive Statistics
Differential Equation
Dimensionality Reduction
Discrete Choice Model
Docker
Economics
FastAPI
Firebase
GIS
git
GitHub
GitHub Actions
Google
Google Cloud
Google Search Console
Hugging Face
Hypothesis Testing
Inferential Statistics
Interval Estimation
JavaScript
Jinja
Kedro
Kubernetes
LightGBM
Linux
LLM
Mac
Machine Learning
Macroeconomics
Marketing
Mathematical Model
Meltano
MLflow
MLOps
MySQL
NextJS
NLP
Nodejs
NoSQL
ONNX
OpenAI
Optimization Problem
Optuna
Pandas
Pinecone
PostGIS
PostgreSQL
Probability Distribution
Product
Project
Psychology
Python
PyTorch
QGIS
R
ReactJS
Regression
Rideshare
SEO
Singer
sklearn
Slack
Snowflake
Software Development
SQL
Statistical Model
Statistics
Streamlit
Tabular
Tailwind CSS
TensorFlow
Terraform
Transportation
TypeScript
Urban Planning
Vector Database
Vertex AI
VSCode
XGBoost