Bird
Raised Fist0
MLOpsdevops~5 mins

Why models degrade in production in MLOps - Why It Works

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
Introduction
Machine learning models can perform well during testing but start making worse predictions when used in real life. This happens because the environment or data changes after the model is deployed. Understanding why models degrade helps keep them accurate and useful.
When your model's accuracy drops after deployment even though it worked well during training
When new types of data appear that the model has never seen before
When the real-world environment changes, like customer behavior or sensor conditions
When you want to monitor and maintain your model's performance over time
When you need to plan retraining or updating your model to keep it reliable
Commands
Starts the MLflow tracking server to monitor model performance and metrics over time in a web interface.
Terminal
mlflow ui
Expected OutputExpected
2024/06/01 12:00:00 Starting MLflow UI at http://127.0.0.1:5000
--port - Specify the port number for the UI server
Creates a new MLflow experiment to organize runs and track model performance data.
Terminal
mlflow experiments create --experiment-name model-monitoring
Expected OutputExpected
Created experiment with ID 1
Runs the MLflow project with specific parameters to train or retrain the model and log metrics for comparison.
Terminal
mlflow run . -P alpha=0.01 -P l1_ratio=0.5
Expected OutputExpected
2024/06/01 12:05:00 Run completed with status FINISHED Metrics logged: accuracy=0.85
-P - Pass parameters to the MLflow project
Lists the metrics logged for a specific run to check model performance and detect degradation.
Terminal
mlflow metrics list --run-id 1234567890abcdef
Expected OutputExpected
accuracy: 0.85 loss: 0.35
Key Concept

If you remember nothing else, remember: models degrade because the data or environment changes after deployment, so continuous monitoring and retraining are essential.

Common Mistakes
Ignoring changes in input data distribution after deployment
The model sees data different from training, causing poor predictions
Set up monitoring to detect data drift and retrain the model regularly
Not logging model performance metrics during production
Without metrics, you cannot know when the model is degrading
Use tools like MLflow to track and compare model metrics continuously
Assuming a model trained once will work forever
Real-world conditions change, so the model needs updates
Plan for periodic retraining and validation with fresh data
Summary
Models degrade in production because the data or environment changes over time.
Use MLflow to track model performance and detect degradation early.
Regular retraining and monitoring keep models accurate and reliable.

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