机器学习模型性能指标采集

Judy616 +0/-0 0 0 正常 2025-12-24T07:01:19 DevOps · 模型监控

机器学习模型性能指标采集

核心监控指标体系

1. 模型推理指标

  • 响应时间:使用 time.time() 记录每次推理耗时
  • 吞吐量:每秒处理请求数(QPS)
  • 错误率:失败请求占比,需捕获所有异常

2. 模型质量指标

  • 预测准确率:使用 accuracy_score 计算
  • AUC值:二分类模型的ROC曲线下面积
  • 置信度分布:输出概率分布直方图

采集实现方案

import time
import logging
from sklearn.metrics import accuracy_score, roc_auc_score

class ModelMonitor:
    def __init__(self):
        self.metrics = {
            'response_time': [],
            'accuracy': [],
            'auc': [],
            'error_rate': []
        }
    
    def monitor_inference(self, model, X_test, y_true):
        start_time = time.time()
        try:
            predictions = model.predict(X_test)
            end_time = time.time()
            
            # 采集响应时间
            self.metrics['response_time'].append(end_time - start_time)
            
            # 采集模型质量
            accuracy = accuracy_score(y_true, predictions)
            auc = roc_auc_score(y_true, model.predict_proba(X_test)[:, 1])
            
            self.metrics['accuracy'].append(accuracy)
            self.metrics['auc'].append(auc)
            
        except Exception as e:
            logging.error(f'Model inference error: {e}')
            self.metrics['error_rate'].append(1.0)

告警配置方案

阈值告警

  • 响应时间 > 2s(告警)
  • 准确率 < 0.8(严重告警)
  • 错误率 > 5%(紧急告警)

趋势告警

  • 连续5次准确率下降
  • 响应时间增长超过30%

配置文件示例:

alerts:
  response_time:
    threshold: 2.0
    severity: warning
  accuracy:
    threshold: 0.8
    severity: critical

数据持久化:使用Prometheus存储指标,通过Grafana可视化展示

推广
广告位招租

讨论

0/2000
CrazyBone
CrazyBone · 2026-01-08T10:24:58
响应时间监控别只看平均值,还得关注95%分位数,线上突发的延迟波动往往比长期趋势更影响用户体验。
SwiftLion
SwiftLion · 2026-01-08T10:24:58
准确率和AUC都重要,但别忽视置信度分布,它能帮你发现模型在哪些边界样本上信心不足,这对生产环境很关键。