Databricks

MLflow完全ガイド|Databricksの実験管理・モデル管理基盤

2026-03-21
更新: 2026-03-27
NicheeLab編集部

MLflowは、機械学習のライフサイクル全体(実験管理・モデル管理・デプロイ)を統合管理するオープンソースプラットフォームです。 Databricksが開発を主導しており、Databricks上ではManaged版としてシームレスに利用できます。 ML Associate/Professional試験の中核トピックであり、Data Engineer系でも基本概念が問われます。

MLflowの4コンポーネント

コンポーネント役割試験での重要度
MLflow Tracking実験パラメータ・メトリクス・アーティファクトの記録最重要
MLflow Modelsモデルのパッケージング(標準形式での保存)重要
Model Registryモデルのバージョン管理・ステージ遷移最重要
MLflow Projects再現可能なMLコードのパッケージング出題頻度は低い

MLflow Tracking

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

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 RegistryUnity 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"))
)

Experiment管理の実務パターン

  • Experiment名はプロジェクト名 + モデル目的で命名する(例: /Projects/churn/xgboost)
  • Run名には手法とバージョンを入れる(例: xgboost_v3_tuned)
  • データのバージョン(Delta TableのVersion番号)もパラメータとして記録する
  • Compare機能で複数Runのメトリクスを並べて比較する
  • 最良のRunをModel Registryに登録し、エイリアスでchampionを指定する

試験で問われるポイント

  • Experiment / Run / Model の階層関係
  • mlflow.log_param() / log_metric() / log_model() / log_artifact() の使い分け
  • mlflow.autolog() の挙動(対応フレームワーク、何が自動記録されるか)
  • Model Registryのステージ遷移(旧: Staging→Production、新: エイリアス)
  • Unity Catalog Model Registryと旧Workspace Model Registryの違い
  • spark_udf() でのバッチ推論パターン

問題で確認

ML Associate / Professional

問題 1

MLエンジニアが複数のハイパーパラメータ設定でモデルを訓練し、最良のモデルを本番にデプロイしたい。MLflowを使って最も効率的にこのワークフローを実現する手順はどれか。

  1. mlflow.autolog()を有効にして各設定で訓練を実行 → MLflow UIでRunを比較 → 最良のRunのモデルをModel Registryに登録 → championエイリアスを設定してModel Servingでデプロイ
  2. 各モデルをPickleファイルとして手動保存 → S3にアップロード → Lambda関数でデプロイ
  3. 全てのハイパーパラメータ設定をCSVに記録 → 最良のモデルをノートブックから直接REST APIで公開
  4. 各RunのメトリクスをDelta Tableに手動INSERT → SQLで最良のRunを検索 → モデルファイルを手動コピー

正解: 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の基本概念は出題されます。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全7試験・難易度・勉強法

Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...

Databricks

Databricks試験の難易度ランキング|全7資格を徹底比較

Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...

Databricksの記事一覧 (109件)
© 2026 NicheeLab All rights reserved.