监控的必要性:为什么ML模型需要持续监控
传统软件是确定性系统,一旦编写正确便会按预期运行。但机器学习模型本质上是概率性的:它从训练数据中学习模式,而生产环境中的数据分布可能随时间偏离训练分布。这种偏离导致模型性能自然退化,无法通过代码修复来解决。因此,监控成为MLOps体系的核心支柱之一,其目标是及时发现性能下降并触发修复流程(如重新训练)。
日志:监控的原始数据基础
日志是监控的起点。在ML系统中,应该尽可能全面地记录以下信息:
- 系统配置:当前部署的模型版本、超参数、环境变量等。
- 查询与结果:每条推理请求的输入、输出以及中间步骤的输出(如特征向量)。
- 组件状态:记录每个流水线组件的开始时间、结束时间、是否崩溃、异常信息。
- 来源标记:每个日志条目应携带来源标识(例如特征管道、推理服务、训练管道),以便快速定位问题。
虽然全面日志会导致数据量快速增长,但现代日志分析工具(如ELK、Loki)可以自动扫描异常模式,无需人工逐条查看。
指标:量化系统与模型健康度
指标是量化的监控信号,按关注层面可分为系统指标、模型指标和代理指标。
系统指标
这些指标与传统运维一致,用于评估基础设施和服务的健康状态:
- 延迟(Latency):请求从发出到收到响应的耗时(P50/P95/P99)。
- 吞吐量(Throughput):单位时间处理的请求数。
- 错误率(Error Rate):返回错误结果的比例。
- 资源使用:CPU / GPU 利用率、内存占用、磁盘I