Databricks

DatabricksにおけるModel Governance: 承認フロー・監査・再現性

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

モデルガバナンスとは、MLモデルのライフサイクル全体にわたって 「誰が・いつ・なぜ・どのモデルを本番にデプロイしたか」を管理・統制する仕組みです。 金融・医療・保険などの規制産業では、モデルの意思決定プロセスの監査が法的に求められるケースもあります。

Databricksでは、MLflow Tracking(再現性)、Unity Catalog Model Registry(承認フロー)、 UCの監査ログ(監査証跡)を組み合わせてモデルガバナンスを実現します。 この記事では3本柱の詳細と実務設計を解説します。

モデルガバナンスの3本柱

目的Databricksでの実現手段
承認フロー本番デプロイ前に品質チェックと承認を強制するUC Model Registry + エイリアス(Champion/Challenger) + Webhooks
監査証跡誰が・いつ・何を変更したかを記録するUnity Catalog Audit Log + MLflow Tracking Run履歴
再現性過去のモデルを同一条件で再学習・再評価できるようにするMLflow Tracking(パラメータ・メトリクス・アーティファクト・環境情報)

Unity Catalog Model Registry

UC Model Registryは、MLflowで学習したモデルをUnity Catalogの3層名前空間(catalog.schema.model_name)で 管理する仕組みです。旧Workspace版Model Registryとの最大の違いは以下の点です。

  • 3層名前空間:catalog.schema.model_nameの形式で管理。 UCの権限モデル(GRANT / DENY)がモデルにも適用される
  • エイリアス機能:固定ステージ(Staging/Production)の代わりに、 自由定義のエイリアス(例:Champion / Challenger / Baseline)を使用。 1つのバージョンに複数のエイリアスを付与可能
  • クロスワークスペース共有:同一UCメタストア配下の複数ワークスペースから 同じモデルにアクセスできる
  • リネージ追跡:モデルがどのテーブルから学習されたかを自動追跡
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本番推論で使用中のモデルバージョンすべてのバリデーションチェック + 承認を通過
ChallengerChampion候補としてA/Bテスト中のバージョン基本バリデーション通過 + A/Bテスト開始承認
Baselineドリフト検出の比較基準となるバージョン初期の本番モデルまたは特定の基準モデル
Archived利用終了したバージョン(参照用に保持)新Championに置き換えられた旧バージョン

MLflow Trackingでの再現性

モデルの再現性は、以下の4要素を記録することで担保されます。

要素記録方法再現時の利用
コードmlflow.log_artifact() / Git連携(ソースコードハッシュ自動記録)同一コードで再学習を実行
データDeltaテーブルのバージョン(タイムスタンプ / バージョン番号)をlog_paramspark.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の監査ログは、モデルに対する以下の操作を自動記録します。

  • モデルの登録(CREATE_REGISTERED_MODEL)
  • バージョンの追加(CREATE_MODEL_VERSION)
  • エイリアスの変更(SET_REGISTERED_MODEL_ALIAS)
  • 権限の変更(UPDATE_GRANTS)
  • モデルの削除(DELETE_REGISTERED_MODEL)

これらのログはSystem Tablesのaudit_logsテーブルから検索可能であり、 「いつ・誰が・どのモデルバージョンをChampionに昇格させたか」を事後的に追跡できます。 規制対応(モデルリスク管理、SR 11-7等)で求められる証跡として活用できます。

実務での設計指針

  • モデルの命名規則を統一:catalog.schema.{team}_{use_case}の形式で統一し、 検索性と管理性を確保する(例:prod_catalog.ml.fraud_detection_xgboost)
  • autolog()を標準で有効化:チーム全体でmlflow.autolog()を有効にし、 パラメータ・メトリクスの記録漏れを防止する
  • Deltaテーブルのバージョンを記録:学習データのDelta Versionを log_paramで記録し、同一データでの再学習を可能にする
  • GRANTの最小権限原則:データサイエンティストにはモデル登録権限のみ付与し、 Champion昇格はMLリードまたはCI/CDパイプラインのみが実行できるようにする

試験で問われるポイント

  • 「モデルの本番昇格を管理するDatabricksの仕組みは?」→ UC Model Registry + エイリアス
  • 「モデルの再現性を担保するために記録すべき情報は?」→ コード・データ・環境・パラメータ
  • 「エイリアスとステージの違いは?」→ エイリアスは自由定義・複数付与可能、ステージは固定3種
  • 「モデルへの操作を監査するには?」→ UCのAudit Log(System Tables)

問題で確認

ML Professional

問題 1

MLチームが新しいモデルバージョンを学習した。本番デプロイ前に精度テスト・ドリフト検出・レイテンシチェックを通過させ、MLリードの承認を得てから本番推論で使用したい。UC Model Registryでこの昇格プロセスを実現する最も適切な方法はどれか。

  1. モデルを「Staging」ステージに移行し、テスト後に「Production」ステージに遷移させる
  2. 新バージョンに「Challenger」エイリアスを付与し、テスト通過後にMLリード承認を経て「Champion」エイリアスに付け替える
  3. モデルをDelta Sharingで別ワークスペースに共有し、テスト後にコピーする
  4. モデルのバージョン番号が偶数なら本番、奇数なら検証として運用する

正解: 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やメール通知を挟んで人間の承認後にエイリアスを付け替えます。

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

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.