論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
MLOps
Machine Learning Operations
MLOps

🔖 キーワード索引

MLOpsCI/CDモデル運用再現性監視ML基盤

MLOps (Machine Learning Operations) は ML モデルを本番運用するための文化・実践・ツール群。 DevOps の ML 版で、 データ・コード・モデルのバージョン管理、 CI/CD、 モニタリング、 再学習自動化を含む。 「実験で動くノートブック」と「本番で安定運用」のギャップを埋める。

MLOpsMLflowKubeflowCI/CD for MLモデルレジストリfeature storemonitoringdata driftconcept driftA/B test

「実験 → デプロイ → 監視 → 再学習」 が MLOps ライフサイクルの中核。

💡 30秒で分かる結論

🍰 まずはやさしく

AIを育てるための仕組みです。

AIをずっと使い続けるために使います。

スマホアプリの更新のようなものです。

この章ではMLOpsの基本を読みます。

MLOps ── MLモデルの開発・運用を統合する考え方

📍 文脈 ── どこで出会うか

🍰 まずはやさしく

AIを実務で使うためのルールです。

AIの性能が落ちるのを防ぐために使います。

部活の記録を正しく管理するのと似ています。

この章ではMLOpsに出会う場面を読みます。

研究で良い精度が出たモデルが、 本番投入後に「データが変わって精度急落」「再学習の手順が再現できない」と崩壊するのを防ぐのがMLOps。 競技や論文の後、 実務に乗せるなら必須の知識です。

本ページでは「mlops」を扱う。 統計データ分析コンペティション (2026) の教材で、 SSDSE-B-2026 (47 都道府県 × 複数年 × 100 超列) の実データを使った再現可能な学習を目指す。

「mlops」は統計・データサイエンスの体系における重要概念のひとつ。 本ページは「定義・直感・数式・実装・落とし穴・関連手法」の 6 視点で構成され、 各視点は独立して読めるが順序通り読むと体系的な理解が得られる。

🎨 直感で掴む

🍰 まずはやさしく

AI専用のメンテナンス方法です。

AIが古くなるのを防ぐために使います。

買い物の流行が変わるのに似ています。

この章ではMLOpsの感覚的な意味を読みます。

従来のソフトウェア開発(DevOps)と比べると、 MLOpsの独自の難しさが見えます:

側面従来のDevOpsMLOps
ビルド対象コードコード + データ + モデル
テストユニット/統合テスト+ データ品質モデル精度公平性
再現性同じコード→同じ動作同じコード + 同じデータ + 同じ乱数 → 同じモデル
劣化バグ以外は基本起きないデータ分布の変化で勝手に劣化
監視対象応答時間、 エラー率+ 予測分布、 入力ドリフト、 ラベル遅延

つまり、 「動いている」を維持するだけで通常の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)と呼ばれる継続的再学習サイクル:

【MLOps継続改善ループ】
データ収集 → 検証 → 前処理 → 学習 → 評価 → デプロイ → 監視 → (異常検知) → データ収集…
監視で性能劣化を検知 → 自動or半自動で再学習をトリガーする

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 システムが見るべき主要指標:

これら 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 番目
TensorFlowtensorflow.html★★★★3 番目
PyTorchpytorch.html★★★★3 番目
scikit-learnscikit-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 エンジニアの責務でもあります。 技術スキルと並行して、 規制動向のフォローも継続することが、 将来性のあるキャリア構築に直結します。

🔬 数式を言葉で読み解く

CI(Continuous Integration)
コードのpushごとに自動テスト。 MLOpsではデータのテストも含む
CD(Continuous Delivery / Deployment)
モデルを本番環境に自動デプロイ。 A/Bテストやカナリアリリース併用
CT(Continuous Training)
定期的または異常検知時にモデルを再学習
CM(Continuous Monitoring)
本番モデルの予測分布、 入力データ、 ラベル到着遅延を常時監視

🔬 数式を言葉で読み解く(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週間)の作業ログ例:

🧮 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/CDGit push で学習・テスト・デプロイ自動化モニタリングが弱いGitHub Actions, Jenkins
Level 3:自動再学習ドリフト検知で再学習トリガー誤検知・連鎖再学習Kubeflow, TFX, Vertex AI
Level 4:完全自律新データから自動的に最善モデル選択ブラックボックス化、 ガバナンス困難AutoML + 自律最適化

🧰 主要 MLOps ツール比較

ツール得意分野ホスティングライセンス
MLflow実験追跡・モデル登録OSS / DatabricksApache 2.0
KubeflowK8s 上のパイプラインOSS(K8s)Apache 2.0
TFXTensorFlow パイプラインOSS / GCP VertexApache 2.0
Vertex AIGCP マネージド全部Google Cloud商用
SageMakerAWS マネージド全部AWS商用
Azure MLAzure マネージド全部Microsoft Azure商用
FeastFeature StoreOSSApache 2.0
DVCデータ・モデルバージョンOSS(Git ベース)Apache 2.0
Weights & Biases実験追跡 UISaaS / セルフホスト商用 / OSS
BentoMLモデルサービングOSSApache 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%等)に先行リリースし、 問題なければ徐々に拡大する手法。
MTTRMean Time To Recovery。 障害から復旧までの平均時間。 MLOps の SRE 指標。
CI/CDContinuous Integration / Continuous Delivery。 コード変更→自動テスト→自動デプロイの流れ。
PCCPPredetermined Change Control Plan。 FDA が医療 AI の継続学習を限定許可する新枠組み。
Reproducibility再現性。 過去の実験を同じ条件で再構築できる性質。 コード・データ・環境・パラメータ・シードの 5 点が要件。

📑 参考文献・公式リソース

🧮 MLOps 主要指標の計算式と例

KL ダイバージェンス(特徴量ドリフト検知)

$D_{KL}(P\|Q) = \sum_i P(i) \log \frac{P(i)}{Q(i)}$。 SSDSE 2026 と 2025 で『高齢化率』を 10 ビンに分け、 各ビンの確率 P, Q を計算。 $D_{KL}$=0.05 なら安定、 0.5 超なら警告。

Population Stability Index (PSI)

$PSI = \sum_i (P_i - Q_i) \ln \frac{P_i}{Q_i}$。 金融業界標準。 PSI=0.05 安定、 0.1〜0.25 要監視、 0.25 超 再学習。 SSDSE 例で人口分布の PSI=0.12 なら『監視継続』。

精度劣化検知(CUSUM)

$S_t = \max(0, S_{t-1} + (x_t - \mu_0 - k))$。 累積和の管理図。 MAE が学習時 8500 円、 本番で 8500, 8600, 9000, 9500 と推移したら CUSUM が閾値を超え警告。

可用性(Availability SLA)

$A = \frac{T_{up}}{T_{total}}$。 99.9% は『年 8.76 時間の停止許容』、 99.99% は『52.6 分』。 ML 推論 API の SLA 設計の出発点。

レイテンシパーセンタイル

$P_{99}$ は『99% のリクエストはこれ以下で応答』。 平均より厳しい。 SLA に通常採用される。 平均 50ms でも P99=500ms ならユーザー体験は悪い。

コスト効率(推論あたり)

$\mathrm{Cost}_{infer} = \mathrm{Cost}_{month} / \mathrm{N}_{request}$。 月額 GPU 10 万円、 1 億リクエストなら 0.001 円/件。 量子化・バッチングで 1/4 まで圧縮可能。

🧮 数式に値を入れて手で計算する: モデル更新リードタイム

合成データで 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 で再現

1
2
3
4
5
6
7
8
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 列は住宅・家計・教育・医療など)
1
2
3
4
5
6
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-2026skiprows=[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 行)
1
2
3
4
5
6
7
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 をシリアライズして両方で同一コードを使う。

🗺 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 AIGoogle CloudTF/AutoML 統合、 TPUGCP 縛り数万〜数百万円
SageMakerAWS種類豊富、 エコシステム学習コスト高数万〜数百万円
Azure MLMicrosoft Azureエンタープライズ機能、 Office 連携新機能の追従が遅い時期あり数万〜数百万円
Databricks MLDatabricksMLflow ネイティブ、 Spark 統合コスト高数十万〜
Domino Data LabDominoオンプレ対応、 規制業界向けニッチ要見積
DataRobotDataRobotAutoML 中心、 ビジネス向けベンダーロックイン強い要見積
H2O.aiH2O.aiAutoML(H2O AutoML)コミュニティ小要見積

📊 MLOps OSS スタック(自作派向け)

役割OSS 候補代替備考
実験追跡MLflowWeights & Biases (商用)MLflow が最も普及
パイプラインKubeflow / AirflowPrefect, DagsterK8s か Python ベースか選択
特徴量管理FeastHopsworks (OSS+商用)training-serving skew 防止
モデル登録MLflow RegistryClearMLMLflow の派生機能
サービングBentoML / SeldonTF Serving, TritonBentoML が言語横断的
モニタリングEvidently / WhylogsArize (商用)ドリフト・データ品質
可視化GrafanaKibanaPrometheus と組合せ
データ版DVClakeFS, Delta LakeGit ライク管理
コンテナDockerPodman, containerd標準
オーケストKubernetesNomad本番標準
MLOps MLflow / W&B Kubeflow/Airflow DVC / LakeFS Evidently / Arize Feature Store KL ダイバージェンス

🔗 隣接手法への橋渡し

MLOps は単独ツールではなく、 上流の DataOps (データ品質・ラインエージ)、 並列の CI/CD + 実験管理 (MLflow) + モデルレジストリ + サービング (Seldon / BentoML)、 下流の監視 (Evidently / WhyLabs) と組み合わせる ML 専用 DevOps。

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 skewFeature 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) を基準に段階的に強化するのが定石。

  1. Step 1: MLOps 成熟度レベルは?
    • Level 0 (手動) → まず Git + DVC + MLflow で実験管理を導入
    • Level 1 (自動学習) → Airflow / Kubeflow Pipelines でパイプライン化
    • Level 2 (自動 CI/CD) → GitHub Actions + ArgoCD + 自動再学習トリガー
  2. 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 必須)
  3. 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 年次版を想定すると「データ取得 → 前処理 → 学習 → 評価 → デプロイ」を自動化する練習材料になる。