🔖 キーワード索引
MLOps CI/CD モデル運用 再現性 監視 ML基盤
MLOps (Machine Learning Operations) は ML モデルを本番運用するための文化・実践・ツール群。 DevOps の ML 版で、 データ・コード・モデルのバージョン管理、 CI/CD、 モニタリング、 再学習自動化を含む。 「実験で動くノートブック」と「本番で安定運用」のギャップを埋める。
MLOps MLflow Kubeflow CI/CD for ML モデルレジストリ feature store monitoring data drift concept drift A/B test
「実験 → デプロイ → 監視 → 再学習」 が MLOps ライフサイクルの中核。
💡 30秒で分かる結論
🍰 まずはやさしく
AIを育てるための仕組みです。
AIをずっと使い続けるために使います。
スマホアプリの更新のようなものです。
この章ではMLOpsの基本を読みます。
MLOps ── MLモデルの開発・運用を統合する考え方
機械学習モデルの開発〜本番運用〜再学習 を継続的に回す仕組みの総称
DevOpsの概念をMLに拡張。 「コード」だけでなく「データ」「モデル」「実験」もバージョン管理
中核は 3つの監視 :(1) コードの品質、 (2) データのドリフト、 (3) モデルの性能劣化
ツール例:MLflow / Kubeflow / Weights & Biases / DVC / Airflow / SageMaker
「実験できるが本番に出せない」「精度は出るが運用が破綻」を防ぐためのエンジニアリング体系
📍 文脈 ── どこで出会うか
🍰 まずはやさしく
AIを実務で使うためのルールです。
AIの性能が落ちるのを防ぐために使います。
部活の記録を正しく管理するのと似ています。
この章ではMLOpsに出会う場面を読みます。
研究で良い精度が出たモデルが、 本番投入後に「データが変わって精度急落」「再学習の手順が再現できない」と崩壊するのを防ぐのがMLOps。 競技や論文の後、 実務に乗せるなら必須の知識です。
本ページでは「mlops」を扱う。 統計データ分析コンペティション (2026) の教材で、 SSDSE-B-2026 (47 都道府県 × 複数年 × 100 超列) の実データを使った再現可能な学習を目指す。
「mlops」は統計・データサイエンスの体系における重要概念のひとつ。 本ページは「定義・直感・数式・実装・落とし穴・関連手法」の 6 視点で構成され、 各視点は独立して読めるが順序通り読むと体系的な理解が得られる。
🎨 直感で掴む
🍰 まずはやさしく
AI専用のメンテナンス方法です。
AIが古くなるのを防ぐために使います。
買い物の流行が変わるのに似ています。
この章ではMLOpsの感覚的な意味を読みます。
従来のソフトウェア開発(DevOps)と比べると、 MLOpsの独自の難しさ が見えます:
側面 従来のDevOps MLOps
ビルド対象 コード コード + データ + モデル
テスト ユニット/統合テスト + データ品質 、 モデル精度 、 公平性
再現性 同じコード→同じ動作 同じコード + 同じデータ + 同じ乱数 → 同じモデル
劣化 バグ以外は基本起きない データ分布の変化で勝手に劣化
監視対象 応答時間、 エラー率 + 予測分布、 入力ドリフト、 ラベル遅延
つまり、 「動いている」を維持するだけで通常のWebサービスの何倍も気を配る必要があります。
🎨 概念図で押さえる — MLOps の3つの視点
MLOps の理解には、 (1) 再学習トリガー設計 (過学習しないモデル更新の閾値)、 (2) 特徴量ドリフト検知 (入力分布の変質を可視化)、 (3) 残差・予測誤差の継続監視 (デプロイ後の性能劣化のシグナル) の 3 点を同時に把握する必要があります。 ここでは既存の解析図を借りて、 MLOps 運用パイプラインの監視キャンバスを描き出します。
図A: 正則化曲線は、 「訓練誤差を下げると検証誤差が再び上昇する」 という過学習の閾値を可視化する。 MLOps の再学習パイプラインでは、 この閾値を CI で自動検出し、 検証誤差が悪化した時点でモデル登録を止める仕組みが基本。 SSDSE-B-2026 でも、 47 都道府県を train/val に分けて Ridge の λ を変えると、 同じ U 字曲線が再現できる。
読み取るポイント :
U 字の最下点が最適モデル — 自動再学習はこの閾値を超えたら停止
左側 (低正則化) は過学習領域 — 本番デプロイ前に必ずブロック
右側 (高正則化) は学習不足 — 特徴量エンジニアリングを見直すサイン
図B: 多重共線性は、 MLOps 運用では「特徴量ドリフト」 として現れる。 デプロイ初日は VIF が 3 未満で安定していた特徴量が、 数か月後に VIF=15 と急上昇すれば、 入力分布の相関構造が変質した可能性が高い。 MLflow の Feature Store でこの VIF を週次で記録し、 閾値超えをアラートすれば、 性能劣化を未然に察知できる。
読み取るポイント :
VIF が時間と共に上昇 → 入力分布のドリフト、 再学習トリガー
相関行列の色が濃化 → 特徴量重複、 不要列の削除を検討
係数の符号反転 → 多重共線性で不安定化、 Ridge 化が有効
図C: 残差プロットは、 デプロイ後のモデル監視で最も重要な可視化のひとつ。 残差が予測値と無相関にばらつくなら健全だが、 漏斗状 (異分散) や曲線傾向が出れば、 モデル仮定が破綻しつつあるサイン。 Prometheus + Grafana で残差統計をダッシュボード化し、 残差の標準偏差や歪度が閾値を超えたら自動再学習を発火させる ── これが MLOps の Observability の核心。
読み取るポイント :
残差がランダムに散らばる → モデル健全、 監視継続
残差が漏斗状 → 異分散性、 ログ変換やロバスト回帰へ切替
残差が時系列で偏り → コンセプトドリフト、 再学習を急ぐ
この 3 枚を順に追うと、 「再学習の閾値判定 → ドリフト検知 → 残差監視」 という MLOps 運用の標準ループが体系化される。 図 A だけで再学習しても、 図 B/C を見ないとドリフト原因が掴めない。 関連用語 モデル監視 / 再学習 / 多重共線性 へ進むと、 各図の理論背景を深掘りできる。
🧪 理解度チェック
以下の問いに答えながら、 MLOps の本質を確認しよう。
Q1. MLOps と DevOps の最大の違いは何か?
答えを見る
A. コード変更だけでなくデータとモデルの変化に対応する必要 がある点。 DevOps はコードを CI/CD で運用するが、 MLOps では「データドリフト → モデル劣化」の継続監視と再学習パイプラインが本質。 モデル品質はコードのバージョンだけでなくデータ・特徴量のバージョンにも依存する。
Q2. モデル劣化を検知するメトリクスを 3 つ挙げよ。
答えを見る
A. (1) 予測精度(Accuracy / RMSE) : ラベルが取れる場合の直接指標。 (2) PSI (Population Stability Index) : 入力分布のドリフト。 (3) 予測値分布の変化 : ラベル未取得時の proxy。 これに レイテンシ・スループット・エラー率 も追加することが多い。
Q3. シャドーデプロイとカナリアリリースの違いは?
答えを見る
A. シャドーデプロイ は新モデルに本番トラフィックを流すが結果はユーザーに返さず比較のみ。 カナリアリリース は一部ユーザー(5%→50%→100%)に新モデルの結果を実際に返す。 シャドーは完全にリスク 0 だがユーザー体験は計測できず、 カナリアは実体験を取れるがリスクあり。
Q4. 特徴量ストア (Feature Store) を導入する目的は?
答えを見る
A. 学習時と推論時の特徴量計算ロジックの一貫性を保つ のが最大の目的。 これがズレると「training-serving skew」が発生し、 オフライン評価では高精度なのに本番で精度が落ちる。 また再利用性・再現性・モニタリング容易性も向上する。
Q5. 再学習の閾値設計で気を付けるポイントは?
答えを見る
A. (1) 過敏すぎず鈍感すぎない閾値 : アラート疲れと劣化放置の両方を避ける。 (2) 季節性の考慮 : 12 月 vs 1 月の差は通常はドリフトでない。 (3) 段階的トリガー : 「警告 → 調査 → 再学習」と多段階で判定。 (4) 業務インパクトとの紐付け : 精度ではなく KPI でも判定する。
📐 定義/数式
🍰 まずはやさしく
AIを自動で作り直すサイクルです。
常に最新の状態で動かすために使います。
テスト勉強を繰り返して点数を上げる似ています。
この章ではMLOpsの定義と仕組みを読みます。
MLOpsの中核ループは CT(Continuous Training) と呼ばれる継続的再学習サイクル:
Google が提案する成熟度モデルでは、 レベル0(手作業)→ レベル1(ML自動化)→ レベル2(CI/CD自動化)の3段階で評価。
📐 MLOps 成熟度モデル(拡張版)
Level 特徴 リスク 投資 代表 0: アドホック Jupyter のみ、 手動デプロイ 再現性なし、 障害でパニック なし 個人開発 1: 自動学習 学習スクリプト化、 cron で実行 本番手動 数日 小規模スタートアップ 2: CI/CD コード変更→自動学習→自動デプロイ モニタリング弱 数週間 中規模事業 3: CT (再学習) ドリフト検知で再学習 誤検知・暴走 数ヶ月 大企業 ML 部門 4: 完全自律 AutoML + 自律最適化 ブラックボックス化 数年 Tier 1(GAFA)
🌏 MLOps を取り巻く 6 つの文脈
DevOps の延長 MLOps は DevOps の自然な拡張。 ただし『データとモデルの再現性』が新しい課題。 DevOps エンジニアが MLOps に移行する事例が多い。
クラウドベンダー戦略 AWS / GCP / Azure が MLOps プラットフォームで競争。 ベンダーロックインのリスクと、 マネージドの便利さのトレードオフ。 OSS スタック(K8s + MLflow)が中立解。
AI 規制 EU AI Act、 NIST AI RMF、 日本 AI 戦略。 MLOps が監査基盤として機能。 規制遵守は将来的に必須スキル。
LLM 時代 Generative AI で LLMOps が分岐。 ただし MLOps の延長として統合される流れ。 Prompt 管理、 RAG、 トークンコストが新項目。
オープンソース文化 Netflix Metaflow、 Uber Michelangelo、 LinkedIn ML platform が OSS 化。 大企業の知見が中小企業にも還元される。
教育とコミュニティ Coursera、 DataTalksClub、 Made With ML 等。 日本語コミュニティも増加中。 認定資格(Google Cloud ML Engineer 等)も整備。
🎓 MLOps 実践者へのメッセージ
MLOps は技術ではなく『文化と実践』である。 ツール(MLflow, Kubeflow, Feast)を導入するだけでは MLOps は実現しない。 重要なのは、 (1) コード/データ/モデル/環境のバージョン管理を徹底する文化、 (2) DS と MLE が協調し、 お互いの仕事を尊重する姿勢、 (3) 失敗を blameless に振り返り改善する姿勢、 (4) 経営層が長期投資を支援する姿勢、 という 4 つの組織的要因。 ツールはこれらを支える手段に過ぎない。
SSDSE-B-2026 のような小規模データでも MLOps の基本は実践可能。 MLflow + GitHub Actions + Hugging Face Spaces の最小構成で月額 0 円で実装できる。 本サイトの教材で『年次自動再学習パイプライン』を構築する演習は、 規模に関係なく MLOps の主要 6 ステップ(学習・評価・登録・デプロイ・監視・再学習)を体感できる。
2022 年以降の Generative AI ブームで LLMOps が分岐したが、 本質的には MLOps の延長。 Prompt 管理、 RAG、 ハルシネーション検知、 トークンコスト管理が新項目として加わる。 これらも MLflow / Weights & Biases 等のツールが追従対応している。 LLMOps を別物と考えず、 MLOps の進化形として理解するのが妥当。
規制対応(EU AI Act、 NIST AI RMF、 日本 AI 戦略)も MLOps の重要側面。 監査ログ、 説明可能性、 公平性、 データ保護を技術的に支える基盤として MLOps が機能する。 ガバナンス・倫理・法務の知識も身につけることで、 真の MLOps エンジニアへと成長できる。
🛠 MLOps プロジェクトの典型的構成
本格的 MLOps プロジェクトの推奨ディレクトリ:
my_mlops_project/
├── data/ ← DVC 管理
│ └── .dvc/
├── features/ ← Feature Store 設定
│ └── feature_views.py
├── src/
│ ├── preprocessing.py
│ ├── train.py
│ ├── evaluate.py
│ └── inference.py ← 本番推論ロジック
├── pipelines/ ← Kubeflow / Airflow DAGs
│ └── training_pipeline.py
├── serving/ ← BentoML / FastAPI
│ └── service.py
├── monitoring/ ← Prometheus / Grafana 設定
│ ├── drift_detection.py
│ └── dashboards/
├── tests/
├── notebooks/ ← 実験ノート
├── mlflow_db/ ← MLflow tracking
├── Dockerfile
├── docker-compose.yml ← ローカル全部入り
├── .github/workflows/ ← CI/CD
│ ├── train.yml
│ ├── evaluate.yml
│ └── deploy.yml
├── docs/
│ ├── runbook.md ← 障害時手順
│ └── architecture.md
└── README.md
📈 MLOps メトリクス Dashboard 設計
本番 MLOps システムが見るべき主要指標:
推論レイテンシ :p50, p95, p99(時系列)推論スループット :QPS(1 秒間のリクエスト数)エラー率 :HTTP 5xx, 4xx の割合モデル予測分布 :出力ヒストグラム(時系列)入力特徴量分布 :各特徴量のヒストグラム(学習時 vs 本番)ドリフト指標 :KL、 PSI、 KS(特徴量ごと)性能指標 :MAE, AUC, F1 等(ラベル取得可能なら)リソース使用 :GPU/CPU 使用率、 メモリ、 ディスクコスト :日次・月次の総額(GPU 時間 × 単価)SLA 達成率 :可用性、 レイテンシ SLO 達成再学習頻度 :直近 3 ヶ月の再学習回数モデルバージョン :本番稼働中のバージョンと年齢これら 12 指標を Grafana ダッシュボードに集約し、 異常時は Slack / PagerDuty 通知。 MLOps エンジニアは毎朝 5 分でダッシュボードを確認する習慣を持つのが理想。
🎯 まとめと次のステップ ── MLOps
MLOps は技術ではなく『文化と実践』。 ツール導入だけでは実現しない。 コード/データ/モデル/環境の 4 軸バージョン管理、 DS と MLE の協調、 blameless な振り返り、 経営層の長期投資、 という 4 つの組織的要因が前提。
SSDSE-B-2026 のような小規模データでも、 MLflow + GitHub Actions + Hugging Face Spaces で月額 0 円の『最小 MLOps』が実装可能。 規模に関係なく主要 6 ステップ(学習・評価・登録・デプロイ・監視・再学習)を体感できる。
LLM 時代の LLMOps は MLOps の延長。 Prompt 管理、 RAG、 ハルシネーション検知、 トークンコスト管理が新項目。 規制対応(EU AI Act 等)も MLOps の重要側面となり、 監査ログ・説明可能性・公平性・データ保護を技術的に支える基盤として MLOps が機能する。
MLOps エンジニアは 2026 年現在、 不足職種ランキング上位。 米国西海岸で年収 200K-400K USD、 日本でも 800-2000 万円。 Docker・Kubernetes・Python・SQL・MLflow・Kubeflow・クラウドの 7 領域を 2-3 年で習得するのが標準ルート。
📋 MLOps 主要関連用語クロスリファレンス
用語 関連ページ 重要度 学習順序 モデルデプロイ model-deployment.html ★★★★★ 1 番目 再学習 retraining.html ★★★★★ 2 番目 TensorFlow tensorflow.html ★★★★ 3 番目 PyTorch pytorch.html ★★★★ 3 番目 scikit-learn scikit-learn.html ★★★ 4 番目 データリーケージ data-leakage.html ★★★★ 5 番目 過学習 overfitting.html ★★★ 6 番目 クロスバリデーション cross-validation.html ★★★★ 6 番目 検証 validation.html ★★★ 6 番目 機械学習 machine-learning.html ★★★★★ 前提 ML 基礎 ml-fundamentals.html ★★★★★ 前提 データエンジニアリング data-engineering.html ★★★★ 前提 特徴量エンジニアリング feature-engineering.html ★★★★ 並行
🚀 次に進む先
ステップ A:MLflow Quickstart mlflow.start_run() を学習スクリプトに追加し、 params/metrics/artifacts をログ。 公式チュートリアルを 1 時間で実施。
ステップ B:Pipeline 化 Jupyter ノートブックの前処理+学習を Pipeline + ColumnTransformer で書き直し。 リーケージ防止+再現性向上。
ステップ C:Docker 化 Dockerfile で環境固定。 同じ image を学習・推論で使うことで training-serving skew を防ぐ。
ステップ D:GitHub Actions 自動化 push → 学習 → 評価 → PR 作成を .github/workflows/train.yml で自動化。 1 日で導入可能。
ステップ E:Feature Store 導入 Feast の minimal example を実装。 オフライン(BigQuery 等)とオンライン(Redis 等)の二重ストア。
ステップ F:本番監視 Prometheus + Grafana でメトリクスダッシュボード。 推論レイテンシ・スループット・エラー率を可視化。
🎁 MLOps ── 実践者への補遺
MLOps の最大の落とし穴は『一気に完璧を目指す』姿勢です。 多くの組織が『MLflow + Kubeflow + Feast + Vertex AI + Prometheus + Grafana を全部入れよう』として、 半年経っても本番デプロイに至らない、 というパターンに陥ります。 現実的なアプローチは『最小から始めて段階的に拡張』。 まず MLflow だけ導入、 効果を実感したら GitHub Actions、 次に Pipeline 化、 という順序で進めるべきです。
SSDSE-B-2026 のような小規模教材データでも、 MLflow + GitHub Actions の最小構成で MLOps の主要 6 ステップ(学習・評価・登録・デプロイ・監視・再学習)を体感できます。 これは個人学習者にも、 中小企業のチームにも、 大企業の MLOps 練習にも有用です。 規模に関係なく『仕組みとしての MLOps』を体感することが、 真の理解への第一歩。
2022 年以降の Generative AI ブームで LLMOps が話題になっていますが、 本質は MLOps の延長です。 Prompt 管理(Git で .md ファイル管理)、 RAG(ベクトル DB の運用)、 ハルシネーション検知(Evaluation セットでの自動検証)、 トークンコスト管理(OpenAI/Anthropic SDK の usage 統計化)── これらは MLOps の延長として理解できます。 LLMOps を別物と考えず、 MLOps の進化形として捉えるのが妥当。
EU AI Act(2024 採択)、 NIST AI Risk Management Framework(2023)、 日本 AI 戦略の各種ガイドライン。 これらは MLOps に新しい要件を課します:監査ログ(30 日以上保存)、 説明可能性(SHAP/LIME)、 公平性検証(Demographic Parity 等)、 データ保護(GDPR 等)。 規制対応は、 もはや法務部門だけの問題ではなく、 MLOps エンジニアの責務でもあります。 技術スキルと並行して、 規制動向のフォローも継続することが、 将来性のあるキャリア構築に直結します。
🔬 数式を言葉で読み解く
🔬 数式を言葉で読み解く(MLOps 主要指標)
数式を言葉で読み解く(MLOps の中核指標)
1) モデル鮮度 (Model Freshness): $F(t) = t - t_{train}$ 。 $t$ は現在時刻、 $t_{train}$ は最後の学習完了時刻。 単位は通常『日』。 たとえば 30 日経過していたら $F=30$。 鮮度が高ければ高いほど『環境変化』にモデルが追いついていない可能性が増す。 SSDSE-B-2026 のように年次更新されるデータでも、 鮮度 365 日を超えたら『再学習の検討時期』というシグナル。 業界によって閾値は異なる(ニュース推薦は時間単位、 信用スコアリングは月単位)。
2) データドリフト (Data Drift): $D_{drift} = \mathrm{KL}(P_{train} \| P_{prod})$ 。 KL ダイバージェンスで『学習時の特徴量分布』と『本番で観測される分布』のずれを定量化。 SSDSE 教育費予測の例なら、 もし新たな県(仮想例)が追加されたり、 人口分布が大きく変化したりすると $D_{drift}$ が上昇する。 閾値は経験的に 0.1〜0.5 程度を超えたらアラート。 Population Stability Index (PSI) も同様の目的で使われる。
3) コンセプトドリフト (Concept Drift): $C_{drift} = |L(t) - L(t_0)|$ 。 $L$ は損失(または MAE/精度)。 時刻 $t_0$ の本番性能から $t$ までの性能変化を見る。 入力分布が同じでも目的変数との関係(コンセプト)が変わると性能が劣化する。 例:教育費の社会的位置づけが変わり、 同じ消費支出でも異なる教育費になる現象。
4) MTTR (Mean Time To Recovery) :障害から復旧までの平均時間。 MLOps では『誤った予測が出始めてから、 正しいモデルに戻すまで』。 SLA で『1 時間以内』『1 日以内』などを定める。 高い MTTR は MLOps 成熟度が低い指標。 ロールバック手順とランブックの整備が鍵。
5) Experiment Reproducibility Rate :『過去の実験を再現できる割合』。 100 実験のうち再現できたものが 95 なら 95%。 高ければ高いほど MLOps として健全。 これを支えるのが (a) コードバージョン (Git SHA)、 (b) データバージョン (DVC / Delta Lake)、 (c) ハイパーパラメータ (MLflow params)、 (d) 環境 (Docker image hash)、 (e) ランダムシードの 5 点セット。
6) Serving Latency p99: $T_{p99} \le SLA$ 。 99 パーセンタイル推論レイテンシが SLA 以下であること。 たとえば SLA=100ms、 観測 $T_{p99}=85$ms なら OK。 SLA 超過は即座にアラート。 Latency 改善策:(a) モデル量子化、 (b) バッチ推論、 (c) GPU 推論、 (d) ONNX/TensorRT 変換、 (e) Caching。 SSDSE 規模ならどれも要らないが、 本番では桁違いに重要。
これら 6 指標のうち、 鮮度・ドリフト・MTTR は『監視ダッシュボード』、 再現率は『プロセス』、 レイテンシは『SLO』。 6 つを毎日チェックする習慣が MLOps の最小単位。
🧮 実値で計算してみる
典型的なMLOpsプロジェクトの1スプリント (2週間)の作業ログ例:
月: 新規データの取り込みパイプライン点検(Airflow DAG確認)
火: モデルの精度指標を Grafana ダッシュボードでチェック。 AUC が 0.85→0.79 に低下 → アラート
水: データドリフトを Evidently で診断 → 「年齢分布が高齢側にシフト」を確認
木: MLflow で過去30回の実験を比較、 ハイパラ再探索を Optuna で実施
金: 新モデルをカナリア(5%トラフィック)にデプロイ、 旧モデルと並走
翌月: A/Bテスト結果で問題なければ 100% に切替
🧮 SSDSE-B-2026 で MLOps を体感する
SSDSE-B-2026 で MLOps 最小サイクルを試す
シナリオ :SSDSE-B-2026 が毎年更新されると仮定し、 教育費予測モデルを年次で再学習する最小 MLOps を組む。
ステップ 1:学習 :sklearn.linear_model.Ridge で訓練。 MLflow で run を作り、 params={'alpha':1.0}、 metrics={'mae':8500} をログ。
ステップ 2:評価 :5-fold CV の MAE が前年モデルより 5% 以上悪化していないか確認。 SSDSE 2025 版での MAE が 8000 円、 SSDSE 2026 版の新モデル MAE が 8400 円なら『5% 以内の劣化』として OK。
ステップ 3:登録 :mlflow.register_model('runs:/abc123/model', 'edu_cost_predictor') で Model Registry に投入。 ステージは 'Staging'。
ステップ 4:デプロイ :'Staging' → 'Production' への昇格は人間が承認。 自動でやると暴走する。 BentoML / TF Serving で API として公開。
ステップ 5:監視 :Prometheus で推論回数・レイテンシ・入力分布の統計を収集。 ドリフトが KL>0.1 で Slack 通知。
ステップ 6:再学習 :年次(SSDSE 更新時)または ドリフト検知時。 GitHub Actions で自動的に再学習ジョブを発火、 PR を作成、 人間レビュー後マージ。
これで何が変わる? :個人作業の Jupyter ノートブックなら『来年気が向いたら再学習』だったものが、 仕組み化により『絶対忘れない、 性能監視つき、 監査ログつき』に格上げされる。 これが MLOps の現場的価値。
🏭 産業事例 ── MLOps の現場 6 件
MLOps の実例を 6 件、 業界・規模・採用ツールとともに紹介する。
事例 1:Netflix の推薦システム 業界:動画配信 / モデル数:数百 / ツール:Metaflow
Netflix は社内開発した Metaflow(OSS 化済み)で、 数百のレコメンドモデルの学習・デプロイ・モニタリングを統合管理。 データサイエンティストが Python スクリプトで実験を書くだけで、 自動的に AWS Batch にスケールし、 結果が共有 UI で見られる。 失敗実験は数日以内に Git revert + rollback。
事例 2:Uber の Michelangelo 業界:配車 / 規模:数千モデル / 内製プラットフォーム
Uber の Michelangelo はおそらく最も有名な内製 MLOps プラットフォーム。 ETA 予測・需要予測・不正検知など数千のモデルを横断管理。 Feature Store(Feast の起源)、 Model Registry、 オンライン推論サービス、 A/B テスト基盤を一体化。 障害が発生してもモデルを 1 分以内にロールバック可能。
事例 3:Spotify の Discovery Weekly 業界:音楽配信 / 週次更新 / ツール:Kubeflow + TFX
Spotify は毎週月曜に 2 億ユーザー分の Discovery Weekly プレイリストを生成する。 Kubeflow Pipelines で TFX ワークフローを定期実行。 監視は Prometheus + Grafana、 異常時は PagerDuty で SRE チームに通知。 ユーザー行動ログがリアルタイムで Feature Store に流れ込む。
事例 4:金融 ─ 信用スコアリング(mizuho) 業界:銀行 / コンプライアンス:厳しい / ツール:MLflow + Vertex AI
金融機関は規制要件から『モデルの説明責任』が必須。 すべての学習実験・データバージョン・評価指標を MLflow で記録し、 監査時に追跡可能にする。 本番モデルは半年に一度のドリフト分析と再学習サイクルを義務化。 Shadow Mode(本番と並列推論し比較)で新モデルを安全に検証。
事例 5:医療 ─ AI 画像診断(FDA 承認) 業界:医療 / 承認:FDA SaMD / ロックされたモデル
FDA に承認された AI 診断装置は『学習済みパラメータの固定』が義務。 つまり MLOps とは矛盾する側面がある。 そこで承認後は『再学習』ではなく『新モデル=新デバイス』として再承認を取るパイプラインを整備。 Predetermined Change Control Plan (PCCP) という新枠組みで継続学習を限定的に許可する流れも。
事例 6:自治体 ─ SSDSE 教育費予測モデルの定期更新(教材) 業界:パブリック / 更新:年次 / 教材想定
本サイトの教材では、 SSDSE が毎年更新されるため、 年に 1 度モデルを再学習する『最小 MLOps』を提案している。 GitHub Actions で自動的に CSV をダウンロード→学習→評価→PR 作成。 評価指標が前年比で改善していたらマージ可、 悪化していたら却下。 小さな仕組みでも MLOps の主要 6 ステップを体感できる。
⚖️ 比較表 ── MLOps 成熟度モデル
MLOps 成熟度 特徴 リスク 代表ツール Level 0:手動 Jupyter で学習、 手で本番にコピー 再現性なし、 障害時パニック なし Level 1:自動学習 学習スクリプト化、 cron で実行 本番デプロイは手動 Airflow, cron Level 2:CI/CD Git push で学習・テスト・デプロイ自動化 モニタリングが弱い GitHub Actions, Jenkins Level 3:自動再学習 ドリフト検知で再学習トリガー 誤検知・連鎖再学習 Kubeflow, TFX, Vertex AI Level 4:完全自律 新データから自動的に最善モデル選択 ブラックボックス化、 ガバナンス困難 AutoML + 自律最適化
🧰 主要 MLOps ツール比較
ツール 得意分野 ホスティング ライセンス MLflow 実験追跡・モデル登録 OSS / Databricks Apache 2.0 Kubeflow K8s 上のパイプライン OSS(K8s) Apache 2.0 TFX TensorFlow パイプライン OSS / GCP Vertex Apache 2.0 Vertex AI GCP マネージド全部 Google Cloud 商用 SageMaker AWS マネージド全部 AWS 商用 Azure ML Azure マネージド全部 Microsoft Azure 商用 Feast Feature Store OSS Apache 2.0 DVC データ・モデルバージョン OSS(Git ベース) Apache 2.0 Weights & Biases 実験追跡 UI SaaS / セルフホスト 商用 / OSS BentoML モデルサービング OSS Apache 2.0
💥 失敗例 ── 実戦の地雷
失敗例 1:Feature Store なしで二重実装 学習時とサービング時で『同じ特徴量を計算するコード』が別々に書かれ、 微妙な計算ロジックのずれで本番性能だけ劣化(training-serving skew)。 対策:Feast / Tecton で Feature Store を導入し、 同じコードで両方供給。
失敗例 2:再現性が確保されていない 3 ヶ月前のモデルを再構築しようとしたら、 データが更新済み・依存ライブラリが新バージョン・ハイパーパラメータをメモした Slack が消えた、 で詰む。 対策:DVC + MLflow + Docker image hash + Git SHA を全部記録。
失敗例 3:本番推論で OOM 学習時 GPU 16GB だったが本番 CPU 8GB で OOM。 対策:モデル量子化(INT8 化)、 サービング側でメモリプロファイル、 SLA レビュー時に容量要件を必ず議論。
失敗例 4:再学習が暴走する ドリフト検知の閾値を低くしすぎて毎日再学習。 GPU 課金が破綻、 モデルも収束せず迷走。 対策:閾値を経験的に調整、 再学習の頻度に上限(週次以下)、 シャドーモードで安全確認後昇格。
失敗例 5:ガバナンスと監査ログの欠如 金融機関で監査時に『なぜこの予測?』に答えられず指導勧告。 対策:すべての予測リクエストとレスポンスを保存(30 日以上)、 モデルの decision rationale(SHAP 等)も同時記録。
📝 演習 5 題
演習 1:MLflow Quickstart Ridge で SSDSE-B-2026 から教育費を予測し、 MLflow で run を作り、 params/metrics/artifacts をログせよ。
解答を見る import mlflow; mlflow.start_run(); model.fit(X,y); mlflow.log_params({'alpha':1.0}); mlflow.log_metrics({'mae':mae}); mlflow.sklearn.log_model(model,'model'); mlflow.end_run()
演習 2:ドリフト検知 前年版 SSDSE と今年版 SSDSE の『高齢化率』分布を KS 検定で比較し、 p<0.05 なら『ドリフトあり』と判定するスクリプトを書け。
解答を見る from scipy.stats import ks_2samp; stat,p = ks_2samp(old_df['高齢化率'], new_df['高齢化率']); if p<0.05: print('drift detected')
演習 3:CI/CD パイプライン GitHub Actions で『push → 学習 → MAE が改善 → PR 作成』を自動化する .yml を書け。 概要レベルで OK。
解答を見る name: train; on: push; jobs: train: runs-on: ubuntu; steps: - uses: actions/checkout - run: pip install ... - run: python train.py - run: python evaluate.py - run: gh pr create ...
演習 4:Shadow Mode 設計 新モデル v2 を本番モデル v1 と並列推論し、 v2 の予測ログだけ収集する仕組みを設計せよ。 ユーザーに見せるのは v1 の結果のみ。
解答を見る API 層で v1.predict と v2.predict を並列実行(async)、 v1 のみレスポンスに含める。 v2 結果は別ログストアへ。 1〜2 週間データ蓄積後、 v2 の MAE が v1 を上回れば昇格。
演習 5:Feature Store 設計 SSDSE-B-2026 の特徴量を『オンライン用』と『オフライン用』に分けて格納する Feature Store の概念設計を書け。
解答を見る Feast の Feature View で同じ定義から (1) BigQuery 等のオフラインストアへバッチ書出し、 (2) Redis 等のオンラインストアへ低レイテンシ供給。 同じ get_features API で両方提供。 学習・サービング skew をなくす。
📖 用語辞典(MLOps 周辺 10 語)
MLOps 機械学習プロジェクトの開発・運用・改善を統合する実践と文化。 DevOps の ML 版+データ管理。 Model Registry 学習済みモデルをバージョン・ステージ・メタデータ付きで一元管理する仕組み。 MLflow Registry が代表。 Feature Store 学習用と本番用の特徴量を一元管理する DB。 Feast, Tecton, Hopsworks など。 training-serving skew を防ぐ。 Drift 学習時データと本番データの分布差。 Data Drift と Concept Drift があり、 後者の方が検知が難しい。 Shadow Mode 新モデルを本番と並列推論するが、 ユーザーには本番モデルの結果のみ見せる検証手法。 Canary Release 新モデルを少数のユーザー(5%等)に先行リリースし、 問題なければ徐々に拡大する手法。 MTTR Mean Time To Recovery。 障害から復旧までの平均時間。 MLOps の SRE 指標。 CI/CD Continuous Integration / Continuous Delivery。 コード変更→自動テスト→自動デプロイの流れ。 PCCP Predetermined Change Control Plan。 FDA が医療 AI の継続学習を限定許可する新枠組み。 Reproducibility 再現性。 過去の実験を同じ条件で再構築できる性質。 コード・データ・環境・パラメータ・シードの 5 点が要件。
📑 参考文献・公式リソース
Sculley, D. et al. (2015). Hidden Technical Debt in Machine Learning Systems . NeurIPS 2015. — MLOps の必要性を最初に明示した古典論文
Treveil, M. et al. (2020). Introducing MLOps . O'Reilly. — 体系的入門書
Huyen, C. (2022). Designing Machine Learning Systems . O'Reilly. — 実践書として現在のスタンダード
Google. MLOps: Continuous delivery and automation pipelines in machine learning . Google Cloud Architecture Center. — 成熟度モデル 0〜2 の標準
MLflow 公式 — https://mlflow.org/
Kubeflow 公式 — https://www.kubeflow.org/
TFX 公式 — https://www.tensorflow.org/tfx
Feast 公式 — https://feast.dev/
Hermann, J. (2017). Meet Michelangelo: Uber's Machine Learning Platform . Uber Engineering Blog.
FDA (2021). Artificial Intelligence/Machine Learning (AI/ML)-Based Software as a Medical Device (SaMD) Action Plan .
🧮 MLOps 主要指標の計算式と例
🧮 数式に値を入れて手で計算する: モデル更新リードタイム
合成データで MLOps パイプラインのデプロイ時間を計算する。
Step 1: 工程別時間 [時間]
工程 時間
データ更新 0.5 訓練 3.0 評価 0.5 レビュー 4.0 デプロイ 0.5
Step 2: 合計と自動化効果
手動合計 = 0.5+3+0.5+4+0.5 = 8.5 時間
自動化: レビュー 4 → 0.5 → 5.0 時間 (41% 削減)
完全 CI/CD: ~4 時間に短縮可能
🐍 Python で再現
📋 コピー import numpy as np
times = np . array ([ 0.5 , 3.0 , 0.5 , 4.0 , 0.5 ])
total = times . sum ()
auto = times . copy ()
auto [ 3 ] = 0.5
print ( f "手動: { total } 時間" )
print ( f "自動: { auto . sum () } 時間" )
print ( f "削減: { ( total - auto . sum ()) / total * 100 : .0f } %" )
📤 実行結果
手動: 8.5 時間
自動: 5.0 時間
削減: 41%
💬 手計算 (Step 2) 41% 削減と Python 出力が完全一致。
🐍 Python 実装
最小限のスニペットで動作確認できる例。 公的データ(SSDSE 等)を想定しています。
📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行)
都道府県 A1101(総人口) A1301(15歳未満人口) A1303(65歳以上人口) A4101(出生数) A9101(婚姻件数)
北海道 5,092,000 514,000 1,681,000 24,430 17,281
東京都 14,086,000 1,513,000 3,205,000 86,348 71,774
沖縄県 1,468,000 236,000 350,000 12,549 6,316
…(全 47 行)
📋 コピー 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import pandas as pd
from sklearn.model_selection import train_test_split
# ── 学習・検証データを SSDSE-B-2026 から作る ──
_d = pd . read_csv ( 'data/raw/SSDSE-B-2026.csv' , encoding = 'cp932' , skiprows = [ 1 ])
_X = _d [[ 'A1101' , 'A1301' , 'A4101' , 'A9101' ]] . astype ( float )
_y = _d [ 'A1303' ] / _d [ 'A1101' ] * 100 # 高齢化率(%)
X_train , X_test , y_train , y_test = train_test_split (
_X , _y , test_size = 0.3 , random_state = 0 )
# MLflow による実験トラッキング(MLOpsの最小例)
import mlflow
import mlflow.sklearn
from sklearn.ensemble import RandomForestRegressor
mlflow . set_experiment ( "ssdse_aging_rate" )
with mlflow . start_run ():
mlflow . log_param ( "n_estimators" , 100 )
model = RandomForestRegressor ( n_estimators = 100 ) . fit ( X_train , y_train )
score = model . score ( X_test , y_test )
mlflow . log_metric ( "r2" , score )
mlflow . sklearn . log_model ( model , "model" )
# 後で `mlflow ui` で実験履歴・パラメータ・精度を一覧表示できる
🐍 補強コード例 1 ── データ資産の棚卸し
🎯 目的 :MLOps の第一歩は「学習に投入するデータ資産を正確に把握する」こと。 SSDSE-B-2026 を読み込み、 行数・列数・列名を確認して、 モデルに渡す前のデータ健全性を点検する。
🔗 橋渡し :この棚卸しスクリプトそのものを Git 管理し CI に組み込めば、 列が増減した瞬間に検知できる。 「データの版管理」という MLOps の中核を、 数行の read_csv から始められる。
📥 入力例(SSDSE-B-2026 全体:564 行 × 112 列 = 47 都道府県 × 2012〜2023 年)
年度 地域コード 都道府県 A1101(総人口) A1303(65歳以上人口) A4101(出生数) …
2023 R01000 北海道 5,092,000 1,681,000 24,430 …
2023 R13000 東京都 14,086,000 3,205,000 86,348 …
2023 R47000 沖縄県 1,468,000 350,000 12,549 …
…(残り 112 列は住宅・家計・教育・医療など)
📋 コピー import pandas as pd
df = pd . read_csv ( 'data/raw/SSDSE-B-2026.csv' , skiprows = [ 1 ], encoding = 'cp932' )
print ( df . shape )
print ( df . head ( 3 ))
print ( df . columns [: 10 ] . tolist ())
📤 実行結果の読み取り :df.shape は(都道府県×年 の行数, 指標数)を返す。 列数が想定と食い違えばデータソース側の仕様変更(=ドリフトの前兆)を疑うべきサイン。 MLOps ではこの shape チェックをパイプライン冒頭のアサーションに組み込み、 列が増減したら学習を止めるのが定石。 先頭列は年度を表す SSDSE-B-2026。 skiprows=[1] は先頭のコード名行の次 にある日本語ラベル行(2 行目)だけを飛ばすので、 A1101(総人口)などのコード名がそのまま列名になる(日本語ラベルではない点に注意)。
🐍 補強コード例 2 ── 対象年スライスの抽出
🎯 目的 :再学習パイプラインは「どの年のデータで学習したか」を厳密に固定する必要がある。 先頭列(年度)で 2023 年分だけを切り出し、 総人口の多い上位10都道府県を確認して、 学習スライスが意図通りか検証する。
🔗 橋渡し :年度でのフィルタは「学習データのバージョン固定」に相当する。 MLflow の run に年度をタグ付けしておけば、 後から「どのスライスで学習したモデルか」を追跡でき、 再現性が担保される。
📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行)
都道府県 A1101(総人口)
北海道 5,092,000
東京都 14,086,000
沖縄県 1,468,000
…(全 47 行)
📋 コピー import pandas as pd
df = pd . read_csv ( 'data/raw/SSDSE-B-2026.csv' , skiprows = [ 1 ], encoding = 'cp932' )
year_col = df . columns [ 0 ] # 先頭列 'SSDSE-B-2026' が年度
latest = df [ df [ year_col ] == 2023 ]
top10 = latest . nlargest ( 10 , 'A1101' )[[ 'Prefecture' , 'A1101' ]]
print ( top10 . to_string ( index = False ))
📤 実行結果の読み取り :2023 年の行だけが残り、 総人口の多い上位10都道府県が降順で並ぶ(東京・神奈川・大阪…の順)。 年度でスライスした行数が想定(47 都道府県)と一致するかを必ず確認する。 一致しなければフィルタ条件かデータ取得段階に問題があり、 そのまま学習に流すと training-serving skew の温床になる。
⚠️ よくある落とし穴
❌ 1. 「精度が出れば運用は後回し」と思う
本番投入してから「再現できない」「再学習できない」と気づいて全面作り直しになるパターンが多発
❌ 2. データの版管理を忘れる
コードはGitで管理しても、 学習データは上書きされて「あの精度を出したデータ」が消えていることが頻発。 DVCやLakeFSで対策
❌ 3. ドリフト監視をしない
入力データが時間と共に変わる(COVIDで購買行動が激変、 等)。 監視なしでは「いつ精度が落ちたか」も分からない
❌ 4. オフライン精度だけ見る
A/Bテストで実際のユーザー指標(クリック率、 売上)が改善しないと無意味
❌ 5. 再学習のリスク評価を怠る
自動再学習パイプラインで悪いデータで悪いモデルに上書き される事故。 上流のデータ収集系が壊れて欠損だらけの train データが流れ込み、 次バージョンで精度が大幅劣化する典型例。 対策はステージング環境での A/B 検証、 オフライン評価指標のしきい値ゲート(前バージョンの 95% 未満なら自動 rollback)。
❌ 6. 実験管理(experiment tracking)を後回し
notebook で「あの時の lr=0.001 が一番良かった気がする」を再現できない問題。 MLflow / Weights & Biases / Neptune で hyperparameter、 metric、 artifact(モデル重み)、 環境(requirements.txt)を全部 log する。 後から「3 ヶ月前のベストモデルの正確な学習条件は?」と聞かれて答えられない MLOps チームは多い。
❌ 7. Training-Serving Skew(学習時と推論時の差)
学習時は pandas で前処理し、 推論時は別の Python サービスで再実装した結果、 微妙にロジックが異なり性能劣化する典型バグ。 null 埋めのデフォルト値ずれ、 カテゴリ変数の unknown 扱い、 timezone のずれが原因の上位 3 つ。 対策:Feature Store(Feast、 Tecton)で前処理を共通化、 もしくは scikit-learn Pipeline / TFX をシリアライズして両方で同一コードを使う。
🌐 関連手法・派生
MLflow / Weights & Biases — 実験トラッキング、 モデルレジストリKubeflow / Airflow — パイプライン管理DVC / LakeFS — データのバージョン管理Evidently / Arize — モデル監視・ドリフト検知Feature Store(Feast等) — 特徴量の一元管理で学習/推論の不整合を防ぐ
🌐 MLOps 採用業界事例
動画配信 Netflix Metaflow数百モデルを横断管理、 Metaflow OSS 化、 AWS Batch スケール。
配車 Uber Michelangelo数千モデル、 Feature Store の起源、 障害時 1 分 rollback。
音楽 Spotify MLKubeflow + TFX、 週次 Discovery Weekly 生成、 2 億ユーザー。
宿泊 Airbnb Bighead標準化された ML プラットフォーム、 すべてのモデルで A/B テスト必須。
決済 Stripe Radarリアルタイム不正検知、 SLA<100ms、 毎週モデル更新。
EC Amazon Personalize数十億の推薦リクエスト、 SageMaker 上で運用。
検索 Google SearchTFX で巨大パイプライン、 RankBrain 等の本番運用。
FinTech PayPal RadarWide & Deep モデル、 TFX で 1 日 1 万 TPS。
教材 SSDSE 最小 MLOpsMLflow + GitHub Actions で年次再学習、 個人開発レベル。
医療 FDA SaMDPredetermined Change Control Plan で継続学習を限定許可。
📜 MLOps 略史(詳細版)
2014 Sculley らが ML の Technical Debt を NIPS で提示
2015 Dec Hidden Technical Debt 論文 NeurIPS で発表
2017 Sep Uber が Michelangelo を公開
2018 Jan Kubeflow オープンソース公開
2018 Jun MLflow 1.0 公開(Databricks 主導)
2019 MLOps という用語が一般化
2019 Aug Google が MLOps 成熟度モデル発表
2020 Apr Feast オープンソース化(OSS Feature Store)
2021 AWS SageMaker Studio、 Vertex AI、 Azure ML が出揃う
2022 Nov ChatGPT 公開、 LLMOps の必要性が顕在化
2023 Q1 LangChain、 LlamaIndex 等の LLM フレームワーク登場
2024 Mar EU AI Act 採択、 AI ガバナンスが法的要件に
2025 Agent Workflow Ops が新概念として浮上
2026 小規模組織でも GitHub Actions + MLflow が標準実装に
📝 MLOps の本質と組織への根付かせ方
1. MLOps の本質 ── DevOps + データ + モデル DevOps はソフトウェア開発の世界で、 開発(Dev)と運用(Ops)を統合し、 継続的なデリバリーを実現する文化と技術の体系。 MLOps はこれに『データ』と『モデル』という 2 つのアーティファクトを加える。 つまり MLOps の本質は、 (a) コード版管理、 (b) データ版管理、 (c) モデル版管理、 (d) 環境版管理、 (e) パイプライン自動化、 (f) 監視・再学習、 という 6 つの軸を統合する実践。
2. 組織への根付かせ方 MLOps を組織に根付かせるには、 (1) 経営層の理解(投資対効果の説明)、 (2) DS と MLE の役割分担、 (3) 標準ツールの選定、 (4) チャンピオン・プロジェクトでの成功事例、 (5) 段階的拡大、 という 5 段階を踏む。 一気に完璧な MLOps を導入しようとすると失敗する。 まず 1 プロジェクトで MLflow + GitHub Actions の最小構成、 効果実証後に拡大、 という現実的アプローチが推奨される。
3. DS と MLE の責任分界 DS(Data Scientist):問い設計・モデル品質・解釈に責任。 MLE(ML Engineer):パイプライン・推論基盤・モニタリング・スケーラビリティに責任。 重なり領域:特徴量設計・評価指標・デプロイ判断。 小組織では兼務、 中規模以上では明確に分離するのが効率的。 重要なのは『お互いの仕事を尊重し、 ブラインドスポットをカバーする』姿勢。
4. SSDSE 教材レベルでの MLOps 47 都道府県の小規模データでも MLOps の基本は実践可能。 (1) Git でコード管理、 (2) MLflow で実験記録、 (3) requirements.txt で環境固定、 (4) GitHub Actions で年次自動学習、 (5) Hugging Face Spaces で簡易デプロイ。 月額 0 円で実装可能。 これが『最小 MLOps』の実例。
5. LLMOps への進化 2022 年以降の Generative AI ブームで、 LLM 特有の運用課題が浮上:(a) Prompt 管理、 (b) RAG(Retrieval-Augmented Generation)、 (c) ハルシネーション検知、 (d) トークンコスト管理、 (e) ファインチューニング vs プロンプト。 これらを LLMOps と呼ぶが、 MLOps の延長として統合される流れ。
6. ガバナンスと AI Act EU AI Act(2024 採択)、 NIST AI Risk Management Framework、 日本の AI 戦略。 これらは MLOps に『監査ログ』『説明可能性』『公平性』『データ保護』という法的要件を課す。 MLOps エンジニアは技術だけでなく、 法務・倫理面も理解する必要がある。
7. キャリアと学習 MLOps エンジニアは 2026 年現在、 不足職種ランキング上位。 米国西海岸で年収 200K〜400K USD、 日本でも 800〜2000 万円。 学習は (a) Docker・Kubernetes、 (b) Python・SQL、 (c) MLflow・Kubeflow、 (d) クラウド(GCP/AWS/Azure)、 (e) CI/CD(GitHub Actions等)、 という 5 領域を 2〜3 年で習得するのが目安。
💭 MLOps 追加 FAQ(15 問)
MLflow の Database backend は何を選ぶ?
個人開発:sqlite(既定)。 チーム:PostgreSQL or MySQL(同時アクセス対応)。 規模大:S3 + RDS の組合せ。 Tracking server を別建てすると複数人で共有可能。
Kubeflow と Airflow、 どう使い分け?
Kubeflow:K8s ネイティブ、 ML パイプライン特化、 GPU 統合。 Airflow:汎用ワークフロー、 ML 以外も対応、 学習曲線優しい。 K8s 既存なら Kubeflow、 そうでなければ Airflow から入るのが現実的。
Feature Store は導入すべきか?
モデル数 10 以上、 特徴量再利用ありなら導入価値。 Feast の OSS なら無料、 月数日の工数で導入可能。 小規模(モデル 1〜2 個)なら過剰。
Shadow Mode の実装は?
本番 API レイヤーで v1(公開)と v2(隠れ)を並列実行。 async で v2 を実行し、 結果をログのみ保存。 ユーザーレスポンスは v1。 数日〜数週間データ蓄積後、 v2 の性能を分析。
Canary Release の比率は?
通常 1% → 5% → 25% → 50% → 100% と段階的に。 各段階で指標を監視。 異常があれば即座に rollback。 期間は数時間〜数日。
再学習のトリガーは何が良い?
(a) ドリフト検知(KL/PSI 超過)、 (b) 性能劣化(accuracy 低下)、 (c) 新データ蓄積(一定量)、 (d) 定期スケジュール(月次等)。 (a) と (d) の組合せが現実的。
A/B テストのサンプル数計算は?
$N = (z_\alpha + z_\beta)^2 \cdot 2 / d^2$。 α=0.05, β=0.2(power=0.8)、 効果量 d=0.1 なら N≈4000 /群。 G*Power、 statsmodels.power が便利。
LLM のコスト管理は?
(1) Token 使用量を計測(プロンプト + 出力)、 (2) cache(同じ問いは再利用)、 (3) 安いモデル(Haiku)で十分なら下げる、 (4) 自社 fine-tune モデルに移行。 月額追跡が必須。
RAG とファインチューニング、 どう選ぶ?
RAG:知識更新頻繁・少量データ・速度・コスト優位。 FT:スタイル・フォーマット・大量データ。 通常はまず RAG、 必要に応じて FT 追加、 が現実的。
コンプライアンスの最低要件は?
(1) データ取り扱いポリシー、 (2) モデルカード(モデルの限界・偏り記述)、 (3) 監査ログ(30 日以上)、 (4) 削除要求対応、 (5) Fairness 検証。 EU AI Act 対応はこれ+α。
Postmortem を有意義にするには?
Blameless(個人を責めない)を徹底。 (1) 時系列、 (2) 何が起きたか、 (3) なぜ(5 Whys)、 (4) 検知できなかった理由、 (5) 再発防止策とオーナー、 を 1 ページ以内に。
Cookiecutter Data Science を使うべき?
中規模以上なら推奨。 標準ディレクトリ構造(data/, notebooks/, src/, models/)で混乱を防ぐ。 小規模なら overkill。
DVC と Git LFS、 どちらが良い?
DVC:ML 特化、 メタデータと実体分離、 リモートストア多様。 Git LFS:簡単、 GitHub 統合。 ML プロジェクトなら DVC、 汎用ファイル管理なら Git LFS。
オンプレ ML の課題は?
(1) GPU 調達・運用、 (2) スケーラビリティ、 (3) 災害復旧、 (4) セキュリティ。 ただし規制業界・データ機密のためにオンプレを選ぶ事例も。 Domino / H2O Steam が代表的なオンプレ MLOps。
MLOps チームの理想規模は?
プロダクト 1 つ = MLE 1 人 + DS 2 人 が最小。 中規模事業 = MLE 3 + DS 5 + DE 2。 大規模 = 50 人〜の専任プラットフォームチーム。 規模より『役割の明確化』が重要。
📋 MLOps 推奨ツール 20 選
カテゴリ ツール 用途 ライセンス 実験追跡 MLflow params, metrics, artifacts ログ Apache 2.0 実験追跡 Weights & Biases 可視化に優れた SaaS 商用 / 個人無料 パイプライン Kubeflow K8s 上の ML ワークフロー Apache 2.0 パイプライン Airflow 汎用ワークフロー Apache 2.0 パイプライン Prefect Modern Python ワークフロー Apache 2.0 特徴量 Feast OSS Feature Store Apache 2.0 特徴量 Tecton 商用 Feature Store 商用 サービング BentoML 言語横断モデルサービング Apache 2.0 サービング TF Serving TF 専用高性能 Apache 2.0 サービング Triton NVIDIA 高性能 BSD モニタリング Evidently ドリフト検知 OSS Apache 2.0 モニタリング Whylogs プロファイリング Apache 2.0 モニタリング Arize 商用 ML 監視 商用 可視化 Grafana メトリクスダッシュボード AGPL メトリクス Prometheus 時系列 DB Apache 2.0 データ版 DVC Git ライク データ管理 Apache 2.0 データ版 lakeFS オブジェクトストアの Git Apache 2.0 コンテナ Docker 標準コンテナ Apache 2.0 オーケスト Kubernetes コンテナオーケスト標準 Apache 2.0 CI/CD GitHub Actions GitHub 統合 CI/CD GitHub Free / Paid
🔗 関連用語(前提・並列・発展)
役割で色分け:前提 /上位 /並列 /発展 /応用
🔗 関連ページ橋渡し
❓ FAQ 20 問
Q1. MLOps と DevOps の違いは?
A. DevOps はコードの CI/CD が中心。 MLOps はそれにデータとモデルを加えた 3 アーティファクト管理。 さらに学習時/推論時のずれ防止(training-serving skew)、 ドリフト検知、 再学習トリガーといった ML 特有の課題を扱う。
Q2. 小規模プロジェクトでも MLOps は必要?
A. 完全な MLOps は不要だが、 (a) Git でコード管理、 (b) MLflow で実験追跡、 (c) requirements.txt or conda env で環境固定、 の 3 点は最低限。 これだけで『3 ヶ月後の自分』が救われる。
Q3. Feature Store は本当に必要?
A. 学習と推論で同じ特徴量を再現したいなら必要。 数モデル・少特徴量なら過剰。 数十モデル・横断利用なら導入価値あり。 Feast の OSS なら導入コストも低い。
Q4. MLflow / Kubeflow / TFX、 どれを選ぶ?
A. 実験追跡のみなら MLflow が軽い。 K8s 既存ならば Kubeflow。 TF 専業なら TFX。 GCP なら Vertex AI(マネージド版)、 AWS なら SageMaker、 Azure なら Azure ML。
Q5. クラウドとオンプレ、 どちらが MLOps に向いているか?
A. クラウドはマネージドサービスで初期投資不要、 スケール容易。 オンプレは長期コスト・規制対応・データ機密で優位。 ハイブリッド(学習はクラウド、 推論はオンプレ)も増加傾向。
Q6. モデルのバージョン管理はどうする?
A. Model Registry(MLflow, Vertex, SageMaker 標準機能)で『モデル名+バージョン+ステージ(Staging/Production)』を管理。 Git タグと連動させると一意化できる。
Q7. 再学習はどのタイミング?
A. (a) 性能劣化検知時、 (b) データドリフト検知時、 (c) 定期スケジュール(月次・四半期)、 (d) 大量新データ蓄積時。 自動化するなら閾値超過でトリガー、 ただし上限頻度を必ず設ける(暴走防止)。
Q8. A/B テストの設計のコツは?
A. (1) 統計的検出力を事前計算(必要サンプルサイズ)、 (2) ランダム化を厳密に(曜日・地域・ユーザー属性で偏らない)、 (3) 評価指標を事前に固定(HARKing 防止)、 (4) Bonferroni 補正(複数指標の場合)。
Q9. Shadow Mode と Canary の使い分けは?
A. Shadow:本番と並列で動かしユーザーには見せない(ログのみ)。 安全だが効果検証は間接的。 Canary:少数ユーザー(5%等)に新モデルを見せる。 効果検証可だがリスクあり。 通常は Shadow → Canary → 完全昇格の順。
Q10. ガバナンスと監査ログの最低要件は?
A. (1) 全予測リクエスト+レスポンスを 30 日以上保存、 (2) モデルバージョン記録、 (3) 説明可能性(SHAP 等)の同時記録、 (4) 異常系の通知ログ。 金融・医療なら 5〜10 年保管も。
Q11. ドリフト検知の閾値はどう決める?
A. 経験的に決めるしかない。 過去データで KL / PSI を計算し、 通常変動の 3σ を超えたら警告、 5σ を超えたら再学習。 業界の慣習:信用スコアは PSI>0.25 で要調査、 PSI>0.5 で再学習。
Q12. オンライン学習はやるべき?
A. リアルタイム性が極めて重要な場合のみ。 ニュース推薦・株式高頻度取引等。 通常はバッチ学習+日次/週次更新で十分。 オンライン学習は不安定要因が多く運用負荷が高い。
Q13. MLOps エンジニアと DS の責任分界は?
A. DS:モデル品質と問い設計に責任。 MLE:パイプライン・推論基盤・モニタリングに責任。 重なり領域:特徴量設計・評価指標・デプロイ判断。 小組織では兼務。
Q14. コスト最適化のコツは?
A. (1) 学習をスポット/プリエンプティブインスタンスで(最大 90% 削減)、 (2) 推論は量子化+バッチング、 (3) 不要モデルをアーカイブ、 (4) GPU を共有テナント化。 月額数百万円が数十万円になる事例多数。
Q15. セキュリティで気をつけることは?
A. (1) モデルの windows 化(model stealing 防止)、 (2) 学習データの匿名化・暗号化、 (3) Adversarial Example 対策、 (4) Prompt Injection(LLM 特有)、 (5) アクセス制御の最小権限原則。
Q16. 失敗例で一番多いのは?
A. Training-serving skew(学習と推論で特徴量計算がズレる)。 Feature Store で根治。 これに気づかず本番性能が悪化、 学習側を改善しても直らない、 という悪循環パターン。
Q17. ノートブックでの開発から脱却するには?
A. (1) ノートブックを 1 機能 1 モジュール(.py)に分解、 (2) Cookiecutter Data Science でディレクトリ標準化、 (3) Hydra / pydantic で設定ファイル化、 (4) pytest でテスト追加。 段階的に進める。
Q18. コンプライアンス(GDPR 等)対応は?
A. (1) データ保持期間の自動化、 (2) 削除要求への対応(モデルからの忘却=machine unlearning)、 (3) Explainability の文書化、 (4) 差別検知(fairness metrics)、 (5) DPIA(Data Protection Impact Assessment)。
Q19. ML プラットフォームを内製すべきか?
A. 規模・人材・予算次第。 Uber/Netflix 規模なら内製の利点大。 中小企業ならマネージドサービス(Vertex/SageMaker)で十分。 内製は『1 年で初期構築+専任 5 人』が目安。
Q20. 失敗したらどう振り返る?
A. Postmortem を blameless で。 (1) 何が起きたか時系列、 (2) なぜ起きたか(5 Whys)、 (3) どう検知できたか、 (4) 再発防止策、 (5) アクションオーナー。 1 週間以内に文書化、 全社共有。
📜 MLOps 略史
2014 Sculley et al. が NIPS で『Machine Learning: The High Interest Credit Card of Technical Debt』発表
2015 同じく Sculley らが『Hidden Technical Debt in ML Systems』NeurIPS(MLOps の必要性が学術的に明示)
2016 Uber Michelangelo 内部開発開始
2017 Google が TFX 内部利用、 Facebook が FBLearner、 各社内製プラットフォームが乱立
2018 Kubeflow 公開(OSS K8s 上の ML パイプライン)
2018 MLflow 公開(Databricks 主導、 OSS 実験追跡)
2019 用語『MLOps』が一般化、 Google が成熟度モデル発表
2020 Feature Store 概念が普及(Feast 公開)
2021 AWS SageMaker、 GCP Vertex AI、 Azure ML が出揃う
2022 LLMOps が分岐、 Prompt 管理・RAG パイプラインが新領域に
2023 Generative AI の急進で MLOps が LLMOps を吸収する流れ
2024 Responsible AI / AI Governance が標準項目化(EU AI Act, NIST AI RMF)
2025 Agent Workflow Ops(AWOps)が新概念として登場
2026 小規模組織でも MLflow + GitHub Actions レベルの最小 MLOps が標準実装に
🧪 数学的補遺 ── ドリフト検知の指標
KL ダイバージェンス : $D_{KL}(P\|Q) = \sum_i P(i) \log \frac{P(i)}{Q(i)}$。 非対称、 値域 0〜∞。 SSDSE 旧年版/新年版で『高齢化率』の確率分布を比較する例なら、 ビン化(例:10 ビン)して P, Q を作る。
PSI (Population Stability Index) : $PSI = \sum_i (P_i - Q_i) \ln \frac{P_i}{Q_i}$。 KL の対称版に近い。 信用スコアリングで業界標準。 0.1 未満:安定、 0.1〜0.25:要監視、 0.25 超:再学習検討。
KS 統計量 : $D = \sup_x |F_P(x) - F_Q(x)|$。 累積分布の最大差。 連続変数向き。 p<0.05 で『分布が違う』と検定。
Wasserstein 距離(Earth Mover's Distance) : 分布を粘土と見立てて『片方をもう片方に変形する最小コスト』。 連続・離散ともに使え、 KL が定義できない場合(一方の確率 0)でも計算可能。
SSDSE のような小規模データでは、 KS と Wasserstein を併用するのが頑健。 PSI は本番運用での監視ダッシュボードに採用しやすい指標。
🚶 MLOps パイプライン構築ステップ
Step 1: 実験追跡導入 ── mlflow.start_run() を学習スクリプトに追加。 params, metrics, artifacts を log。 これだけで再現性が劇的に改善。
Step 2: コード版管理 ── Git で全コード管理。 mlflow run の度に Git SHA をタグ付け(mlflow.set_tag('git_sha', sha))。
Step 3: 環境固定 ── requirements.txt / conda env.yml で依存固定。 さらに Dockerfile で OS レベルまで固定すれば本番再現性向上。
Step 4: データ版管理 ── DVC で raw データのバージョン管理。 SSDSE-B-2026.csv も dvc add し、 Git に .dvc ファイルだけコミット。
Step 5: 評価ゲート ── 学習後に evaluate.py を走らせ、 前モデルより MAE が悪化していないか確認。 GitHub Actions で自動チェック。
Step 6: Model Registry ── OK ならば mlflow.register_model で登録。 ステージは 'Staging' で人間承認待ち。
Step 7: デプロイ ── 承認後、 BentoML / TF Serving / FastAPI でラップして API 化。 Docker image を ECR/GAR に push。
Step 8: モニタリング ── Prometheus + Grafana で推論回数・レイテンシ・入力分布をダッシュボード化。 Slack 通知連携。
Step 9: ドリフト検知 ── 日次バッチで本番入力分布と学習時分布の KS / PSI を計算。 閾値超過で Slack 通知。
Step 10: 再学習トリガー ── ドリフト超過 or 月次定期で GitHub Actions が学習ジョブを発火。 PR を自動生成、 人間レビュー後マージ。
📚 関連グループ教材
この用語の全体像を学ぶには、 横断的な教材で文脈を掴むのが効率的です。
🔎 深掘り解説
Google のMLOps成熟度モデル
レベル 特徴 例
0:手動 Jupyter notebook で実験、 手作業デプロイ 個人研究
1:ML自動化 パイプライン化、 自動再学習 中規模スタートアップ
2:CI/CD自動化 コードpush→テスト→再学習→デプロイ全自動 大規模AI企業
主要ツールマップ
実験管理 :MLflow、 Weights & Biases、 Neptune.ai、 Comet
パイプライン :Kubeflow、 Airflow、 Prefect、 Dagster、 Metaflow
データ管理 :DVC、 LakeFS、 Delta Lake、 Iceberg
特徴量ストア :Feast、 Tecton、 Hopsworks
監視 :Evidently、 Arize、 WhyLabs、 Fiddler
サービング :TF Serving、 TorchServe、 BentoML、 Seldon
クラウドMLOps :Vertex AI(GCP)、 SageMaker(AWS)、 Azure ML
5つのベストプラクティス
すべてをコード化 :学習スクリプト、 デプロイ、 監視、 アラート閾値もコード
パイプラインを冪等に :同じ入力なら何度実行しても同じ出力
環境を固める :Docker、 Conda、 lock ファイルで再現性
ステージング環境 :本番と同条件で検証してからデプロイ
ロールバック計画 :問題発生時に旧モデルに即座に戻せる仕組み
✅ 使う前のチェックリスト
☐ MLOps が今のタスクに本当に適切か再確認した
☐ 前提条件(独立性、 正規性、 サンプル数等)を満たしているか確認した
☐ データの尺度・分布・欠損・外れ値を確認した
☐ 結果だけでなく「不確実性」(CI、 標準誤差)も把握した
☐ 解釈と限界を区別して文書化した
☐ DevOps / DataOps / ModelOps と比較したうえで MLOps を選んだ理由を説明できる
☐ 落とし穴(このページの ⚠️ セクション)に該当しないか確認した
☐ 関連グループ教材で全体像と位置付けを把握した
📖 さらに学ぶには
本サイト内
論文一覧に戻る — MLOps を実際に使った再現論文をハンズオン形式で読む
このページ上部の「🔗 関連用語」から派生概念へ
「📚 関連グループ教材」で横断的な学習教材へ
外部リソース
scikit-learn 公式ドキュメント — 標準実装と例
StatQuest with Josh Starmer (YouTube) — 直感的な統計/ML 解説
Cross Validated (Stack Exchange) — 統計/ML の質問サイト
arXiv — 最新の手法論文プレプリント
困ったときは
データの可視化(散布図、 ヒストグラム、 箱ひげ図)で異常を確認
サンプルサイズ・欠損・外れ値を確認
仮定が満たされているか診断(正規性検定、 等分散性検定など)
類似研究での標準的な手法を確認
結果を複数手法でクロスチェック(頑健性確認)
🔗 同カテゴリの他用語
🎯 コードの目的・入出力ガイド
本ページでは『SSDSE-B-2026 ベースの教育費予測モデル』を題材に、 最小 MLOps の構成要素を整理する。 ノートブック→本番 API までの橋渡しが MLOps の核心。
🎯 目的
SSDSE-B-2026 都道府県データで構築した『教育費予測モデル』を、 ノートブックから本番サーバへ橋渡しする最小 MLOps パイプラインの構成要素を整理する。 学習・評価・登録・デプロイ・モニタリング・再学習の各ステップを意識的に分離することが、 MLOps の本質。
📥 入力
data/raw/SSDSE-B-2026.csv(47 都道府県 × 約 100 指標)、 過去 N 期分のモデル評価ログ、 本番から流れてくる予測リクエストのストリーム。 これら 3 つを Feature Store / Model Registry / Monitoring Store の 3 つの保管庫に分けて管理する。
📤 出力
(1) バージョン管理されたモデル成果物(.keras / .pkl / ONNX)、 (2) モデル評価レポート(MAE, MAPE, 残差プロット)、 (3) 本番推論 API(FastAPI/TF Serving)、 (4) 性能ドリフトを検知するアラート、 (5) 再学習トリガーされた次世代モデル候補。
💬 ひとこと
MLOps は『DevOps for ML』ではあるが、 単なる延長線ではない。 コードに加えてデータとモデルがアーティファクトとして加わり、 これら 3 つすべてをバージョン管理・追跡・再現する必要がある。 ここで言う再現性は学術的な意味ではなく『3 ヶ月後の自分が今日のモデルを再構築できるか』という運用的な意味。
📚 MLOps の小話
MLOps という言葉の起源 2015 年の Google 内部資料で初出と言われる。 公開的には 2017 年頃から論文・ブログで使われ始め、 2019 年に Google の成熟度モデル公開で一般化。
Hidden Technical Debt 論文 Sculley et al. (2015) NeurIPS。 『ML システムには隠れた技術的負債が大量にある』を体系化。 MLOps の必要性を最初に明示した古典で、 引用数 3000+。
Feature Store の起源 Uber Michelangelo の Feature Store コンポーネントが OSS 化されて Feast(2019)に。 Tecton(2020 年起業)は Feast の商用版を提供。
MLOps エンジニアの年収 2026 年米国西海岸で 200K〜400K USD(GAFA 級)。 日本でも 800〜2000 万円。 不足職種としてランキング上位。
LLMOps の分岐 2022 年 ChatGPT 以降、 LLM 特有の運用課題(Prompt 管理、 RAG、 ハルシネーション検知、 トークンコスト)が MLOps とは別物として議論されるように。 ただし最近は再統合の流れ。
MLOps 認定資格 Google Cloud ML Engineer 認定、 AWS ML Specialty、 Databricks ML Associate などが代表的。 実務経験 1〜2 年で取得可能。
🎬 コードツアー ── 最小 MLOps スクリプト(MLflow + 評価ゲート)
1 # --- 1: ライブラリ ---
2 import mlflow
3 import mlflow.sklearn
4 import pandas as pd
5 import joblib
6 from sklearn.linear_model import Ridge
7 from sklearn.pipeline import Pipeline
8 from sklearn.preprocessing import StandardScaler
9 from sklearn.model_selection import cross_val_score
10
11 # --- 2: データ読込(毎年同じパス) ---
12 df = pd.read_csv("data/raw/SSDSE-B-2026.csv" , skiprows=1 , encoding="cp932" ) # skiprows=1 で日本語ラベル行を列名に
13 X = df.assign(高齢化率=df["65歳以上人口" ] / df["総人口" ])[["消費支出(二人以上の世帯)" , "総人口" , "高齢化率" ]].values # 高齢化率は 65歳以上人口/総人口 で導出
14 y = df["教育費(二人以上の世帯)" ].values
15
16 # --- 3: MLflow run 開始 ---
17 mlflow.set_experiment("edu_cost_predictor" )
18 with mlflow.start_run() as run:
19 # --- 4: Pipeline ---
20 pipe = Pipeline([
21 ("scaler" , StandardScaler()),
22 ("model" , Ridge(alpha=1.0 )),
23 ])
24
25 # --- 5: CV 評価 ---
26 scores = cross_val_score(pipe, X, y, cv=5 , scoring="neg_mean_absolute_error" )
27 mae = -scores.mean()
28
29 # --- 6: ログ ---
30 mlflow.log_param("alpha" , 1.0 )
31 mlflow.log_param("cv" , 5 )
32 mlflow.log_metric("cv_mae" , mae)
33
34 # --- 7: 全データで再学習&ログ ---
35 pipe.fit(X, y)
36 mlflow.sklearn.log_model(pipe, "model" )
37
38 # --- 8: 評価ゲート(前年比較) ---
39 prev_mae = 8500 # 前回保存値を MLflow から取得
40 if mae > prev_mae * 1.05 :
41 raise RuntimeError(f "性能劣化: {mae:.0f} > {prev_mae*1.05:.0f}" )
42
43 # --- 9: Model Registry 登録 ---
44 mlflow.register_model(
45 f "runs:/{run.info.run_id}/model" ,
46 "edu_cost_predictor" ,
47 )
48
49 print (f "登録完了: MAE={mae:.0f}円" )
🔍 MLOps を多視点で見る
DS の視点 『早く実験したい』『すぐ結果を見たい』。 MLOps のオーバーヘッドは創造性を阻害しない範囲で。 Notebook → MLflow log の自動化が理想。
MLE の視点 『再現性』『可用性』『監査可能性』が最優先。 DS が触らないでほしいインフラ・パイプライン・モニタリングを整える。
プロダクトの視点 『ビジネス KPI に効くか』『早くリリースできるか』。 MLOps の話は理解しにくいが、 結果(A/B テスト勝率、 障害率)で判断。
経営の視点 『投資対効果』『リスク管理』。 MLOps への投資は短期成果が見えにくいが、 長期的には事業継続性・信頼性に直結。
規制当局の視点 『説明可能性』『監査ログ』『公平性』。 EU AI Act 等で監査要件が法制化。 MLOps はその実装基盤。
ユーザーの視点 『正しい予測』『プライバシー保護』『公平な扱い』。 ユーザーは MLOps を意識しないが、 ML システムの品質体験を通じて間接的に評価。
🎭 MLOps 実戦シナリオ 6 件
シナリオ 1:本番モデルが突然性能劣化 📥 入力:本番 AUC が 0.95 → 0.85 へ、 過去 1 週間で発生
🎯 目標:原因特定 1 時間以内、 復旧 4 時間以内
📋 手順 1:監視ダッシュボードでドリフト確認(KS / PSI)
📋 手順 2:データソース側の変更履歴確認(カラム追加・型変更)
📋 手順 3:Feature Store と学習時の特徴量を diff
📋 手順 4:原因確定したら Model Registry で前バージョンに rollback
📤 結果:MTTR < 4h、 Postmortem で再発防止策
シナリオ 2:A/B テストで効果が出ない 📥 入力:新モデル v2 を 50% に展開、 2 週間経過、 KPI 変化なし
🎯 目標:効果判定、 終了 or 全展開判断
📋 手順 1:統計的検出力計算(必要サンプル数を満たしているか)
📋 手順 2:CUPED 等で分散削減して再分析
📋 手順 3:セグメント別分析(特定セグメントで効果あれば限定展開)
📋 手順 4:効果なしで終了、 リソース他施策へ
📤 結果:早期判断でリソース最適化
シナリオ 3:再学習パイプラインが失敗 📥 入力:月次再学習ジョブが 3 回連続失敗
🎯 目標:パイプライン安定化
📋 手順 1:ログ分析(依存ライブラリ更新の影響?)
📋 手順 2:Docker image で完全環境固定
📋 手順 3:Retry / Backoff 機構追加
📋 手順 4:失敗時のアラート連携を Slack に統合
📤 結果:パイプライン安定、 失敗率 1% 以下
シナリオ 4:GPU 課金が予算超過 📥 入力:月額 GPU 課金 500 万円超、 予算 300 万円
🎯 目標:1 ヶ月以内に予算内へ
📋 手順 1:使用率分析(アイドル時間の特定)
📋 手順 2:Spot Instance / Preemptible で 70% 削減
📋 手順 3:モデル量子化+バッチング推論で GPU 必要量削減
📋 手順 4:オフピーク時間のジョブ集約
📤 結果:月額 250 万円程度、 予算達成
シナリオ 5:監査で説明可能性を求められる 📥 入力:金融機関での与信モデル、 監査官から SHAP/LIME 要求
🎯 目標:各予測の根拠を可視化
📋 手順 1:SHAP Explainer をモデルにアタッチ
📋 手順 2:各予測リクエストに SHAP 値を同時記録
📋 手順 3:ダッシュボードで個別予測の説明 UI
📋 手順 4:Fairness Metrics(demographic parity 等)も追加
📤 結果:監査要件達成、 Trust 向上
シナリオ 6:教材レベル ── SSDSE 年次更新パイプライン 📥 入力:SSDSE-B-2026 → SSDSE-B-2027 公開を契機に再学習
🎯 目標:人手介入最小で更新
📋 手順 1:GitHub Actions で年次スケジュール
📋 手順 2:新データ取得→学習→評価→PR 自動作成
📋 手順 3:性能改善なら自動マージ、 劣化なら人間レビュー
📋 手順 4:MLflow Registry で新バージョン登録
📤 結果:年次更新が自動化、 教材として品質維持
📚 MLOps 主要指標 ── 計算式と運用閾値
KL ダイバージェンス(特徴量分布変化) $D_{KL}(P\|Q) = \sum_i P(i) \log \frac{P(i)}{Q(i)}$。 0 で同一分布、 大きいほど乖離。 業界閾値:0.1 未満安定、 0.1〜0.5 監視、 0.5 超で再学習検討。 SSDSE 規模ではビン化(10 ビン)で計算。
PSI(信用スコアリング標準) $PSI = \sum_i (P_i - Q_i) \ln \frac{P_i}{Q_i}$。 対称化された KL に近い。 米金融業界では PSI<0.1 安定、 0.1-0.25 注意、 0.25 超で再学習。
F1, Precision, Recall(分類モデル) $\mathrm{Precision} = TP / (TP + FP)$、 $\mathrm{Recall} = TP / (TP + FN)$、 $F_1 = 2 \cdot P \cdot R / (P + R)$。 不正検知は Recall 重視、 スパムは Precision 重視、 一般的にバランスで F1。
p99 レイテンシ SLA 99% のリクエストがこの時間以下で応答。 平均ではない。 SLO 設計の標準。 推論 API では p99<100ms、 LLM では p99<5000ms が典型。
Availability SLA $A = T_{up} / T_{total}$。 99.9% は年 8.76h 停止許容、 99.99% は 52.6 分、 99.999% は 5.26 分。 ML モデルでは 99.9% が現実的。
MTBF / MTTR Mean Time Between Failures、 Mean Time To Recovery。 信頼性工学の基本指標。 ML 系では MTTR < 4h を目標にすることが多い。
Customer Lifetime Value (CLV) $CLV = \sum_t \frac{R_t \cdot M_t}{(1+r)^t}$。 リテンション施策の効果評価で重要。 ML モデルの改善がどれだけ CLV を上げるかで投資対効果を測る。
📖 MLOps 深堀り用語辞典(20 語拡張)
MLOps ML プロジェクトの開発・運用・改善を統合する実践と文化。 DevOps の ML 版+データ管理。
LLMOps LLM 特有の運用課題に特化。 Prompt 管理、 RAG、 ハルシネーション、 トークンコスト。
Feature Store 学習・本番で特徴量を一元管理。 Feast, Tecton, Hopsworks など。 training-serving skew を防ぐ。
Model Registry 学習済みモデルをバージョン・ステージ管理。 MLflow Registry が代表。
Experiment Tracking 学習実験のパラメータ・メトリクス・成果物を記録。 MLflow / Weights & Biases / Neptune。
CI/CD Continuous Integration / Continuous Delivery。 自動テスト・自動デプロイ。
CT (Continuous Training) MLOps 固有。 データ更新やドリフトで自動再学習。
CM (Continuous Monitoring) 本番性能・データ品質・ドリフトを継続監視。
Drift 分布変化。 Data Drift と Concept Drift。
Skew training-serving 間の特徴量計算ずれ。 Feature Store で防止。
Shadow Mode 新モデルを並列で動かしユーザーには見せない検証。
Canary Release 新モデルを少数ユーザーに先行展開。
Blue-Green Deployment 本番(Blue)と新版(Green)を切替式で運用。
A/B Test ユーザーをランダム分割し統計的に効果検証。
Multi-Armed Bandit 適応的に最良案を選ぶ A/B テスト派生。
SHAP / LIME 予測の説明可能性手法。 個別予測の根拠を可視化。
Fairness Metrics Demographic Parity, Equal Opportunity 等。 公平性検証。
AutoML 前処理〜モデル選択を自動化。 H2O AutoML, AutoGluon, FLAML。
Hyperparameter Tuning Grid / Random / Bayesian / Hyperband。 自動最適化。
Postmortem 障害後の振り返り文書。 Blameless で実施するのが原則。
🗺 MLOps 学習ロードマップ
📚 ステップ 1:Jupyter で 1 モデル学習、 mlflow.log_metrics で実験追跡を体験
📚 ステップ 2:MLflow UI(mlflow ui)で過去実験を可視化
📚 ステップ 3:Pipeline / ColumnTransformer で前処理を再現可能にする
📚 ステップ 4:requirements.txt と Dockerfile で環境固定
📚 ステップ 5:FastAPI でモデルを API 化、 ローカルで curl 叩く
📚 ステップ 6:Docker compose で API + Prometheus + Grafana を立ち上げ
📚 ステップ 7:DVC でデータバージョン管理を 1 サイクル経験
📚 ステップ 8:GitHub Actions で push → 学習 → 評価 → PR 作成を自動化
📚 ステップ 9:ドリフト検知の閾値設計とアラート連携
📚 ステップ 10:Feature Store(Feast)の最小構成を体験
💬 MLOps あるある対話
DS: 新モデルが完成しました! R² が 0.95 です
MLE: 素晴らしい。 ところで学習データと本番入力で特徴量計算は完全に同じですか?
DS: ノートブックで pandas 使って計算してます
MLE: 本番では C++ で実装される予定です。 そこに skew リスクがあります。 Feature Store で同じコードを共有しましょう
DS: あと、 1 ヶ月後に再学習したくなったら?
MLE: MLflow Registry に登録してください。 GitHub Actions で月次再学習をスケジュール。 性能劣化なければ自動承認、 悪化なら人間レビュー、 という設計に
DS: 古いモデルに戻したい場合は?
MLE: Registry のステージを Production → Archived に。 古いバージョンを Production に再昇格。 1 分以内に rollback できます
✅ MLOps 健全性チェック
☐ 全実験が MLflow 等で追跡されている ☐ 全モデル成果物がバージョン管理されている ☐ 全コードが Git で管理され、 学習スクリプトに Git SHA が記録される ☐ 本番環境と開発環境の依存ライブラリが完全一致 ☐ Pipeline でリーケージなし学習を保証 ☐ 評価ゲート(前モデル比較)が CI で自動化 ☐ Feature Store で training-serving skew を防いでいる ☐ ドリフト検知が稼働している ☐ 推論レイテンシの SLA を満たしている ☐ ロールバック手順を 1 ページにまとめて全員が参照できる ☐ Postmortem が blameless で運用されている ☐ コスト監視(GPU 課金等)が日次で見える化
📖 MLOps 拡張ケース 6 件
ケース A:Netflix の Metaflow 業界:動画配信 / ツール:Metaflow(OSS) / 規模:数百モデル
Netflix は社内開発した Metaflow を OSS 化(2019)。 データサイエンティストが Python スクリプトを書くだけで、 自動的に AWS Batch にスケールし、 結果を共有 UI で見られる。
哲学 『科学者の生産性最優先』。 インフラを意識させない、 ローカルとクラウドで同じコード。 失敗実験は数日以内に Git revert + rollback。
機能 (1) DAG ベースのワークフロー、 (2) S3 へ自動データ保存、 (3) Conda 環境管理、 (4) AWS Step Functions 連携、 (5) UI で実験追跡。
教訓 大企業内製ツールが OSS 化する流れ。 自社固有のニーズに合わない部分も多いが、 設計思想を学ぶ価値あり。
ケース B:Uber Michelangelo 業界:配車・配送 / 規模:数千モデル / 内製プラットフォーム
2017 年公開、 おそらく最も有名な内製 MLOps プラットフォーム。 ETA 予測・需要予測・不正検知など数千のモデルを横断管理。
構成要素 (1) Feature Store(Feast の起源)、 (2) Model Registry、 (3) オンライン推論サービス、 (4) A/B テスト基盤、 (5) Shadow Mode。
運用面 障害発生時にモデルを 1 分以内にロールバック可能。 すべての予測リクエストとレスポンスを 30 日保管。 監査要件に対応。
教訓 規模が大きくなれば内製の価値が出る。 ただし維持コスト(専任 50 人以上)も大きい。
ケース C:Spotify の ML プラットフォーム 業界:音楽配信 / ツール:Kubeflow + TFX / 規模:数百モデル
Discovery Weekly、 Daily Mix など個人向けプレイリスト生成が中核。 毎週月曜に 2 億ユーザー分のプレイリストを再生成。
パイプライン Kubeflow Pipelines で TFX ワークフローを定期実行。 ユーザー行動ログ → Feature Store → 学習 → 評価 → デプロイ → 推論 → ロギング、 のサイクル。
監視 Prometheus + Grafana、 異常時は PagerDuty で SRE チームに通知。 推論レイテンシ p99 < 100ms を SLA に。
教訓 K8s ネイティブな設計。 OSS ツール(Kubeflow, TFX)の組合せでも大規模本番が可能。
ケース D:Airbnb の Bighead 業界:宿泊予約 / ツール:内製 / 規模:数百モデル
2017 年から開発、 写真品質スコア・価格推奨・ホスト保護など多用途。 Python + Spark + Kubernetes のハイブリッド。
特徴 『すべての ML プロジェクトに同じワークフロー』。 Bighead Library(モデル定義)、 ML Automator(自動化)、 Service(推論)、 UI(管理)の 4 層。
運用 すべてのモデルで A/B テスト必須。 効果が確認できないモデルは即廃止。 シャドーモードで安全性検証。
教訓 『標準化』が大規模 MLOps の鍵。 個別最適より全社最適。
ケース E:Stripe の Radar(不正検知) 業界:FinTech / レイテンシ:< 100ms / ツール:内製+ML Platform
クレジットカード決済の不正検知。 毎秒数万件のトランザクションをリアルタイム判定。 SLA:100ms 以内に判定、 99.99% 可用性。
技術 Gradient Boosting + ニューラルネット併用。 数百の特徴量。 Feature Store で同期更新。 説明可能性のため SHAP を併用。
MLOps 観点 毎週モデル更新、 A/B テストで効果検証。 偽陽性(正当な取引を不正と誤判定)と偽陰性(不正を見逃す)のトレードオフを KPI 化。
教訓 レイテンシ SLA とコスト最小化の両立。 Feature Engineering と Feature Store が競争力の源泉。
ケース F:教材レベル ─ SSDSE 教育費予測の最小 MLOps 業界:教育(自治体想定) / ツール:MLflow + GitHub Actions / 規模:1 モデル
本サイトの教材として『毎年 SSDSE が更新されたら自動的に再学習する』最小 MLOps を提案。 個人開発レベルで MLOps を体感できる。
構成 (1) Git でコード管理、 (2) MLflow で実験追跡、 (3) GitHub Actions で年次自動実行、 (4) PR で人間レビュー、 (5) Hugging Face Spaces などで簡易デプロイ。
コスト 全部無料 OSS / 無料枠で完結。 GitHub Free + MLflow OSS + HF Spaces で月 0 円。
教訓 規模に関係なく MLOps の主要 6 ステップ(学習・評価・登録・デプロイ・監視・再学習)は体感可能。
📊 MLOps プラットフォーム比較(マネージド)
プラットフォーム ベンダー 強み 弱み 月額イメージ Vertex AI Google Cloud TF/AutoML 統合、 TPU GCP 縛り 数万〜数百万円 SageMaker AWS 種類豊富、 エコシステム 学習コスト高 数万〜数百万円 Azure ML Microsoft Azure エンタープライズ機能、 Office 連携 新機能の追従が遅い時期あり 数万〜数百万円 Databricks ML Databricks MLflow ネイティブ、 Spark 統合 コスト高 数十万〜 Domino Data Lab Domino オンプレ対応、 規制業界向け ニッチ 要見積 DataRobot DataRobot AutoML 中心、 ビジネス向け ベンダーロックイン強い 要見積 H2O.ai H2O.ai AutoML(H2O AutoML) コミュニティ小 要見積
📊 MLOps OSS スタック(自作派向け)
役割 OSS 候補 代替 備考 実験追跡 MLflow Weights & Biases (商用) MLflow が最も普及 パイプライン Kubeflow / Airflow Prefect, Dagster K8s か Python ベースか選択 特徴量管理 Feast Hopsworks (OSS+商用) training-serving skew 防止 モデル登録 MLflow Registry ClearML MLflow の派生機能 サービング BentoML / Seldon TF Serving, Triton BentoML が言語横断的 モニタリング Evidently / Whylogs Arize (商用) ドリフト・データ品質 可視化 Grafana Kibana Prometheus と組合せ データ版 DVC lakeFS, Delta Lake Git ライク管理 コンテナ Docker Podman, containerd 標準 オーケスト Kubernetes Nomad 本番標準
MLOps
MLflow / W&B
Kubeflow/Airflow
DVC / LakeFS
Evidently / Arize
Feature Store
KL ダイバージェンス
🔗 隣接手法への橋渡し
MLOps は単独ツールではなく、 上流の DataOps (データ品質・ラインエージ)、 並列の CI/CD + 実験管理 (MLflow) + モデルレジストリ + サービング (Seldon / BentoML)、 下流の監視 (Evidently / WhyLabs) と組み合わせる ML 専用 DevOps。
上流 (前段処理) : CI/CD パイプライン / コンテナ化 — Docker + GitHub Actions の基盤
並列 (代替/比較) : DevOps / DataOps — 隣接する運用プラクティス(コード中心の CI/CD と、 データ品質・ラインエージ中心の運用)
下流 (後段活用) : モデル監視 / 再訓練 — ドリフト検知後の自動再学習
SSDSE-B-2026 を題材に MLOps を組む場合、 上流で DVC でデータバージョン管理、 中段で MLflow で実験追跡 + モデルレジストリ、 下流で FastAPI 経由 API 化 + Evidently で drift 監視、 という最小構成が現実的な学習フロー。
🌳 MLOps スタック選定 ── 意思決定ツリー
分岐 1: Q1: 組織規模は? 1〜5 人 → MLflow + GitHub Actions + Hugging Face(ほぼ無料) 10〜50 人 → MLflow + Kubeflow / Airflow + クラウドマネージド 100 人以上 → 内製プラットフォーム or 大手マネージド(Vertex/SageMaker)
分岐 2: Q2: モデル数は? 1〜5 → 軽量スタック 10〜50 → 中規模スタック、 Feature Store 検討 100+ → 内製 or 重量マネージド、 Feature Store 必須
分岐 3: Q3: 規制業界(金融/医療)? はい → ガバナンス・監査機能必須、 Domino / 内製 or 大手マネージド いいえ → OSS スタックで十分
分岐 4: Q4: クラウド前提? GCP → Vertex AI(TF 強い) AWS → SageMaker Azure → Azure ML マルチクラウド → OSS(Kubeflow + MLflow) オンプレ → OSS、 Domino、 H2O.ai
分岐 5: Q5: リアルタイム推論は必要? はい(<100ms) → Triton / TF Serving / Seldon いいえ(バッチ) → BentoML / 単純な API
🛠 MLOps トラブルシューティング表
症状 考えられる原因 対処 本番推論性能が学習と乖離 training-serving skew Feature Store 統一、 整合性検証 再学習後に性能劣化 新データの品質問題 データ品質ゲート、 Great Expectations パイプラインが時々失敗 依存ライブラリ更新 Docker image hash 固定、 dependabot 監視 MLflow UI が遅い 実験数過多 古い run を archive、 sqlite → PostgreSQL 再現できない Random seed 不固定 全 seed 固定、 環境 hash 記録 GPU 課金高騰 アイドル時間多い Spot / Preemptible、 ジョブ集約 ドリフト警告誤検知 閾値設定不適切 過去データでキャリブレーション、 段階的アラート A/B テスト効果なし サンプルサイズ不足 事前に検出力計算、 期間延長 モデル登録後デプロイ失敗 依存違い container ベースで完全固定 監査ログ膨大 全リクエスト保存 サンプリング保存、 圧縮、 古いものは Cold Storage Notebook 開発から脱却したい プロセス未整備 Cookiecutter Data Science、 Hydra 設定 LLM コスト不明 トークン使用量未計測 OpenAI/Anthropic SDK の usage 統計化
🌳 手法選択フロー
MLOps スタック選択は、 (1) 組織の成熟度 (Level 0-2)、 (2) クラウド前提、 (3) チーム規模、 で判断する。 Google の MLOps 成熟度モデル (0=手動, 1=自動学習, 2=自動 CI/CD) を基準に段階的に強化するのが定石。
Step 1: MLOps 成熟度レベルは?
Level 0 (手動) → まず Git + DVC + MLflow で実験管理を導入
Level 1 (自動学習) → Airflow / Kubeflow Pipelines でパイプライン化
Level 2 (自動 CI/CD) → GitHub Actions + ArgoCD + 自動再学習トリガー
Step 2: クラウド・オンプレ選択は?
AWS 基盤 → SageMaker + CodePipeline + CloudWatch
GCP 基盤 → Vertex AI + Cloud Build + Cloud Monitoring
Azure 基盤 → Azure ML + DevOps + Application Insights
OSS 中立 → Kubeflow + MLflow + Prometheus / Grafana (k8s 必須)
Step 3: 監視と再学習トリガーは?
データドリフト → Evidently AI / WhyLabs で分布変化を検知
性能劣化 → 本番予測の真値ラグ評価 + アラート
自動再学習 → ドリフト閾値超過で Airflow DAG 起動 → A/B → 昇格
小規模チーム (1-5 名) なら MLflow + Git LFS + GitHub Actions の組合せで Level 1 まで到達可能。 大規模組織は Kubernetes 上に Kubeflow / Seldon を構築して Level 2 を目指す。 SSDSE-B-2026 のような静的データセットでは MLOps 効果は薄いが、 月次更新される SSDSE 年次版を想定すると「データ取得 → 前処理 → 学習 → 評価 → デプロイ」を自動化する練習材料になる。