再現可能な実験の設計

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

Sinan Ozdemir

Data Scientist and Author

再現可能な実験

  • 正確性と信頼性を確保。
  • 結果を再現しやすい
  • 共同作業を促進
  • ML モデルのバイアス低減に寄与
  • 研究プロセスの健全性を強化
本番環境向けのMachine Learningモデル開発

MLflow

機械学習実験のトラッキングと管理のためのオープンソース基盤。MLflow でできること:

  • 再現可能な ML パイプラインの構築
  • 次をトラッキング・管理:
    • パッケージ依存関係
    • コードバージョン
    • 実験設定
  • 複数ユーザーで実験にアクセス可能

mlflow

1 https://www.databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html
本番環境向けのMachine Learningモデル開発

MLflow の使用例

# standard scikit-learn imports
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# new imports from MLflow
import mlflow
import mlflow.sklearn
本番環境向けのMachine Learningモデル開発

MLflow の使用例(続き)

with mlflow.start_run():  # Start an MLflow run assuming we have data prepared

    # Build and train model
    rf = RandomForestClassifier()
    rf.fit(X_train, y_train)

    # Log parameters and model information
    mlflow.log_param("n_estimators", rf.n_estimators)
    mlflow.sklearn.log_model(rf, "model")

    y_pred = rf.predict(X_test)  # Evaluate model
    accuracy = accuracy_score(y_test, y_pred)
    mlflow.log_metric("accuracy", accuracy)  # log the test accuracy metric
本番環境向けのMachine Learningモデル開発

コードのトラッキング

  • MLflow でコードのバージョンと変更を記録
  • 異なるコードバージョンを比較
  • どのコードで結果が生成されたか特定
  • 実験を容易に再現
  • デバッグとトラブルシュートを容易に
本番環境向けのMachine Learningモデル開発

モデルレジストリ

  • モデルとメタデータの集中リポジトリ
  • MLflow でモデルのバージョンを記録・保存・比較可能
  • ML パイプライン全体の再現
  • モデル比較に利用
  • モデルの正確性と信頼性を確保

ストレージ

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

実験の再現性

  • 入力データ、コード、設定を記録・トラッキング
  • ML パイプライン全体の再現
  • モデル結果への信頼構築
  • 他者による検証・継承を可能に
  • 実行間で結果の一貫性を確保

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

ドキュメントを見直す

  • 再現可能な ML にはドキュメントが必須。含める情報:
    • モデルの入力データ
    • モデル作成に用いたコード
    • 実験で使用した設定
    • 実験結果(選択したモデルなど)
  • ドキュメントはアクセスしやすく
  • 実験の完全な記録を目指す
本番環境向けのMachine Learningモデル開発

Let's practice!

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

Preparing Video For Download...