Model governance is the discipline of managing and controlling the entire lifecycle of ML models — answering the question "who deployed which model to production, when, and why?" In regulated industries such as finance, healthcare, and insurance, auditability of model decisions is often a legal requirement.
On Databricks, model governance is achieved by combining MLflow Tracking (reproducibility), Unity Catalog Model Registry (approval flow), and Unity Catalog audit logs (audit trail). This article walks through all three pillars and how to design them in practice.
| Pillar | Purpose | How Databricks delivers it |
|---|---|---|
| Approval flow | Enforce quality checks and approvals before production deployment | UC Model Registry + aliases (Champion/Challenger) + Webhooks |
| Audit trail | Record who changed what, and when | Unity Catalog Audit Log + MLflow Tracking run history |
| Reproducibility | Re-train and re-evaluate past models under identical conditions | MLflow Tracking (parameters, metrics, artifacts, environment info) |
UC Model Registry manages MLflow-trained models inside Unity Catalog's three-level namespace (catalog.schema.model_name). Compared with the legacy Workspace Model Registry, the key differences are:
import mlflow
# Register a model in 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")
# Assign an alias
from mlflow import MlflowClient
client = MlflowClient()
client.set_registered_model_alias(
name="prod_catalog.ml_schema.fraud_detector",
alias="Champion",
version=3
)| Alias | Use | Assignment criteria |
|---|---|---|
| Champion | Model version currently serving production traffic | All validation checks + approval passed |
| Challenger | Version being A/B tested as a Champion candidate | Basic validation passed + approval to start A/B test |
| Baseline | Reference version used as the comparison point for drift detection | Initial production model, or a designated reference model |
| Archived | Retired versions kept for reference | Previous version replaced by a new Champion |
Model reproducibility is guaranteed by recording these four elements:
| Element | How to record | How it is used at reproduction time |
|---|---|---|
| Code | mlflow.log_artifact() / Git integration (source code hash auto-captured) | Re-train using the same code |
| Data | Log the Delta table version (timestamp / version number) via log_param | Read the same data with spark.read.option("versionAsOf", N) |
| Environment | Automatic capture of conda.yaml / pip requirements.txt (MLflow Model Signature) | Rebuild the environment with the same library versions |
| Parameters | Automatically captured via mlflow.log_param() / autolog() | Re-train with the same hyperparameters |
Promoting a production model (Challenger → Champion) should follow an approval flow like this:
[Data Scientist]
│
├─ 1. Train model + record with MLflow Tracking
│ └─ mlflow.log_param / log_metric / log_model
│
├─ 2. Register in UC Model Registry
│ └─ mlflow.register_model("runs:/{run_id}/model", "catalog.schema.model")
│
├─ 3. Attach the Challenger alias
│ └─ client.set_registered_model_alias(..., "Challenger", version=N)
│
[CI/CD pipeline (automated)]
│
├─ 4. Run validation tests
│ ├─ Accuracy threshold (AUC > 0.85)
│ ├─ Data drift detection
│ ├─ Latency requirement (p99 < 100ms)
│ └─ Fairness / bias checks
│
├─ 5. Record test results in the MLflow run
│
[ML lead / risk officer (manual approval)]
│
├─ 6. Review test results, approve or reject
│
├─ 7. On approval, swap the Champion alias
│ └─ client.set_registered_model_alias(..., "Champion", version=N)
│
└─ 8. Move the previous Champion to ArchivedThe Unity Catalog audit log automatically records the following operations against a model:
These logs are queryable via the audit_logs table in System Tables, so you can retroactively trace "who promoted which model version to Champion, and when." This is the evidence required for model risk management and other regulatory compliance regimes (e.g., SR 11-7).
ML Professional
問題 1
An ML team just trained a new model version. Before production deployment, it must pass accuracy tests, drift detection, and latency checks, and then receive ML lead approval before serving production traffic. What is the most appropriate way to implement this promotion process in UC Model Registry?
正解: B
UC Model Registry uses aliases — not stages — to manage promotion. The standard pattern is to run tests under the Challenger alias and, once every validation check passes, swap the Champion alias to the new version. The Staging/Production stages in option A are a legacy Workspace Model Registry feature and are deprecated in the UC version.
What is the difference between UC Model Registry 'aliases' and the legacy Workspace 'stages'?
In the legacy Workspace Model Registry, every model version was assigned one of three fixed stages: Staging, Production, or Archived. UC Model Registry replaces stages with freely-defined aliases (e.g., Champion / Challenger / Baseline). Aliases can be applied to multiple versions at once and named however you like, which makes flexible workflows such as A/B testing straightforward. Stage transitions were heavyweight state changes, whereas swapping an alias is a lightweight pointer move.
What is the minimum information you should log with MLflow Tracking?
For reproducibility you should log at least these four things: (1) hyperparameters (mlflow.log_param), (2) evaluation metrics (mlflow.log_metric), (3) the version or path of the training data, and (4) the runtime dependency information (pip requirements / conda env). Enabling mlflow.autolog() captures all of this automatically for frameworks like scikit-learn, XGBoost, and PyTorch.
How can I automate the model approval flow?
You can automate it by combining Databricks Workflows, Webhooks, and the MLflow API. The flow looks like this: (1) when a new model version is registered, a webhook triggers the CI/CD pipeline, (2) the pipeline runs validation tests (accuracy thresholds, data drift detection, A/B test results), and (3) if every check passes, the MLflow API moves the Champion alias to the new version. When manual approval is required, insert a Slack or email notification step so a human can sign off before the alias is moved.
Practice with certification-focused question sets
無料で問題を解いてみるNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
Databricks Certifications: All 7 Exams, Difficulty & Study Plan (2026)
Complete guide to all 7 Databricks certifications — Data Eng...
Databricks Exam Difficulty Ranking: All 7 Certs Compared (2026)
Every Databricks certification ranked by difficulty, with st...
Databricks Study Guide: Fastest Pass Route & Time Estimates (2026)
How to pass Databricks certifications efficiently. Official ...
Databricks Data Engineer Associate: Complete Guide (2026)
Domain-by-domain breakdown of the Databricks Certified Data ...
Databricks Data Engineer Professional: Complete Guide (2026)
Tactics for the Databricks Certified Data Engineer Professio...