Bird
Raised Fist0
MLOpsdevops~10 mins

Data drift detection in MLOps - Commands & Configuration

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
Data drift detection helps you find when the data your machine learning model sees changes over time. This is important because changes in data can make your model less accurate and reliable.
When your model is deployed and you want to check if new data is different from training data.
When you want to alert your team if the input data changes unexpectedly.
When you want to decide if your model needs retraining due to data changes.
When monitoring data quality in production pipelines.
When comparing data distributions between different time periods.
Commands
This command installs the Evidently library, which helps detect data drift easily in Python.
Terminal
pip install evidently
Expected OutputExpected
Collecting evidently Downloading evidently-0.3.43-py3-none-any.whl (123 kB) Installing collected packages: evidently Successfully installed evidently-0.3.43
This runs a Python script that compares new data with reference data to detect drift and prints a report.
Terminal
python detect_drift.py
Expected OutputExpected
Data drift detected: True Drift score: 0.35 Report saved to drift_report.html
Key Concept

If you remember nothing else from this pattern, remember: detecting data drift early helps keep your model accurate and trustworthy.

Code Example
MLOps
from evidently.dashboard import Dashboard
from evidently.tabs import DataDriftTab
import pandas as pd

# Load reference and new data
reference_data = pd.read_csv('reference_data.csv')
new_data = pd.read_csv('new_data.csv')

# Create a dashboard for data drift
dashboard = Dashboard(tabs=[DataDriftTab()])
dashboard.calculate(reference_data, new_data)

# Save the report to an HTML file
dashboard.save('drift_report.html')

# Simple drift check example
from evidently.metrics import DataDriftMetric
metric = DataDriftMetric()
result = metric.calculate(reference_data, new_data)
print(f"Data drift detected: {result['metrics']['dataset_drift']}")
print(f"Drift score: {result['metrics']['drift_score']}")
OutputSuccess
Common Mistakes
Not comparing new data to a proper reference dataset.
Without a good baseline, drift detection results are meaningless or misleading.
Always use a clean, representative dataset from training or a stable period as reference.
Ignoring drift alerts and not acting on them.
Ignoring drift can cause your model to make wrong predictions over time.
Set up alerts and retraining pipelines to respond to detected drift.
Summary
Install the Evidently library to enable data drift detection in Python.
Prepare a reference dataset and new data to compare.
Run a script that calculates and reports data drift.
Use the report to monitor data changes and decide when to retrain models.

Practice

(1/5)
1. What is the main purpose of data drift detection in MLOps?
easy
A. To reduce the size of the dataset
B. To check if new data differs significantly from the training data
C. To improve the speed of model training
D. To increase the number of features in the model

Solution

  1. Step 1: Understand data drift concept

    Data drift means the new data changes compared to the data used to train the model.
  2. Step 2: Identify the purpose of detection

    Detecting data drift helps decide when to retrain or update the model to keep it accurate.
  3. Final Answer:

    To check if new data differs significantly from the training data -> Option B
  4. Quick Check:

    Data drift detection = check data difference [OK]
Hint: Data drift means new data changes from old data [OK]
Common Mistakes:
  • Confusing data drift with model speed optimization
  • Thinking data drift reduces dataset size
  • Assuming data drift adds features
2. Which Python library is commonly used for detecting data drift in MLOps?
easy
A. Flask
B. NumPy
C. Matplotlib
D. Evidently

Solution

  1. Step 1: Recall common MLOps tools

    Evidently is a popular tool designed specifically for monitoring data and model drift.
  2. Step 2: Differentiate from other libraries

    NumPy is for math, Matplotlib for plotting, Flask for web apps, not for drift detection.
  3. Final Answer:

    Evidently -> Option D
  4. Quick Check:

    Evidently = data drift detection tool [OK]
Hint: Evidently is made for data drift detection [OK]
Common Mistakes:
  • Choosing NumPy or Matplotlib which are not for drift detection
  • Confusing Flask as a data tool
3. Given the code snippet using Evidently, what will report.run(reference_data, current_data) do?
medium
A. Visualize the model architecture
B. Train a new model on current_data
C. Compare current_data with reference_data to detect data drift
D. Delete old data from the system

Solution

  1. Step 1: Understand Evidently report usage

    The run method compares new data (current_data) against reference data to find differences.
  2. Step 2: Identify the purpose of the method

    It does not train models, visualize architecture, or delete data; it detects data drift.
  3. Final Answer:

    Compare current_data with reference_data to detect data drift -> Option C
  4. Quick Check:

    report.run compares data for drift [OK]
Hint: report.run compares new vs reference data [OK]
Common Mistakes:
  • Thinking it trains a model
  • Assuming it visualizes model structure
  • Believing it deletes data
4. You wrote this code to detect data drift but get an error:
from evidently.dashboard import Dashboard
dashboard = Dashboard(tabs=["data_drift"])
dashboard.run(current_data)
What is the likely mistake?
medium
A. Missing reference data argument in dashboard.run()
B. Incorrect import statement for Dashboard
C. Dashboard does not support data_drift tab
D. current_data is not a valid variable name

Solution

  1. Step 1: Check Dashboard.run() method requirements

    Dashboard.run() requires both reference and current datasets to compare for drift.
  2. Step 2: Identify missing argument

    Only current_data is passed; reference_data is missing, causing the error.
  3. Final Answer:

    Missing reference data argument in dashboard.run() -> Option A
  4. Quick Check:

    Dashboard.run needs reference and current data [OK]
Hint: Dashboard.run needs two datasets: reference and current [OK]
Common Mistakes:
  • Assuming import is wrong
  • Thinking data_drift tab is unsupported
  • Believing variable name causes error
5. You want to automate retraining your model when data drift is detected. Which approach best fits this goal?
hard
A. Set up a monitoring pipeline that runs data drift detection daily and triggers retraining if drift is found
B. Retrain the model every week regardless of data changes
C. Manually check data drift reports and retrain when you have time
D. Ignore data drift and only retrain when model accuracy drops

Solution

  1. Step 1: Understand automation in MLOps

    Automating retraining based on data drift ensures the model stays accurate without manual checks.
  2. Step 2: Identify best practice

    Running daily drift detection and triggering retraining only when drift occurs is efficient and effective.
  3. Final Answer:

    Set up a monitoring pipeline that runs data drift detection daily and triggers retraining if drift is found -> Option A
  4. Quick Check:

    Automate retrain on drift detection = best practice [OK]
Hint: Automate retrain triggered by drift detection [OK]
Common Mistakes:
  • Retraining blindly without checking data
  • Relying on manual checks only
  • Ignoring drift until accuracy drops