MLflowは、機械学習のライフサイクル全体(実験管理・モデル管理・デプロイ)を統合管理するオープンソースプラットフォームです。 Databricksが開発を主導しており、Databricks上ではManaged版としてシームレスに利用できます。 ML Associate/Professional試験の中核トピックであり、Data Engineer系でも基本概念が問われます。
| コンポーネント | 役割 | 試験での重要度 |
|---|---|---|
| MLflow Tracking | 実験パラメータ・メトリクス・アーティファクトの記録 | 最重要 |
| MLflow Models | モデルのパッケージング(標準形式での保存) | 重要 |
| Model Registry | モデルのバージョン管理・ステージ遷移 | 最重要 |
| MLflow Projects | 再現可能なMLコードのパッケージング | 出題頻度は低い |
Trackingは「誰が、いつ、どのパラメータで、どのデータで訓練し、結果はどうだったか」を記録する仕組みです。 1回の訓練をRunと呼び、複数のRunをExperimentにまとめます。
import mlflow
# Experimentの指定(なければ自動作成)
mlflow.set_experiment("/Users/taro/churn_prediction")
# Runの開始
with mlflow.start_run(run_name="xgboost_v1"):
# パラメータの記録
mlflow.log_param("max_depth", 5)
mlflow.log_param("learning_rate", 0.01)
mlflow.log_param("n_estimators", 100)
# モデル訓練(例)
model = train_xgboost(X_train, y_train, max_depth=5, lr=0.01)
# メトリクスの記録
accuracy = evaluate(model, X_test, y_test)
mlflow.log_metric("accuracy", accuracy)
mlflow.log_metric("f1_score", f1)
# モデルの保存
mlflow.sklearn.log_model(model, "model")
# アーティファクトの保存(図表、設定ファイルなど)
mlflow.log_artifact("confusion_matrix.png")Databricks上では mlflow.autolog() を呼ぶだけで、多くのフレームワーク(scikit-learn、XGBoost、 LightGBM、PyTorch、TensorFlow等)のパラメータ・メトリクス・モデルが自動記録されます。
# Autologging(推奨)
mlflow.autolog()
# これだけで訓練時のパラメータ・メトリクス・モデルが自動記録される
model = RandomForestClassifier(n_estimators=100, max_depth=5)
model.fit(X_train, y_train)Model Registryは、訓練済みモデルのバージョン管理とライフサイクル管理を行う仕組みです。 「どのモデルバージョンがどのステージにあるか」を一元管理し、本番デプロイの承認フローを構築できます。
# RunからModel Registryに登録
mlflow.register_model(
model_uri="runs:/abc123def456/model",
name="churn_prediction_model"
)
# バージョンの遷移(Unity Catalog Model Registryではエイリアスを使用)
# 旧Model Registry: Staging → Production
# Unity Catalog: エイリアス "champion" / "challenger" を設定
from mlflow import MlflowClient
client = MlflowClient()
client.set_registered_model_alias(
name="churn_prediction_model",
alias="champion",
version=3
)| 項目 | 旧 Workspace Model Registry | Unity Catalog Model Registry |
|---|---|---|
| スコープ | ワークスペース単位 | アカウント横断(複数ワークスペース共有) |
| ステージ管理 | None / Staging / Production / Archived | エイリアス(champion / challenger 等) |
| ガバナンス | ワークスペースレベルの権限 | Unity Catalogの3レベル権限モデル |
| リネージ | 限定的 | テーブル→モデル→サービングのリネージ自動記録 |
| 推奨 | レガシー(非推奨化の方向) | 新規プロジェクトではこちらを推奨 |
Model Registryに登録したモデルは、Databricksの Model Serving でリアルタイム推論エンドポイントとしてデプロイできます。 バッチ推論の場合は、mlflow.pyfunc.spark_udf() でSpark UDFとして利用します。
# バッチ推論: Spark UDFとしてモデルを適用
import mlflow
model_uri = "models:/churn_prediction_model@champion"
predict_udf = mlflow.pyfunc.spark_udf(spark, model_uri)
predictions = (spark.table("silver.customers")
.withColumn("churn_probability", predict_udf("age", "tenure", "monthly_charges"))
)ML Associate / Professional
問題 1
MLエンジニアが複数のハイパーパラメータ設定でモデルを訓練し、最良のモデルを本番にデプロイしたい。MLflowを使って最も効率的にこのワークフローを実現する手順はどれか。
正解: A
MLflowのautologでパラメータ・メトリクス・モデルを自動記録し、UIで比較、Model Registryで管理、エイリアスでデプロイするのが標準ワークフローです。手動のPickle保存やCSV記録では再現性・トレーサビリティが失われます。
MLflowはDatabricks以外でも使えますか?
はい。MLflowはオープンソースプロジェクト(Linux Foundation傘下)であり、ローカル環境、AWS SageMaker、GCP Vertex AI、Azure MLなど任意の環境で利用可能です。ただしDatabricks上では、Unity Catalogとの統合(モデルのガバナンス)、自動ログ記録、Managed MLflow Tracking Serverなどの追加機能が利用できます。
Experiment、Run、Model の関係がわかりません。
Experimentは実験の箱(フォルダ)、Runはその箱の中の個々の試行(1回のモデル訓練)、Modelは最終的にデプロイするアーティファクトです。たとえば「顧客離脱予測」というExperimentの中に「ランダムフォレスト・lr=0.01」のRun、「XGBoost・depth=5」のRunがあり、最も良いRunのモデルをModel Registryに登録してデプロイします。
試験でMLflowはどう出題されますか?
ML Associate/Professionalで最頻出です。Tracking(パラメータ・メトリクス・アーティファクトの記録)、Model Registry(モデルのバージョン管理・ステージ遷移)、AutologgingなしのMLflowの使い方、Unity Catalog Model Registryが主な出題範囲です。Data Engineer系でもMLflowの基本概念は出題されます。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Databricks資格一覧|全7試験・難易度・勉強法
Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...
Databricks試験の難易度ランキング|全7資格を徹底比較
Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...
Databricks資格の勉強方法|最短合格ルートと学習時間の目安
Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...
Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略
Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...
Databricks Data Engineer Professional完全解説|上級試験の攻略法
Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...