Databricks

MLflow Model Registry徹底ガイド: モデル昇格・ステージ運用・デプロイ

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

MLflow Model Registryは、学習済みモデルのバージョン管理、昇格フロー(Challenger → Champion)、 権限管理、Model Servingへのデプロイを一元的に管理するDatabricksの中核機能です。 2024年以降、DatabricksはWorkspace版Model Registryから Unity Catalog(UC)版Model Registryへの移行を推進しており、 UC版ではエイリアス機能やクロスワークスペース共有などの強化が行われています。

この記事では、Model Registryの全体像、Workspace版とUC版の違い、 モデル登録・エイリアス運用の実装、昇格フロー設計を解説します。

Model Registryの概要

Model Registryは、MLflowエコシステムの「モデルカタログ」に相当するコンポーネントです。 MLflow Trackingで記録した実験RunのモデルアーティファクトをRegistryに登録すると、 以下の管理機能が使えるようになります。

  • バージョン管理:同一モデル名に対して複数バージョンを管理。 各バージョンは元のMLflow Tracking RunへのリンクとModel Signatureを保持する
  • エイリアス / ステージ管理:UC版ではエイリアス(Champion / Challenger)、 旧Workspace版ではステージ(Staging / Production / Archived)でモデルの状態を管理する
  • 権限管理:UC版ではGRANT / DENYでモデルへのアクセスを制御。 誰がモデルを登録 / 読み取り / 昇格できるかを厳密に管理する
  • Model Servingとの連携:登録済みモデルをModel Servingエンドポイントに 直接デプロイ。エイリアスの付け替えで推論モデルを自動更新する

旧Workspace版 vs UC版 比較表

比較項目旧Workspace版UC版(推奨)
名前空間フラット(モデル名のみ)3層(catalog.schema.model_name)
モデル状態管理ステージ(Staging / Production / Archived)エイリアス(Champion / Challenger / 自由定義)
権限管理ワークスペースACLUnity Catalog GRANT / DENY
クロスワークスペース不可(ワークスペースに閉じる)可能(同一UCメタストア配下)
リネージ追跡限定的学習データテーブルまでの自動追跡
監査ログワークスペースログUC System Tables(audit_logs)
Webhooks対応対応
今後のサポート非推奨(将来的に廃止予定)推奨・アクティブ開発中

モデル登録の実装

モデルをModel Registryに登録する基本フローは以下の通りです。

import mlflow
from mlflow import MlflowClient

# 1. UC版を使用するためにRegistry URIを設定
mlflow.set_registry_uri("databricks-uc")

# 2. 学習 + Tracking記録
with mlflow.start_run() as run:
    mlflow.autolog()
    model = train_model(X_train, y_train)  # 学習処理
    mlflow.sklearn.log_model(
        model,
        artifact_path="model",
        input_example=X_train[:5],
        signature=mlflow.models.infer_signature(X_train, y_pred)
    )

# 3. Model Registryに登録
model_uri = f"runs:/{run.info.run_id}/model"
mv = mlflow.register_model(
    model_uri=model_uri,
    name="prod_catalog.ml_schema.churn_predictor"
)
print(f"登録完了: バージョン {mv.version}")

# 4. エイリアスの付与
client = MlflowClient()
client.set_registered_model_alias(
    name="prod_catalog.ml_schema.churn_predictor",
    alias="Challenger",
    version=mv.version
)

エイリアス vs 旧ステージの詳細比較

機能旧ステージ(Workspace版)エイリアス(UC版)
定義固定3種(None / Staging / Production / Archived)自由定義(文字列を自由に設定可能)
同時付与1バージョンに1ステージのみ1バージョンに複数エイリアスを付与可能
複数バージョンへの同一ステージ不可(Productionは常に1バージョンのみ)各エイリアスは1バージョンのみ指す(ポインタ的動作)
参照方法models:/model_name/Productionmodels:/catalog.schema.model_name@Champion
A/Bテスト対応困難(Productionが1つのため)容易(Champion + Challengerの2エイリアスで並行運用)
遷移の記録ステージ遷移イベントとして記録エイリアス変更イベントとして記録

モデル昇格フロー

実務で推奨される昇格フローの全体像を以下に示します。

[Step 1: 学習 & 実験]
  │  mlflow.start_run() → autolog() → log_model()
  │  ⇒ MLflow Tracking Runに記録される
  │
  ▼
[Step 2: Registry登録]
  │  mlflow.register_model("runs:/{id}/model", "catalog.schema.model")
  │  ⇒ Model Registry に Version N が作成される
  │
  ▼
[Step 3: Challengerエイリアス付与]
  │  client.set_registered_model_alias(..., "Challenger", N)
  │  ⇒ 本番候補としてマーク
  │
  ▼
[Step 4: バリデーション(自動)]
  │  ├─ 精度テスト(AUC ≥ 0.85 / RMSE ≤ 閾値)
  │  ├─ データドリフト検出(PSI / KS統計量)
  │  ├─ レイテンシテスト(p99 < 100ms)
  │  └─ フェアネステスト(保護属性間の予測差)
  │
  ▼
[Step 5: 承認(手動 or 自動)]
  │  ├─ 全テスト合格 → MLリードが承認
  │  └─ テスト不合格 → 却下・フィードバック
  │
  ▼
[Step 6: Champion昇格]
  │  client.set_registered_model_alias(..., "Champion", N)
  │  ⇒ Model Servingが自動的に新バージョンに切り替え
  │
  ▼
[Step 7: 旧Champion → Archived]
     client.delete_registered_model_alias(..., "Champion")  # 旧版
     ⇒ 参照用に保持、推論からは外れる

Model Servingとの連携

UC Model RegistryのモデルはDatabricks Model Servingに直接デプロイできます。 エンドポイント作成時にエイリアスを指定すると、エイリアスの付け替えだけで 推論モデルの更新が完了します。

デプロイ方式設定更新方法
バージョン指定モデルバージョン番号を明示新バージョンを作成しエンドポイント設定を手動更新
エイリアス指定(推奨)@Championエイリアスを参照エイリアスを新バージョンに付け替えると自動更新
# エイリアスベースでのモデル読み込み(推論時)
import mlflow

model = mlflow.pyfunc.load_model(
    "models:/prod_catalog.ml_schema.churn_predictor@Champion"
)
predictions = model.predict(new_data)

試験で問われるポイント

  • 「モデルのバージョン管理と昇格フローを実現するDatabricksの機能は?」→ UC Model Registry
  • 「UC版とWorkspace版の最大の違いは?」→ エイリアス vs ステージ、3層名前空間、クロスワークスペース共有
  • 「mlflow.register_model()の役割は?」→ Tracking RunのモデルアーティファクトをRegistryに登録し、バージョン管理の対象にする
  • 「Model Servingでモデルを更新するには?」→ Championエイリアスを新バージョンに付け替え
  • 「モデルの参照URIの形式は?」→ models:/catalog.schema.model_name@Champion

問題で確認

ML Associate / ML Professional

問題 1

MLエンジニアがUC Model Registryにモデルを登録し、A/Bテストを実施したい。現在の本番モデル(Version 3)を維持しながら、新モデル(Version 5)に一部トラフィックを流す設計として最も適切なものはどれか。

  1. Version 3のステージをProductionのまま維持し、Version 5のステージをStagingに設定する
  2. Version 3にChampionエイリアス、Version 5にChallengerエイリアスを付与し、Model Servingのトラフィック分割機能で配分を設定する
  3. Version 3を削除してVersion 5をProductionステージに移行する
  4. 2つの別々のモデル名で登録し、手動でリクエストを振り分ける

正解: B

UC Model Registryではステージではなくエイリアスでモデルの状態を管理します。ChampionとChallengerの2つのエイリアスを並行して運用し、Model Servingのトラフィック分割でA/Bテストを実施するのが標準設計です。選択肢Aの「Staging/Production」は旧Workspace版の概念でUC版には存在しません。削除は危険であり、別モデル名での管理は運用が複雑になります。

よくある質問

Workspace版Model RegistryからUC版に移行する方法はありますか?

はい。Databricksはmlflow.copy_model_version()やUpgrade APIを提供しており、Workspace版に登録済みのモデルをUC版のModel Registryに移行できます。移行時にはモデルの3層名前空間(catalog.schema.model_name)を指定します。移行後は旧Workspace版のモデルへの参照を更新する必要があるため、推論パイプラインやModel Servingエンドポイントの設定も合わせて変更してください。段階的な移行(新規モデルはUC版、既存は順次移行)が推奨されます。

mlflow.register_model()とmlflow.log_model()の違いは何ですか?

mlflow.log_model()は学習済みモデルをMLflow Tracking RunのアーティファクトとしてMLflow Run内に保存する操作です。mlflow.register_model()はそのアーティファクトをModel Registryに「登録」して、バージョン管理・エイリアス管理・権限管理の対象にする操作です。log_modelだけではModel Registryに登録されず、バージョン管理やエイリアス付与はできません。log_model()で保存した後にregister_model()で登録するのが標準フローです。

Model Servingエンドポイントでモデルを更新する際にダウンタイムは発生しますか?

通常は発生しません。Databricks Model Servingでは、エイリアスベースのエンドポイント設定(例:Championエイリアスを参照)を使う場合、エイリアスを新バージョンに付け替えると、Model Servingが自動的に新バージョンのコンテナを起動し、旧バージョンからのトラフィック切り替え(ブルーグリーン相当)を行います。切り替え中は両バージョンが並行稼働するため、リクエストの欠落は発生しません。

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

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の記事一覧 (105件)
© 2026 NicheeLab All rights reserved.