モデルガバナンスとは、MLモデルのライフサイクル全体にわたって 「誰が・いつ・なぜ・どのモデルを本番にデプロイしたか」を管理・統制する仕組みです。 金融・医療・保険などの規制産業では、モデルの意思決定プロセスの監査が法的に求められるケースもあります。
Databricksでは、MLflow Tracking(再現性)、Unity Catalog Model Registry(承認フロー)、 UCの監査ログ(監査証跡)を組み合わせてモデルガバナンスを実現します。 この記事では3本柱の詳細と実務設計を解説します。
| 柱 | 目的 | Databricksでの実現手段 |
|---|---|---|
| 承認フロー | 本番デプロイ前に品質チェックと承認を強制する | UC Model Registry + エイリアス(Champion/Challenger) + Webhooks |
| 監査証跡 | 誰が・いつ・何を変更したかを記録する | Unity Catalog Audit Log + MLflow Tracking Run履歴 |
| 再現性 | 過去のモデルを同一条件で再学習・再評価できるようにする | MLflow Tracking(パラメータ・メトリクス・アーティファクト・環境情報) |
UC Model Registryは、MLflowで学習したモデルをUnity Catalogの3層名前空間(catalog.schema.model_name)で 管理する仕組みです。旧Workspace版Model Registryとの最大の違いは以下の点です。
import mlflow
# UC Model Registryにモデルを登録
mlflow.set_registry_uri("databricks-uc")
model_uri = f"runs:/{run_id}/model"
mlflow.register_model(model_uri, "prod_catalog.ml_schema.fraud_detector")
# エイリアスの付与
from mlflow import MlflowClient
client = MlflowClient()
client.set_registered_model_alias(
name="prod_catalog.ml_schema.fraud_detector",
alias="Champion",
version=3
)| エイリアス名 | 用途 | 付与条件 |
|---|---|---|
| Champion | 本番推論で使用中のモデルバージョン | すべてのバリデーションチェック + 承認を通過 |
| Challenger | Champion候補としてA/Bテスト中のバージョン | 基本バリデーション通過 + A/Bテスト開始承認 |
| Baseline | ドリフト検出の比較基準となるバージョン | 初期の本番モデルまたは特定の基準モデル |
| Archived | 利用終了したバージョン(参照用に保持) | 新Championに置き換えられた旧バージョン |
モデルの再現性は、以下の4要素を記録することで担保されます。
| 要素 | 記録方法 | 再現時の利用 |
|---|---|---|
| コード | mlflow.log_artifact() / Git連携(ソースコードハッシュ自動記録) | 同一コードで再学習を実行 |
| データ | Deltaテーブルのバージョン(タイムスタンプ / バージョン番号)をlog_param | spark.read.option("versionAsOf", N)で同一データを読み込み |
| 環境 | conda.yaml / pip requirements.txtの自動記録(MLflow Model Signature) | 同一ライブラリバージョンで環境を再構築 |
| パラメータ | mlflow.log_param() / autolog()で自動記録 | 同一ハイパーパラメータで再学習 |
本番モデルの昇格(Challenger → Champion)には、以下のような承認フローを設計します。
[データサイエンティスト]
│
├─ 1. モデル学習 + MLflow Tracking記録
│ └─ mlflow.log_param / log_metric / log_model
│
├─ 2. UC Model Registryに登録
│ └─ mlflow.register_model("runs:/{run_id}/model", "catalog.schema.model")
│
├─ 3. Challengerエイリアスを付与
│ └─ client.set_registered_model_alias(..., "Challenger", version=N)
│
[CI/CDパイプライン(自動)]
│
├─ 4. バリデーションテスト実行
│ ├─ 精度閾値チェック(AUC > 0.85)
│ ├─ データドリフト検出
│ ├─ レイテンシ要件チェック(p99 < 100ms)
│ └─ フェアネス / バイアスチェック
│
├─ 5. テスト結果をMLflow Runに記録
│
[MLリード / リスク管理者(手動承認)]
│
├─ 6. テスト結果を確認し、承認 or 却下
│
├─ 7. 承認された場合、Championエイリアスを付け替え
│ └─ client.set_registered_model_alias(..., "Champion", version=N)
│
└─ 8. 旧ChampionをArchivedに変更Unity Catalogの監査ログは、モデルに対する以下の操作を自動記録します。
これらのログはSystem Tablesのaudit_logsテーブルから検索可能であり、 「いつ・誰が・どのモデルバージョンをChampionに昇格させたか」を事後的に追跡できます。 規制対応(モデルリスク管理、SR 11-7等)で求められる証跡として活用できます。
ML Professional
問題 1
MLチームが新しいモデルバージョンを学習した。本番デプロイ前に精度テスト・ドリフト検出・レイテンシチェックを通過させ、MLリードの承認を得てから本番推論で使用したい。UC Model Registryでこの昇格プロセスを実現する最も適切な方法はどれか。
正解: B
UC Model Registryではステージではなくエイリアスで昇格を管理します。Challengerエイリアスでテスト運用し、すべてのバリデーションに合格した後にChampionエイリアスを付け替えるのが標準パターンです。選択肢Aの「Staging/Production」ステージは旧Workspace版の機能であり、UC版では非推奨です。
UC Model Registryの「エイリアス」と旧Workspace版の「ステージ」の違いは何ですか?
旧Workspace版のModel Registryでは、モデルバージョンに「Staging」「Production」「Archived」の固定3ステージを割り当てていました。UC版ではステージの代わりに自由定義のエイリアス(例:Champion / Challenger / Baseline)を使います。エイリアスは複数のバージョンに同時に付与でき、名前も自由に定義できるため、A/Bテストのような柔軟な運用が可能です。また、ステージの遷移は状態変更でしたが、エイリアスの付け替えはポインタの移動に近い軽量な操作です。
MLflow Trackingで記録すべき最低限の情報は何ですか?
再現性の観点から、最低限記録すべきは以下の4点です。(1) ハイパーパラメータ(mlflow.log_param)、(2) 評価メトリクス(mlflow.log_metric)、(3) 学習に使用したデータのバージョンまたはパス、(4) 実行環境の依存ライブラリ情報(pip requirements / conda env)。MLflow autolog()を有効にすると、scikit-learn、XGBoost、PyTorchなどのフレームワークでこれらが自動記録されます。
モデルの承認フローを自動化する方法はありますか?
Databricks Workflows + Webhooks + MLflow APIを組み合わせて自動化できます。具体的には、(1) モデルの新バージョンが登録されたらWebhookでCI/CDパイプラインをトリガー、(2) パイプライン内でバリデーションテスト(精度閾値チェック、データドリフト検出、A/Bテスト結果)を実行、(3) すべてのチェックに合格したらMLflow APIでChampionエイリアスを付け替える、という流れです。手動承認が必要な場合は、Slackやメール通知を挟んで人間の承認後にエイリアスを付け替えます。
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の出題...