Monitor deployed models in Domino including drift detection, model quality tracking, and alerting. Covers data drift analysis, prediction capture, baseline comparison, alert configuration, and remediation workflows. Use when monitoring production models, detecting drift, or setting up model health alerts.
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/model-monitoring/SKILL.mdThis skill helps users monitor deployed models in Domino, including drift detection, model quality tracking, and alerting.
Activate this skill when users want to:
Domino Model Monitoring provides:
# Training data provides baseline for drift detection
# Upload via UI or programmatically
import pandas as pd
# Your training data
train_df = pd.read_csv("training_data.csv")
# Save for monitoring setup
train_df.to_csv("/mnt/artifacts/training_data.csv", index=False)| Drift Type | Description |
|---|---|
| Data Drift | Input feature distributions change |
| Concept Drift | Relationship between inputs and outputs changes |
| Prediction Drift | Output distribution changes |
Domino supports multiple drift detection tests:
| Test | Best For |
|---|---|
| Kullback-Leibler Divergence | General-purpose, most common |
| Population Stability Index (PSI) | Finance industry standard |
| Wasserstein Distance | Comparing distributions |
| Energy Distance | Multivariate distributions |
| Test | Low Drift | Medium Drift | High Drift |
|---|---|---|---|
| KL Divergence | < 0.1 | 0.1 - 0.2 | > 0.2 |
| PSI | < 0.1 | 0.1 - 0.25 | > 0.25 |
Domino automatically captures predictions:
import pandas as pd
# Predictions captured in Domino Dataset
predictions_df = pd.read_parquet(
"/mnt/data/model-predictions/predictions.parquet"
)
print(predictions_df.head())If you provide ground truth labels:
# Upload ground truth
ground_truth = pd.DataFrame({
"prediction_id": [...],
"actual_label": [...]
})
# Upload to monitoring
ground_truth.to_csv("/mnt/artifacts/ground_truth.csv", index=False)Click the bell icon next to features to exclude from alerts.
Go to Model API > Monitoring to see:
# Export monitoring data for custom analysis
import pandas as pd
drift_report = pd.read_csv("/mnt/data/monitoring/drift_report.csv")
print(drift_report)# When drift is detected, retrain with recent data
from sklearn.ensemble import RandomForestClassifier
# Load recent data
recent_data = pd.read_csv("/mnt/data/recent_predictions.csv")
# Combine with ground truth
training_data = merge_with_ground_truth(recent_data)
# Retrain
model = RandomForestClassifier()
model.fit(training_data[features], training_data[label])
# Deploy new version
joblib.dump(model, "/mnt/artifacts/model_v2.joblib")Set up scheduled job to retrain when drift detected:
# scheduled_retrain.py
from domino import Domino
domino = Domino("project/model-project")
# Check drift status
drift_status = check_drift_metrics()
if drift_status["max_drift"] > 0.2:
# Trigger retrain job
domino.runs_start(
command="python retrain.py",
hardware_tier_name="medium"
)Use clean, representative training data for baseline.
Focus on features with highest importance:
# Identify important features
importances = model.feature_importances_
top_features = sorted(
zip(feature_names, importances),
key=lambda x: x[1],
reverse=True
)[:10]Not all drift requires action:
Schedule periodic monitoring reviews:
d86698d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.