MLOps实战:机器学习模型从训练到上线的全流程管理
本内容发表于:2026-06-04 10:03:47
浏览量
1009

MLOps实战:机器学习模型从训练到上线的全流程管理

微信图片_2026-06-04_095738_425.png

去年一个客户,数据科学团队花三个月训练了一个推荐模型,离线测试指标很漂亮,上线后效果却很差。CTR不仅没涨,反而跌了。业务方问:“你们的模型是不是有问题?”

数据科学家很委屈:“离线测试AUC 0.82,没问题啊。”

后来发现,离线训练用的特征分布和线上实时特征分布不一样。训练时用的是用户过去30天的平均点击率,线上用的是当天的实时点击率。两个分布差异很大,模型懵了。

这是ML落地最常见的悲剧:模型训练好了,不知道该怎么上线;上线了,不知道该怎么监控。

今天聊聊MLOps。不是那种“ML很重要”的入门课,而是帮你理清楚:从训练到上线,模型怎么管理、怎么部署、怎么监控、怎么防止效果衰减。

01 实验追踪:别让你的训练变玄学

数据科学团队经常遇到这种情况:三个月前跑出一个好模型,但当时用的数据版本、参数、代码分支都不记得了。想复现,复现不出来。

实验追踪要记录什么

  • 代码版本(Git commit)

  • 数据版本(数据快照或DVC版本)

  • 超参数(学习率、batch size、层数)

  • 模型评估指标(AUC、准确率、召回率)

  • 环境依赖(库版本、CUDA版本)

工具:MLflow、Weights & Biases、Neptune

那家客户后来用MLflow记录每次实验。数据版本用DVC管理。三个月后复现,一模一样。

02 数据验证:坏数据进,坏模型出

模型训练用的数据,质量怎么样?有没有空值?分布有没有变?有没有数据泄露?

数据验证检查项

  • 空值比例:某个特征空值率突然从1%涨到50%

  • 分布漂移:特征分布和训练时差异大(PSI指标)

  • 数据泄露:训练时用了未来数据

  • 标签泄漏:预测时不该出现的特征出现在训练集

工具:Great Expectations、TensorFlow Data Validation、Deequ

那家客户的特征漂移问题,如果在训练前跑数据验证,就能发现当天的点击率分布和过去30天不一样。但他们没做,模型上线后才发现。

03 模型CI:上线前先验证

代码要跑单元测试,模型也要。

模型CI要做的事

  • 模型推理时间测试:单个请求耗时是否在预期内

  • 模型大小检查:是否超出部署限制

  • 效果验证:用小批量线上数据测试,对比基线模型

  • 鲁棒性测试:缺失特征、异常值输入,模型会不会崩

那家客户后来加了模型CI:每次训练完,自动用小批量线上数据跑推理,对比当前生产模型的CTR预测分布。差异过大,阻止上线。

04 模型部署:不只是把pkl文件放上去

模型部署有几个选项:

  • 在线API:实时推理,低延迟。用TensorFlow Serving、TorchServe、Seldon、BentoML

  • 批处理:定时跑,高吞吐。用Spark、Airflow调度

  • 边缘部署:端侧推理,模型量化、蒸馏

部署策略

  • 金丝雀:先放5%流量,观察没问题再放大

  • 蓝绿:新旧模型同时在线,一键切换

  • A/B测试:随机分流,对比效果

那家客户之前直接把pkl文件上传到Flask应用,没有版本管理、没有回滚。后来换成TensorFlow Serving + MLflow Model Registry,版本可追溯,切换一键完成。

05 监控:上线只是开始

模型上线后,效果会衰减。原因:

  • 特征漂移:用户行为模式变了,特征分布和训练时不一样

  • 概念漂移:特征和标签的关系变了(比如疫情前后,用户消费习惯变了)

  • 数据质量:上游数据管道出问题,特征缺失或错误

监控指标

  • 模型性能:准确率、AUC、召回率(需要有标签反馈)

  • 特征分布:PSI(群体稳定性指标),超过阈值告警

  • 推理延迟:P99响应时间

  • 数据质量:空值率、异常值率

工具:Evidently、WhyLogs、SageMaker Model Monitor

那家客户后来加了特征漂移监控。当天的点击率特征分布和过去30天差异超过阈值,自动告警,触发模型重新训练。

06 一个真实案例:模型衰减被提前发现

一个金融风控模型,上线后前3个月效果稳定。第4个月,逾期率开始上升。

监控系统发现:其中一个特征“近30天登录次数”的分布变了。原来用户平均登录10次,现在变成了5次。产品改了登录策略,用户登录频率下降,模型没适应。

数据科学团队用新数据重新训练模型,AUC从0.75恢复到0.82。如果没有监控,可能要等逾期坏账发生才知道模型失效。

风控负责人说:“以前模型上线就结束了,现在才知道,上线才是监控的开始。”

写在最后

MLOps不是把模型塞进API就完事。

那家客户的CTO后来总结:“数据版本、代码版本、超参数要记牢;上线前要验效果;上线后要防漂移;模型衰减早知道。”

你的模型,从训练到上线,还有多少步没走通?