MLOps
機械学習モデルの開発・デプロイ・運用を自動化し、継続的に改善するための実践体系
機械学習DevOps
MLOps とは
MLOps (Machine Learning Operations) は、機械学習モデルの開発・デプロイ・運用を自動化し、継続的に改善するための実践体系である。DevOps の ML 版で、「モデルを作って終わり」ではなく、本番環境での運用・監視・再学習までをカバーする。
DevOps vs MLOps
| 観点 | DevOps | MLOps |
|---|---|---|
| 成果物 | コード | コード + モデル + データ |
| テスト | 単体テスト、結合テスト | + データ品質テスト、モデル性能テスト |
| CI/CD | コードのビルド・デプロイ | + モデルの学習・評価・デプロイ |
| モニタリング | エラー率、レイテンシ | + モデルの精度、データドリフト |
| 再デプロイの理由 | コード変更 | + データ変更、精度低下 |
MLOps パイプライン
[データ収集] → [データ前処理] → [特徴量エンジニアリング] → [モデル学習]
↓ ↓
[データ品質チェック] [モデル評価]
↓
[モデルレジストリ]
↓
[モデルデプロイ]
↓
[モニタリング]
↓ 精度低下を検知
[再学習トリガー]
AWS での MLOps
AWS では S3 にデータを保存し、SageMaker Feature Store で特徴量を管理する。モデルの学習は SageMaker Training、評価は SageMaker Processing で行い、SageMaker Model Registry でバージョン管理する。デプロイは SageMaker Endpoints や Lambda、パイプラインは SageMaker Pipelines や Step Functions で構築し、SageMaker Model Monitor で精度を監視する。
データドリフト
本番データの分布が学習データと異なってくる現象で、モデルの精度が徐々に低下する。入力データの分布が変化するデータドリフト (例: ユーザーの年齢層が変化) と、入力と出力の関係が変化するコンセプトドリフト (例: コロナ禍で購買行動が変化) の 2 種類がある。
モデルの A/B テスト
トラフィック → 90% → モデル v1 (現行)
→ 10% → モデル v2 (新規)
→ メトリクスを比較 → v2 が優れていれば切り替え
MLOps の成熟度
レベル 0 は手動で学習・デプロイ、レベル 1 はパイプラインで自動学習、レベル 2 は CI/CD でモデルを自動デプロイ、レベル 3 はデータドリフト検知で自動再学習まで到達した状態を指す。
全体像を把握するには関連書籍も有用。