CertSafari
    Databricks Certified Machine Learning Professional· Lessons

    Domain 2 · Lesson 8/11

    Selecting and Promoting the Best Model in Automated Retraining

    Automated Retraining

    9 min read
    9.09% of exam
    4 sources
    Published 3 Oct 2026
    Docs as of 30 Sep 2026

    What you will be able to do

    • Limit production tuning to proven options and register only the best MLflow run
    • Gate a retrained model with validation checks before giving it the Challenger alias
    • Compare Challenger with Champion offline or online and promote it by updating the alias
    • Automate validation and promotion with model update triggers and deployment jobs

    1.Narrowing candidates to one registered version

    A retraining run often produces several candidates, for example one per hyperparameter setting. During development, data scientists may try many algorithms and hyperparameters. Production code should be narrower: it's common to consider only the top-performing options. Limiting tuning this way saves time and can reduce the variance that tuning adds to automated retraining. If data scientists have already chosen good hyperparameters, the production pipeline can run with that set, typically supplied as a configuration file. Evaluation then uses the metrics the data scientists specified during development, which may include custom code.

    When several runs are logged, select the winner by the evaluation metric and register only that run. The getting-started example sorts runs by test AUC and breaks ties by recency.

    Selecting the best MLflow run by a metric, with the most recent run winning tiespython
    # Sort runs by their test auc. In case of ties, use the most recent run.
    best_run = mlflow.search_runs(
      order_by=['metrics.test_auc DESC', 'start_time DESC'],
      max_results=10,
    ).iloc[0]

    Checkpoint 1 of 6· Fill the gap

    Which call turns the best run into a new model version in Unity Catalog?

    model_uri = 'runs:/{run_id}/model'.format(
        run_id=best_run.run_id
      )
    
    mlflow. ? (model_uri, f"{CATALOG_NAME}.{SCHEMA_NAME}.wine_quality_model")

    Sources12

    2.Validation gate and the Challenger alias

    The training task yields a model URI, and task values pass that URI to the validation task. The validation pipeline loads the version from Unity Catalog and runs checks that depend on your organization: basic format and metadata validation, performance on selected data slices, and compliance with organizational requirements such as tags or documentation. Its main job is to decide whether the model moves on to deployment.

    If every check passes, the version gets the Challenger alias in Unity Catalog. If any check fails, the process exits and users can be notified automatically. Tags record the outcome. For example, a model_validation_status tag can be set to PENDING while checks run and then updated to PASSED or FAILED. Either way, results are recorded on the version in the production catalog, so data scientists can load a failed version and investigate.

    Checkpoint 2 of 6· Put it in order

    Put the automated retraining stages in order, from new data to a model that is ready for comparison.

    1. 1.Run validation checks on the registered version
    2. 2.Assign the Challenger alias if all checks pass
    3. 3.Evaluate on held-out production data and log results to MLflow Tracking
    4. 4.Train and tune on production catalog tables
    5. 5.Register the model version in the production catalog in Unity Catalog

    Sources1

    3.Challenger versus Champion

    Before the new model is deployed, confirm that it performs at least as well as the current production model, which holds the Champion alias. The comparison can be offline or online. An offline comparison scores both models on a held-out dataset and tracks the results in MLflow. For real-time serving you might run longer online comparisons, such as A/B tests or a gradual rollout. One Model Serving endpoint can host several models with a traffic split between them, and Model Serving and data profiling can collect and monitor the endpoint's inference tables. If the Challenger wins, it takes the Champion alias. If there is no Champion yet, compare the Challenger with a business heuristic or another threshold. The flow can run fully automated. If you need manual approval, add workflow notifications or CI/CD callbacks.

    Offline and online Challenger comparison
    AspectOffline comparisonOnline comparison
    Data usedA held-out datasetLive request and response data captured in endpoint inference tables
    Typical formBoth models evaluated, results tracked in MLflow TrackingA/B test or gradual rollout, using an endpoint traffic split
    DurationSingle evaluation runLonger running

    Promotion is just an alias update. Inference pipelines load whichever version currently holds the Champion alias, so when the alias moves, they automatically use the new version on their next run. This separates deployment from inference. For real-time serving, Model Serving updates an existing endpoint with zero downtime and keeps the old configuration running until the new one is ready.

    Checkpoint 3 of 6· Exam question

    An engineering team maintains a Delta table of cleaned transaction features that a nightly ETL job refreshes with new rows. A separate retraining job should start automatically only after that feature table has actually been updated, and should not run at all on days when the ETL job produces no new commits. Which trigger configuration satisfies this?

    Checkpoint 4 of 6· Check yourself

    An automated pipeline produces the first validated version of a brand-new model. There is no Champion yet. What should the promotion step compare it against?

    Sources1

    4.Automating evaluation, approval and rollout

    Two features chain these steps without polling. Model update triggers (Beta) start a job when a Unity Catalog model changes. They can be scoped to one model, a schema, or a metastore, and their conditions are *Model is created*, *Model version is ready*, or *Model alias is set* (up to 10 aliases). The changes reach the run through {{job.trigger.model.updates}}.

    MLflow 3 deployment jobs (Public Preview) start automatically whenever a new model version is created. A simple deployment job has three tasks: evaluation, which calls mlflow.evaluate; approval; and deployment to a Model Serving endpoint. The job needs job-level parameters model_name and model_version. Databricks recommends a maximum of one concurrent run, which is the default, to prevent deployment race conditions. It also recommends a minimal-permission service principal as Run As, because the job runs with the model owner's credentials. A more cautious version adds tasks after approval: deploy to 1%, deploy to 10%, collect and check metrics, decide whether to proceed or roll back, then go to 100% or roll back.

    Checkpoint 5 of 6· Match them up

    Match each model update trigger condition to the automation it suits best.

    Tap a term, then the definition that fits it.

    Checkpoint 6 of 6· Exam question

    A platform team wants a separate evaluation Workflow to kick off automatically the moment any new version of a specific registered model becomes ready in Unity Catalog, so results are available before anyone manually assigns an alias. Which Databricks Jobs trigger type is designed for this?

    Sources34

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 1.Production retraining should repeat the full hyperparameter search from development so every run finds the global best.Why is that wrong?

      Production training code usually considers only the top-performing options. That saves time and can reduce the variance tuning adds to automated retraining.

      Covered in Narrowing candidates to one registered version

    2. 2.After the Champion alias moves to a new version, every batch inference pipeline has to be edited and redeployed to use it.Why is that wrong?

      Inference pipelines load the model by alias. They pick up the new Champion version on their next execution, which decouples deployment from inference.

      Covered in Challenger versus Champion

    3. 3.Allowing several concurrent deployment job runs speeds up promotion when retraining registers versions quickly.Why is that wrong?

      Databricks recommends keeping the maximum concurrent runs at 1, the default, to avoid deployment race conditions.

      Covered in Automating evaluation, approval and rollout

    Sources

    Every claim above is drawn from one of these pages, quoted as it was written on the date shown.

    1. 1.
      “In the production training code, it's common to consider only the top-performing options.”
      ↩︎ Narrowing candidates to one registered version
      “typically included in the pipeline as a configuration file”
      ↩︎ Narrowing candidates to one registered version
      “basic format and metadata validations, performance evaluations on selected data slices, and compliance with organizational requirements”
      ↩︎ Validation gate and the Challenger alias
      “You can use tags to add key-value attributes depending on the outcome of these validation checks.”
      ↩︎ Validation gate and the Challenger alias
      “confirm that it performs at least as well as the current production model”
      ↩︎ Challenger versus Champion
      “An offline comparison evaluates both models against a held-out data set and tracks results using the MLflow Tracking server.”
      ↩︎ Challenger versus Champion
      “longer running online comparisons, such as A/B tests or a gradual rollout of the new model”
      ↩︎ Challenger versus Champion
      “Model Serving executes a zero-downtime update by keeping the existing configuration running until the new one is ready.”
      ↩︎ Challenger versus Champion
      “Limiting tuning in this way saves time and can reduce the variance from tuning in automated retraining.”
      ↩︎ Exam trap 1
      “the inference pipeline automatically uses the new version for its next execution”
      ↩︎ Exam trap 2
      “If the model does not pass all validation checks, the process exits and users can be automatically notified.”
      ↩︎ Checkpoint
      “to a business heuristic or other threshold as a baseline”
      ↩︎ Checkpoint
    2. 2.
      “Sort runs by their test auc. In case of ties, use the most recent run.”
      ↩︎ Narrowing candidates to one registered version
    3. 3.
      “they trigger automatically whenever a new model version is created”
      ↩︎ Automating evaluation, approval and rollout
      “deploy the model to 1%, deploy the model to 10%, collect and check metrics, decide whether to proceed or rollback”
      ↩︎ Automating evaluation, approval and rollout
      “Databricks also recommends setting the max concurrent run limit to 1 (the default) to prevent deployment race conditions.”
      ↩︎ Exam trap 3
    4. 4.
      “Model update triggers are in Beta.”
      ↩︎ Automating evaluation, approval and rollout
      “you can run validation, testing, or promotion jobs automatically whenever a model they own changes”
      ↩︎ Checkpoint

    Ready to test yourself?

    Practise the 32 questions on this subdomain.

    Spotted a mistake, or was something unclear? Tell us.