Bird
Raised Fist0
MLOpsdevops~10 mins

Data drift detection 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 import the library used for data drift detection.

MLOps
from evidently.[1] import Report
Drag options to blanks, or click blank then click option'
Adashboard
Bdrift
Cmetrics
Dreport
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'dashboard' which is for visual display, not report generation.
Using 'metrics' which is for individual measurements, not full reports.
2fill in blank
medium

Complete the code to create a data drift report object.

MLOps
data_drift_report = [1](metrics=[DataDriftTable()])
Drag options to blanks, or click blank then click option'
ADashboard
BAnalyzer
CReport
DProfile
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'Dashboard' which is for interactive visualizations.
Using 'Profile' which is a different class for profiling data.
3fill in blank
hard

Fix the error in the code to run the data drift report on reference and current data.

MLOps
data_drift_report.[1](reference_data=ref_data, current_data=curr_data)
Drag options to blanks, or click blank then click option'
Arun
Bexecute
Cstart
Dlaunch
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'execute' which is not a method of the report object.
Using 'start' or 'launch' which do not exist in this context.
4fill in blank
hard

Fill both blanks to save the data drift report as an HTML file.

MLOps
with open('drift_report.[1]', '[2]') as f:
    f.write(data_drift_report.html())
Drag options to blanks, or click blank then click option'
Ahtml
Bw
Ctxt
Dr
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'txt' extension which is not suitable for HTML content.
Using 'r' mode which is for reading, not writing.
5fill in blank
hard

Fill all three blanks to create a dictionary of drift metrics filtered by threshold.

MLOps
drift_metrics = {k: v for k, v in data_drift_report.[1]().items() if v [2] [3]
Drag options to blanks, or click blank then click option'
Aas_dict
B>
C0.1
Drun
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'run' instead of 'as_dict' which is not a method to get dictionary data.
Using '<' instead of '>' which would filter the wrong values.

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