LESSON 30分

MLOpsの構成要素

田中VPoE「成熟度モデルで全体像はつかめたな。次はMLOpsを構成する具体的なコンポーネントを整理しよう。どんなパーツが必要で、どう連携するかを理解することが設計の第一歩だ。」

あなた「DevOpsだとCI/CDやモニタリングが中心ですが、MLOpsだともっと多いですよね?」

田中VPoE「そうだ。データ管理、実験管理、モデル管理、特徴量管理、サービングなど、ML固有のコンポーネントが加わる。一つずつ見ていこう。」

MLOpsの全体アーキテクチャ

MLOpsシステムは複数のコンポーネントが連携して動作します。大きく5つのレイヤーに分けて理解しましょう。

┌─────────────────────────────────────────────┐
│            モニタリング・ガバナンス            │
├─────────────────────────────────────────────┤
│              サービング・推論                 │
├─────────────────────────────────────────────┤
│         パイプライン・オーケストレーション       │
├─────────────────────────────────────────────┤
│     実験管理  │  モデルレジストリ  │ 特徴量ストア │
├─────────────────────────────────────────────┤
│         データ管理・バージョニング              │
└─────────────────────────────────────────────┘

コンポーネント1: データ管理

MLシステムの根幹はデータです。データの品質管理、バージョニング、リネージ(系譜)追跡が必要です。

データ管理の構成要素

要素説明代表ツール
データバージョニングデータセットのバージョン管理DVC, LakeFS
データバリデーションデータ品質の自動チェックGreat Expectations, Pandera
データリネージデータの変換履歴の追跡Apache Atlas, OpenLineage
データカタログメタデータの一元管理DataHub, Amundsen

データバージョニングの仕組み

# DVC によるデータバージョニングの例
# Gitのようにデータをバージョン管理する

# 1. データファイルをDVC管理下に追加
# $ dvc add data/train.csv
# => data/train.csv.dvc が生成される(メタデータ)

# 2. .dvcファイルはGitで管理
# $ git add data/train.csv.dvc data/.gitignore
# $ git commit -m "Add training data v1"

# 3. データの実体はリモートストレージに保存
# $ dvc push

データバリデーションの重要性

学習データの品質が低いと、モデルの性能が劣化します。以下のチェックを自動化します:

チェック項目内容
スキーマ検証カラムの型・存在チェック年齢カラムがint型であること
分布チェック統計量の範囲チェック年齢が0〜150の範囲内
完全性チェック欠損値の許容範囲NULL率が5%以下
一貫性チェックレコード間の整合性開始日 < 終了日

コンポーネント2: 実験管理

データサイエンティストが行う実験(ハイパーパラメータ調整、特徴量選択など)を体系的に記録・比較する仕組みです。

実験管理で記録すべき情報

記録項目具体例
パラメータlearning_rate=0.01, n_estimators=100
メトリクスaccuracy=0.92, f1_score=0.89, AUC=0.95
アーティファクトモデルファイル、学習曲線のグラフ
ソースコードGitのコミットハッシュ
データデータセットのバージョン、前処理のパラメータ
環境Python版、ライブラリバージョン、GPU情報

実験管理なしの場合

# ファイル名でバージョン管理している状態...
models/
├── model_v1.pkl
├── model_v2.pkl
├── model_v2_improved.pkl
├── model_v2_improved_final.pkl
├── model_v2_improved_final_really_final.pkl  # ← どれが本番?
└── model_best.pkl

実験管理ありの場合

# MLflow UI で一覧表示
Run ID     | Model    | LR    | Accuracy | F1    | Status
-----------|----------|-------|----------|-------|--------
a1b2c3d4   | XGBoost  | 0.01  | 0.923    | 0.891 | Production
e5f6g7h8   | XGBoost  | 0.05  | 0.918    | 0.885 | Archived
i9j0k1l2   | LightGBM | 0.03  | 0.915    | 0.878 | Staging

コンポーネント3: モデルレジストリ

学習済みモデルのライフサイクル(登録 → ステージング → 本番 → 退役)を管理するコンポーネントです。

モデルのライフサイクル

[登録] → [ステージング] → [本番] → [アーカイブ]
  │          │               │           │
  │    テスト・検証      推論サービング   退役・保管

 実験完了後に
 レジストリ登録

モデルレジストリの機能

機能説明
バージョニングモデルのバージョン管理(v1, v2, …)
ステージ管理None → Staging → Production → Archived
メタデータ学習データ、性能指標、作成者、説明
承認フロー本番昇格時のレビュー・承認
ロールバック問題発生時の即座の切り戻し

コンポーネント4: 特徴量ストア

特徴量(Feature)を一元的に管理・提供するコンポーネントです。学習時と推論時で同じ特徴量を使用することを保証します。

特徴量ストアが解決する問題

問題説明
Training-Serving Skew学習時と推論時で異なる特徴量計算
特徴量の重複開発チームごとに同じ特徴量を再実装
ポイントインタイム正確性過去の時点での正確な特徴量再現
オンライン/オフライン整合性バッチ処理とリアルタイム処理の一貫性

特徴量ストアのアーキテクチャ

[データソース] → [特徴量変換] → [オフラインストア](学習用)
                                     ↓ 同期
                               [オンラインストア](推論用)

                               [推論サービス]

コンポーネント5: パイプラインオーケストレーション

データの取得からモデルのデプロイまでの一連のステップを自動化・管理するコンポーネントです。

パイプラインの構成ステップ

[データ取得] → [データ検証] → [前処理] → [特徴量生成]
     ↓                                      ↓
[モデル学習] → [モデル評価] → [モデル登録] → [デプロイ]

                                         [モニタリング]

オーケストレーションツールの比較

ツール特徴ユースケース
Apache Airflow汎用DAGスケジューラーデータパイプライン全般
Kubeflow PipelinesKubernetes ネイティブ大規模ML学習
PrefectPython ネイティブ、クラウド統合中規模チーム
Dagster型安全、テスタブルデータプラットフォーム

コンポーネント6: サービング・推論

学習済みモデルを使って推論リクエストに応答する仕組みです。

サービング方式の比較

方式説明ユースケースレイテンシ
REST APIHTTPエンドポイントWebアプリ連携数十ms
バッチ推論定期的な一括処理レコメンド事前計算数分〜数時間
ストリーミングイベント駆動推論リアルタイム異常検知数ms
エッジ推論デバイス上で推論IoT、モバイル数ms

コンポーネント7: モニタリング・ガバナンス

本番環境でのモデルの性能とデータの品質を継続的に監視するコンポーネントです。

モニタリングの対象

対象メトリクス例アラート閾値例
システムレイテンシ、スループット、エラー率p99 > 200ms
モデル性能精度、F1スコア、AUC精度低下 > 5%
データドリフトPSI、KLダイバージェンスPSI > 0.2
コンセプトドリフト予測分布の変化分布変化 > 2σ

コンポーネント間の連携

各コンポーネントは独立ではなく、密接に連携して動作します:

連携パターン説明
実験管理 → モデルレジストリ実験で良い結果のモデルをレジストリに登録
特徴量ストア → パイプライン学習パイプラインが特徴量ストアからデータを取得
モニタリング → パイプラインドリフト検知をトリガーに再学習パイプラインを起動
モデルレジストリ → サービング承認されたモデルを自動デプロイ

まとめ

項目ポイント
全体像5つのレイヤーで構成されるアーキテクチャ
データ管理バージョニング・バリデーション・リネージ
実験管理パラメータ・メトリクス・アーティファクトの記録
モデルレジストリモデルのライフサイクル管理
特徴量ストアTraining-Serving Skew の解消
パイプライン一連のMLワークフローの自動化
モニタリングモデル性能・データドリフトの監視

チェックリスト

  • MLOpsの7つの主要コンポーネントを列挙できる
  • 各コンポーネントの役割と代表的なツールを説明できる
  • Training-Serving Skewの問題を説明できる
  • コンポーネント間の連携パターンを3つ以上挙げられる

次のステップへ

MLOpsの構成要素を理解しました。次は、これらを実現するツールのエコシステムを俯瞰しましょう。


推定読了時間:30分