Bird
Raised Fist0
MLOpsdevops~10 mins

Model approval workflows in MLOps - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to approve a model version using MLflow.

MLOps
client = mlflow.tracking.MlflowClient()
client.[1](name="MyModel", version=1, stage="Production")
Drag options to blanks, or click blank then click option'
Adelete_model_version
Bget_model_version
Cregister_model
Dtransition_model_version_stage
Attempts:
3 left
💡 Hint
Common Mistakes
Using a method that deletes or registers instead of transitioning stage.
2fill in blank
medium

Complete the code to fetch approved model versions.

MLOps
client = mlflow.tracking.MlflowClient()
model_versions = client.search_model_versions("name = 'MyModel'")
approved_versions = [mv for mv in model_versions if mv.[1] == 'Production']
Drag options to blanks, or click blank then click option'
Acurrent_stage
Bversion
Crun_id
Dstatus
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'version' or 'status' which do not represent the stage.
3fill in blank
hard

Fix the error in the code to reject a model version by moving it to 'Archived' stage.

MLOps
client = mlflow.tracking.MlflowClient()
client.transition_model_version_stage(name="MyModel", version=2, stage=[1])
Drag options to blanks, or click blank then click option'
AArchived
B"Rejected"
C"Archived"
DRejected
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted stage names causing syntax errors.
Using wrong stage names like 'Rejected'.
4fill in blank
hard

Fill both blanks to create a dictionary of model versions with their stages for 'MyModel'.

MLOps
client = mlflow.tracking.MlflowClient()
model_versions = client.search_model_versions("name = 'MyModel'")
version_stage_map = { [1]: mv.[2] for mv in model_versions }
Drag options to blanks, or click blank then click option'
Amv.version
Bmv.current_stage
Cmv.stage
Dmv.id
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect attributes like 'mv.stage' or 'mv.id'.
5fill in blank
hard

Fill all three blanks to filter and list model versions in 'Staging' stage.

MLOps
client = mlflow.tracking.MlflowClient()
model_versions = client.search_model_versions("name = 'MyModel'")
staging_versions = [mv.[1] for mv in model_versions if mv.[2] == [3]]
Drag options to blanks, or click blank then click option'
Aversion
Bcurrent_stage
C"Staging"
Dstage
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong attributes or missing quotes around 'Staging'.

Practice

(1/5)
1. What is the main purpose of a model approval workflow in MLOps?
easy
A. To delete old models from storage
B. To train models faster using more data
C. To deploy models automatically without any checks
D. To check and approve machine learning models before they are used in production

Solution

  1. Step 1: Understand the role of model approval workflows

    Model approval workflows are designed to ensure models are reviewed and tested before use.
  2. Step 2: Identify the correct purpose

    The main goal is to check and approve models to keep production safe and reliable.
  3. Final Answer:

    To check and approve machine learning models before they are used in production -> Option D
  4. Quick Check:

    Model approval = safety check before use [OK]
Hint: Approval means checking before use, not training or deleting [OK]
Common Mistakes:
  • Confusing approval with training or deployment
  • Thinking approval deletes models
  • Assuming approval skips checks
2. Which of the following is the correct syntax to add a manual approval step in a typical MLOps pipeline YAML?
easy
A. steps: - approval_step: users: ['team_lead']
B. steps: - name: manual_approval type: approval inputs: approvers: ['team_lead']
C. steps: - manual_approval: approvers: 'team_lead'
D. steps: - name: approval type: manual approvers: team_lead

Solution

  1. Step 1: Review typical YAML structure for approval steps

    Approval steps usually have a name, type, and inputs including approvers as a list.
  2. Step 2: Match syntax with correct YAML format

    steps: - name: manual_approval type: approval inputs: approvers: ['team_lead'] correctly uses 'name', 'type', and 'inputs' with a list of approvers.
  3. Final Answer:

    steps: - name: manual_approval type: approval inputs: approvers: ['team_lead'] -> Option B
  4. Quick Check:

    Correct YAML keys and list format = steps: - name: manual_approval type: approval inputs: approvers: ['team_lead'] [OK]
Hint: Look for 'name', 'type', and list of approvers in YAML [OK]
Common Mistakes:
  • Using wrong keys like 'users' instead of 'approvers'
  • Not using list format for approvers
  • Incorrect indentation or missing 'type'
3. Given this simplified MLOps pipeline snippet, what will be the output status after running the approval step if the approver rejects the model?
steps:
  - name: train_model
    type: training
  - name: approve_model
    type: approval
    inputs:
      approvers: ['alice']
    on_reject: fail_pipeline
medium
A. Pipeline skips approval and deploys
B. Pipeline continues to deploy the model
C. Pipeline fails and stops immediately
D. Pipeline retries training automatically

Solution

  1. Step 1: Understand the approval step behavior

    The approval step waits for 'alice' to approve or reject the model.
  2. Step 2: Analyze the 'on_reject' action

    If rejected, the pipeline is set to 'fail_pipeline', which stops the process immediately.
  3. Final Answer:

    Pipeline fails and stops immediately -> Option C
  4. Quick Check:

    Reject triggers fail_pipeline = stop [OK]
Hint: 'on_reject: fail_pipeline' means stop on rejection [OK]
Common Mistakes:
  • Assuming pipeline continues after rejection
  • Thinking approval is skipped
  • Believing training retries automatically
4. You have this approval step configuration but the pipeline never pauses for approval. What is the likely error?
steps:
  - name: approve_model
    type: approval
    inputs:
      approvers: 'bob'
medium
A. Approvers should be a list, not a string
B. Missing 'type' field for approval step
C. Approval step name must be 'manual_approval'
D. Pipeline needs a trigger to pause

Solution

  1. Step 1: Check the 'approvers' format

    The 'approvers' field must be a list, e.g., ['bob'], not a plain string.
  2. Step 2: Understand impact of wrong format

    Using a string causes the pipeline to ignore the approval step or not pause.
  3. Final Answer:

    Approvers should be a list, not a string -> Option A
  4. Quick Check:

    Approvers list format required = Approvers should be a list, not a string [OK]
Hint: Approvers must be a list, even if one person [OK]
Common Mistakes:
  • Using string instead of list for approvers
  • Changing step name unnecessarily
  • Assuming pipeline triggers control pause
5. You want to create a model approval workflow that automatically approves models with accuracy above 90%, but requires manual approval otherwise. Which workflow design achieves this?
hard
A. Add an automatic test step checking accuracy, then a conditional approval step that auto-approves if accuracy > 90%, else manual approval
B. Only use manual approval for all models regardless of accuracy
C. Skip approval if accuracy is above 90%, else reject the model automatically
D. Deploy all models first, then ask for approval later

Solution

  1. Step 1: Define automatic test for accuracy

    Use a test step to check if model accuracy is above 90% automatically.
  2. Step 2: Set conditional approval based on test result

    If accuracy > 90%, auto-approve; otherwise, require manual approval to ensure safety.
  3. Final Answer:

    Add an automatic test step checking accuracy, then a conditional approval step that auto-approves if accuracy > 90%, else manual approval -> Option A
  4. Quick Check:

    Auto test + conditional approval = Add an automatic test step checking accuracy, then a conditional approval step that auto-approves if accuracy > 90%, else manual approval [OK]
Hint: Combine auto test with conditional manual approval [OK]
Common Mistakes:
  • Skipping manual approval for low accuracy models
  • Approving all models without checks
  • Approving after deployment instead of before