LESSON 30分

ストーリー

田中VPoE
Model Registryにモデルを登録できるようになった。次はバージョニングの戦略だ。「どのバージョンが本番で動いているか」を常に把握できなければ、障害時に切り戻しもできない
あなた
Gitでコードはバージョン管理していますが、モデルのバージョン管理は何が違うんですか?
田中VPoE
モデルはコードだけでなく、学習データ、ハイパーパラメータ、環境の組み合わせで決まる。この「再現性の4要素」を全てトラッキングするのがモデルバージョニングだ
あなた
なるほど。コードのcommit hashだけでは足りないんですね

モデルバージョニングの必要性

再現性の4要素

要素内容管理方法
コード学習スクリプト、前処理ロジックGit(commit hash)
データ学習データ、検証データDVC / データカタログ
環境Python版、ライブラリ版Docker / conda lock
パラメータハイパーパラメータ、設定MLflow / config files

バージョニング戦略

v1.0.0 → v1.1.0 → v1.2.0 → v2.0.0
│         │         │         │
minor     minor     minor     major
(再学習)  (特徴量追加) (HP調整)  (アーキテクチャ変更)

セマンティックバージョニング for ML

レベル変更内容
Major (x.0.0)モデルアーキテクチャ変更ロジスティック回帰 → XGBoost
Minor (1.x.0)特徴量追加・データ更新新しい特徴量3つ追加
Patch (1.0.x)ハイパーパラメータ調整learning_rate変更

モデルライフサイクル管理

開発 → ステージング → 本番 → アーカイブ
 │        │          │        │
 Draft   Staging   Production  Archived

MLflowでのステージ管理

from mlflow.tracking import MlflowClient

client = MlflowClient()

# モデルをステージングに昇格
client.transition_model_version_stage(
    name="churn_predictor",
    version=3,
    stage="Staging"
)

# テスト通過後、本番に昇格
client.transition_model_version_stage(
    name="churn_predictor",
    version=3,
    stage="Production"
)

モデルメタデータ

各バージョンに記録すべき情報:

カテゴリ項目
性能accuracy, precision, recall, F1, AUC
データ学習データサイズ、期間、分布
リソース学習時間、推論レイテンシ、モデルサイズ
承認レビュワー、承認日、テスト結果

ロールバック戦略

方式説明切り替え時間
Blue-Green旧版と新版を並行稼働数秒
カナリア段階的にトラフィックを移行数分〜数時間
即時切り戻し旧版に即座に戻す数秒

まとめ

  • モデルバージョニングはコード・データ・環境・パラメータの4要素を管理する
  • セマンティックバージョニングでML特有の変更を分類できる
  • ライフサイクル管理(Draft → Staging → Production → Archived)が重要
  • ロールバック戦略を事前に設計しておく

チェックリスト

  • モデルバージョニングの4要素を理解した
  • セマンティックバージョニングをMLに適用できる
  • MLflowのステージ管理を理解した
  • ロールバック戦略を説明できる

次のステップへ

バージョニングの基礎を学んだら、演習でMLflow Model Registryを使ったバージョン管理を実践しましょう。

推定読了時間: 30分