Bird
Raised Fist0
MLOpsdevops~20 mins

Evidently AI for monitoring in MLOps - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Evidently AI Monitoring Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding Evidently AI's primary purpose
What is the main function of Evidently AI in a machine learning workflow?
ATo train machine learning models faster using GPU acceleration
BTo monitor data and model performance over time to detect drift and anomalies
CTo deploy machine learning models as REST APIs automatically
DTo generate synthetic data for training machine learning models
Attempts:
2 left
💡 Hint
Think about what happens after a model is deployed and needs ongoing checks.
💻 Command Output
intermediate
2:00remaining
Evidently AI report generation output
What output will the following Evidently AI Python code produce?
MLOps
from evidently.dashboard import Dashboard
from evidently.tabs import DataDriftTab
import pandas as pd

reference_data = pd.DataFrame({'feature': [1, 2, 3, 4, 5]})
curr_data = pd.DataFrame({'feature': [1, 2, 2, 4, 5]})

dashboard = Dashboard(tabs=[DataDriftTab()])
dashboard.calculate(reference_data, curr_data)
result = dashboard.json()
print(result)
AA runtime error because DataDriftTab requires target data
BA SyntaxError due to missing import statements
CA JSON string summarizing data drift metrics showing slight drift in 'feature'
DAn empty JSON string because no drift is detected
Attempts:
2 left
💡 Hint
DataDriftTab compares distributions between reference and current data.
Configuration
advanced
2:30remaining
Configuring Evidently AI for model performance monitoring
Which configuration snippet correctly sets up Evidently AI to monitor model prediction quality with a threshold for accuracy drop?
A
from evidently.metric_preset import ClassificationPreset
from evidently import ColumnMapping

column_mapping = ColumnMapping(prediction='pred', target='target')
metrics = ClassificationPreset()
metrics.add_metric('accuracy', threshold=0.8)
B
from evidently.metric_preset import ClassificationPreset
from evidently import ColumnMapping

column_mapping = ColumnMapping(prediction='pred', target='target')
metrics = ClassificationPreset()
metrics.accuracy_threshold = 0.8
C
from evidently.metric_preset import ClassificationPreset
from evidently import ColumnMapping

column_mapping = ColumnMapping(prediction='pred', target='target')
metrics = ClassificationPreset(accuracy_threshold=0.8)
D
from evidently.metric_preset import ClassificationPreset
from evidently import ColumnMapping

column_mapping = ColumnMapping(prediction='pred', target='target')
metrics = ClassificationPreset()
metrics.add_accuracy_threshold(0.8)
Attempts:
2 left
💡 Hint
Look for the method that explicitly sets a threshold for accuracy in the preset.
Troubleshoot
advanced
2:00remaining
Diagnosing Evidently AI dashboard calculation error
You run Evidently AI's dashboard.calculate(reference_data, current_data) but get a KeyError: 'target'. What is the most likely cause?
AThe current_data or reference_data is missing the 'target' column required for metrics
BThe Python environment is missing the pandas package
CThe dashboard object was not initialized with the DataDriftTab tab
DEvidently AI requires the 'target' column to be named 'label' instead
Attempts:
2 left
💡 Hint
Check if your data frames contain all columns needed by the metrics.
🔀 Workflow
expert
3:00remaining
Optimal Evidently AI monitoring workflow integration
Which sequence correctly describes the best workflow to integrate Evidently AI monitoring into a CI/CD pipeline for ML models?
A1,2,3,4
B2,1,3,4
C1,3,2,4
D3,1,2,4
Attempts:
2 left
💡 Hint
Think about the logical order from data preparation to deployment to monitoring.

Practice

(1/5)
1. What is the main purpose of Evidently AI in ML model monitoring?
easy
A. To clean and preprocess raw data before training
B. To train new machine learning models automatically
C. To deploy ML models to production environments
D. To compare old and new data or predictions to detect changes

Solution

  1. Step 1: Understand Evidently AI's role

    Evidently AI is designed to monitor ML models by checking if data or predictions have changed over time.
  2. Step 2: Identify the main function

    It compares old and new data or predictions to detect data drift or performance issues.
  3. Final Answer:

    To compare old and new data or predictions to detect changes -> Option D
  4. Quick Check:

    Monitoring = Comparing data changes [OK]
Hint: Evidently AI checks data changes, not training or deployment [OK]
Common Mistakes:
  • Confusing monitoring with training models
  • Thinking Evidently deploys models
  • Assuming it preprocesses data
2. Which of the following is the correct way to create an Evidently dashboard with tabs for data drift and performance?
easy
A. dashboard = Dashboard(tabs=DataDriftTab(), PerformanceTab())
B. dashboard = Dashboard(tabs=[DataDriftTab(), PerformanceTab()])
C. dashboard = Dashboard(tabs=[PerformanceTab, DataDriftTab])
D. dashboard = Dashboard([DataDriftTab(), PerformanceTab()])

Solution

  1. Step 1: Review Evidently dashboard syntax

    The Dashboard class expects a list of tab instances passed as the tabs parameter.
  2. Step 2: Check correct instantiation

    Tabs must be instantiated with parentheses and passed as a list to the tabs argument.
  3. Final Answer:

    dashboard = Dashboard(tabs=[DataDriftTab(), PerformanceTab()]) -> Option B
  4. Quick Check:

    Tabs list with instances = dashboard = Dashboard(tabs=[DataDriftTab(), PerformanceTab()]) [OK]
Hint: Tabs must be instances inside a list assigned to tabs parameter [OK]
Common Mistakes:
  • Passing classes instead of instances
  • Not using a list for tabs
  • Incorrect argument syntax
3. Given the following code snippet, what will be the output type of report.save_html('report.html')?
from evidently.dashboard import Dashboard
from evidently.tabs import DataDriftTab

dashboard = Dashboard(tabs=[DataDriftTab()])
report = dashboard.calculate(reference_data, current_data)
report.save_html('report.html')
medium
A. A new HTML file named 'report.html' is created with the dashboard report
B. An error because save_html() returns a string, not a file
C. The report is printed to the console instead of saved
D. Nothing happens because save_html() is not a valid method

Solution

  1. Step 1: Understand save_html() method

    The save_html() method saves the dashboard report as an HTML file to the given path.
  2. Step 2: Analyze the code behavior

    Calling report.save_html('report.html') creates a file named 'report.html' containing the report content.
  3. Final Answer:

    A new HTML file named 'report.html' is created with the dashboard report -> Option A
  4. Quick Check:

    save_html() saves file = A new HTML file named 'report.html' is created with the dashboard report [OK]
Hint: save_html() writes an HTML file, does not print or error [OK]
Common Mistakes:
  • Thinking save_html() returns a string
  • Expecting console output instead of file
  • Assuming save_html() is invalid
4. You wrote this code but get an error: TypeError: 'Dashboard' object is not callable. What is the likely cause?
dashboard = Dashboard(tabs=[DataDriftTab(), PerformanceTab()])
report = dashboard(reference_data, current_data)
medium
A. You forgot to import DataDriftTab
B. Tabs must be strings, not instances
C. You should call dashboard.calculate() instead of dashboard()
D. You need to instantiate PerformanceTab with parameters

Solution

  1. Step 1: Identify the error cause

    The error says Dashboard object is not callable, meaning dashboard() is invalid syntax.
  2. Step 2: Correct method to generate report

    To get a report, you must call dashboard.calculate(reference_data, current_data), not dashboard().
  3. Final Answer:

    You should call dashboard.calculate() instead of dashboard() -> Option C
  4. Quick Check:

    Use calculate() method to get report [OK]
Hint: Dashboard object is not callable means missing .calculate() [OK]
Common Mistakes:
  • Calling dashboard() directly instead of .calculate()
  • Assuming tabs must be strings
  • Thinking imports cause this error
5. You want to monitor a model's prediction quality over time using Evidently AI. Which combination of tabs should you include in your dashboard to track data drift and model performance together?
hard
A. DataDriftTab and ClassificationPerformanceTab
B. DataQualityTab and RegressionPerformanceTab
C. DataDriftTab and DataQualityTab
D. RegressionPerformanceTab and ClassificationPerformanceTab

Solution

  1. Step 1: Identify tabs for data drift and performance

    DataDriftTab monitors changes in input data distribution. ClassificationPerformanceTab tracks model prediction quality for classification tasks.
  2. Step 2: Choose correct combination for monitoring

    To monitor both data drift and model performance for classification, use DataDriftTab and ClassificationPerformanceTab together.
  3. Final Answer:

    DataDriftTab and ClassificationPerformanceTab -> Option A
  4. Quick Check:

    Data drift + classification performance = DataDriftTab and ClassificationPerformanceTab [OK]
Hint: Match tabs to task: DataDrift + ClassificationPerformance for classification [OK]
Common Mistakes:
  • Mixing performance tabs for regression with classification
  • Using DataQualityTab instead of DataDriftTab
  • Choosing two performance tabs without data drift