データとモデルのバージョニング

本番環境向けのMachine Learningモデル開発

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

メジャー版とマイナー版

バージョニングは major と minor の2種類

  • major はデータまたはモデルの大きな変更を示す

  • minor は小さな変更を示す

major/minor を使うと、変更内容と影響を把握できます

本番環境向けのMachine Learningモデル開発

学習データのバージョニング

  • 一意のメジャー/マイナーラベルやタイムスタンプ
  • 実験の再現性・追跡性を確保
  • 以前のデータ版へ容易に戻せる
  • データの経時変化を可視化

例:

  1. Data V 1.0 は初期データセット
  2. Data V 1.1 は特徴量変換を追加
  3. Data V 1.2 は特徴選択を追加
  4. Data V 2.0 は新たなデータソースを含む
本番環境向けのMachine Learningモデル開発

フィーチャーストア

  • 特徴量の異なる版を保存・管理する中央リポジトリ
  • 特徴量版を簡単に追跡
  • 実験ごとに特徴量を再利用
  • 共同作業と実験の整合性を向上
  • 重複作業を削減
本番環境向けのMachine Learningモデル開発

ML モデルのバージョニング

  • さまざまな ML モデル版を管理
  • 実験の再現性・追跡性を確保
  • 以前のモデル版へ容易にロールバック
  • 学習データ版と一致することが多いが、常にではない

例:

  1. Model V 1.0 は初期モデル(Random Forest)
  2. Model V 1.1 は Data V 1.1 で微調整した同一モデル
  3. Model V 2.0Data V 1.2 で微調整した XGBoost モデル
  4. Model V 2.1 は Data V 2.0 で微調整した XGBoost モデル
本番環境向けのMachine Learningモデル開発

モデルストア

  • さまざまなモデル版を保存・管理する中央リポジトリ
  • モデルの版を簡単に追跡
  • 以前の版へロールバック
本番環境向けのMachine Learningモデル開発

MLflow によるモデル版管理の例

import mlflow

# Start a new mlflow run
with mlflow.start_run() as run:
    # Log model version as a parameter
    mlflow.log_param("model_version", "1.0")

    # Train and save the model
    model = train_model()
    mlflow.sklearn.log_model(model, "model")
本番環境向けのMachine Learningモデル開発

練習しましょう!

本番環境向けのMachine Learningモデル開発

Preparing Video For Download...