This guide walks you through running your first evaluation using the ML Systems Evaluation Framework.
- 📦 Framework installed (see Installation Guide)
- 📊 Access to your ML system's data
- 🏗️ Basic understanding of your system's architecture
Start with an example configuration that matches your industry:
# Copy an existing example configuration
cp examples/industries/manufacturing/predictive-maintenance.yaml config.yaml
# Or create a new configuration
ml-eval create-config --output config.yaml --system-name "My System" --industry manufacturingEdit the generated configuration file to point to your data:
# config.yaml
data_sources:
- name: "my_data"
type: "database" # or "file", "api", etc.
connection: "postgresql://user:pass@localhost/my_db"
tables: ["predictions", "actuals", "metadata"]Configure what metrics to collect:
collectors:
- name: "performance_metrics"
type: "offline"
data_source: "my_data"
metrics: ["accuracy", "precision", "recall", "f1_score"]
- name: "drift_metrics"
type: "offline"
data_source: "my_data"
features: ["feature_1", "feature_2", "feature_3"]Configure how to evaluate your system:
evaluators:
- name: "performance_evaluator"
type: "performance"
thresholds:
accuracy: 0.95
precision: 0.90
recall: 0.85
- name: "drift_evaluator"
type: "drift"
detection_method: "statistical"
sensitivity: 0.05Set your Service Level Objectives:
slo:
availability: 0.999
accuracy: 0.95
latency_p95: 100 # millisecondsExecute the evaluation:
# Validate configuration first
ml-eval validate config.yaml
# Run complete evaluation
ml-eval run config.yaml --output results.json
# Run specific components
ml-eval collect config.yaml --output data.json
ml-eval evaluate config.yaml --data data.json --output evaluation.jsonCheck the generated reports:
# Generate reports from results
ml-eval report config.yaml --results results.json --output reports.json
# View results (results are in JSON format)
cat reports.json- 📊 Accuracy: Overall prediction accuracy
- 🎯 Precision: True positive rate
- 🔍 Recall: Sensitivity of the model
- 📈 Drift Score: Data distribution changes
- ⚡ Latency: Response time percentiles
The framework alerts you when:
- 📉 Performance metrics fall below thresholds
- 📊 Data drift is detected
- 🔴 System availability drops
- 📋 Compliance violations occur
- ⚙️ Customize Configuration: Adapt to your specific needs
- 📊 Set Up Monitoring: Configure continuous monitoring
- 📋 Define SLOs: Establish Service Level Objectives
- 📈 Create Dashboards: Visualize your metrics
- 🚨 Set Up Alerts: Configure notification systems
Here's a complete example for a manufacturing quality control system:
# manufacturing-quality.yaml
system:
name: "PCB Quality Control"
criticality: "business-critical"
data_sources:
- name: "quality_data"
type: "database"
connection: "postgresql://user:pass@localhost/pcb_quality"
tables: ["inspection_results", "defect_logs"]
collectors:
- name: "quality_metrics"
type: "offline"
data_source: "quality_data"
metrics: ["accuracy", "false_positive_rate", "false_negative_rate"]
evaluators:
- name: "quality_performance"
type: "performance"
thresholds:
accuracy: 0.98
false_positive_rate: 0.01
false_negative_rate: 0.005
- name: "quality_drift"
type: "drift"
detection_method: "ks_test"
features: ["component_size", "solder_quality", "placement_accuracy"]
reports:
- name: "quality_report"
type: "business"
format: "html"🚨 Issue: "No data found"
- ✅ Solution: Verify your data source configuration and connection
🚨 Issue: "Evaluation failed"
- ✅ Solution: Check your evaluator configuration and thresholds
🚨 Issue: "Template not found"
- ✅ Solution: Update to the latest version:
uv update
- ⚙️ Check the Configuration Guide for detailed options
- 🖥️ Review CLI Reference for command details
- 📋 Consult Example Configurations Guide for your specific domain