Bird
Raised Fist0
MLOpsdevops~10 mins

Why models degrade in production in MLOps - Test Your Understanding

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 identify the main cause of model degradation in production.

MLOps
if data_distribution_changes == [1]:
    alert('Model performance may degrade')
Drag options to blanks, or click blank then click option'
ATrue
BFalse
CNone
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using False instead of True
Using None which is not a boolean
2fill in blank
medium

Complete the code to log model accuracy drop in production.

MLOps
if current_accuracy [1] baseline_accuracy:
    log('Accuracy dropped')
Drag options to blanks, or click blank then click option'
A>=
B!=
C<
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using >= which means accuracy improved or stayed same
Using == which only detects equality
3fill in blank
hard

Fix the error in the code that checks for data drift.

MLOps
if detect_data_drift() [1]:
    retrain_model()
Drag options to blanks, or click blank then click option'
Ais False
B!=
C== None
Dis True
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'is False' which means no drift
Using '== None' which is incorrect for booleans
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that tracks feature importance changes above a threshold.

MLOps
importance_changes = {feature: importance[1]old_importance for feature, importance in new_importances.items() if importance[1]old_importance [2] threshold}
Drag options to blanks, or click blank then click option'
A-
B>
C<
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' instead of '-' for difference
Using '<' which filters smaller changes
5fill in blank
hard

Fill all three blanks to create a filtered dictionary of features with significant importance drop.

MLOps
significant_drops = { [1]: [2] for [3], importance in old_importances.items() if importance - new_importances.get([1], 0) > 0.1 }
Drag options to blanks, or click blank then click option'
Afeature
Bimportance
Dfeat
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names causing errors
Mixing up keys and values

Practice

(1/5)
1. Why do machine learning models often degrade when deployed in production?
easy
A. Because the model code is always incorrect
B. Because the data or environment changes over time
C. Because production servers are slower
D. Because models never work outside training

Solution

  1. Step 1: Understand model dependency on data

    Models learn patterns from training data, so if data changes, predictions may worsen.
  2. Step 2: Recognize environment changes

    Changes in user behavior or system environment can cause model performance to drop.
  3. Final Answer:

    Because the data or environment changes over time -> Option B
  4. Quick Check:

    Model degradation = data/environment change [OK]
Hint: Models degrade when input data changes from training data [OK]
Common Mistakes:
  • Thinking model code is always wrong
  • Blaming server speed for model errors
  • Assuming models never work outside training
2. Which of the following is a correct way to monitor model degradation in production?
easy
A. Stop collecting new data after deployment
B. Ignore model outputs and trust initial accuracy
C. Only retrain the model once a year
D. Track model performance metrics regularly

Solution

  1. Step 1: Identify monitoring best practice

    Regularly tracking metrics like accuracy or error helps detect degradation early.
  2. Step 2: Eliminate poor practices

    Ignoring outputs or stopping data collection prevents noticing problems timely.
  3. Final Answer:

    Track model performance metrics regularly -> Option D
  4. Quick Check:

    Monitoring = track metrics regularly [OK]
Hint: Monitor metrics often to catch degradation early [OK]
Common Mistakes:
  • Ignoring model outputs after deployment
  • Waiting too long to retrain
  • Stopping data collection
3. Consider this code snippet monitoring model accuracy over time:
accuracies = [0.95, 0.93, 0.88, 0.85, 0.80]
if accuracies[-1] < 0.85:
    alert = True
else:
    alert = False
print(alert)
What will be the output and what does it indicate?
medium
A. True; model accuracy dropped below threshold
B. False; model accuracy is stable
C. Error; syntax mistake in code
D. True; model accuracy improved

Solution

  1. Step 1: Check last accuracy value

    The last accuracy is 0.80, which is less than 0.85 threshold.
  2. Step 2: Evaluate condition and output

    Since 0.80 < 0.85, alert is set to True and printed.
  3. Final Answer:

    True; model accuracy dropped below threshold -> Option A
  4. Quick Check:

    Last accuracy < threshold = True alert [OK]
Hint: Check last accuracy value against threshold [OK]
Common Mistakes:
  • Confusing less than with greater than
  • Assuming code has syntax error
  • Thinking True means improvement
4. You have this monitoring code snippet:
accuracy = 0.82
if accuracy <= 0.8:
    print("Retrain model")
else:
    print("Model OK")
But the model is degrading and you want retraining to trigger at 0.85 accuracy or below. What is the fix?
medium
A. Remove else block
B. Change print statements order
C. Change condition to accuracy <= 0.85
D. Change accuracy variable to 0.9

Solution

  1. Step 1: Identify current threshold

    Current code triggers retrain only if accuracy is 0.8 or less.
  2. Step 2: Adjust threshold to 0.85

    Change condition to accuracy <= 0.85 to retrain earlier.
  3. Final Answer:

    Change condition to accuracy <= 0.85 -> Option C
  4. Quick Check:

    Retrain threshold = 0.85 [OK]
Hint: Update condition threshold to desired retrain point [OK]
Common Mistakes:
  • Changing print order doesn't affect logic
  • Removing else block won't fix threshold
  • Changing accuracy value ignores real data
5. A deployed model's accuracy drops because the input data distribution changed. Which combined approach best addresses this degradation?
hard
A. Monitor performance, retrain with new data, and update deployment
B. Switch to a simpler model without monitoring
C. Retrain only when users complain
D. Ignore changes and keep using the model

Solution

  1. Step 1: Recognize need for monitoring

    Monitoring detects when model accuracy drops due to data changes.
  2. Step 2: Retrain and update model

    Retraining with new data adapts model to current distribution; redeploy updated model.
  3. Final Answer:

    Monitor performance, retrain with new data, and update deployment -> Option A
  4. Quick Check:

    Monitor + retrain + update = best practice [OK]
Hint: Combine monitoring, retraining, and deployment updates [OK]
Common Mistakes:
  • Ignoring data changes
  • Waiting for complaints before retraining
  • Dropping monitoring leads to unnoticed failures