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 はデータドリフト検知で自動再学習まで到達した状態を指す。

全体像を把握するには関連書籍も有用。

関連用語