线上分类器的漂移监控:三个指标与两道告警

接劣化排查框架(那是出了事之后的流程),这篇写「不出事之前」的部分:线上分类器的漂移监控——怎么在用户投诉之前发现模型的世界开始变了。内容很干:三个指标、两道告警、一个看板,全部可以直接抄。

为什么「准确率监控」是个陷阱

多数团队的模型监控长这样:每天抽检一批预测结果,算准确率画曲线。问题是:线上没有标签。抽检的人工标注延迟一两天,等准确率曲线掉下来,劣化已经在线上跑了一周。

正确的思路是监控「不需要标签的信号」——输入的分布、输出的分布、两者关系的变化。标签是滞后的验尸报告,分布是实时的心电图。

三个指标

指标一:输入分布的 PSI(群体稳定性指数)

对每个关键特征算 PSI(当前窗口 vs 训练基准的分布差异):

  • PSI < 0.1:分布稳定
  • 0.1 ~ 0.25:轻度漂移,关注
  • > 0.25:显著漂移,必须响应

关键特征选三到五个就够(对模型输出影响最大的),全特征监控是噪音放大器。我们的工单分类器监控三个:文本长度分布、高频词占比、渠道来源占比——三个 PSI 覆盖了历史上 90% 的漂移事件。

指标二:输出分布的占比偏移

模型预测的各类别占比,当前窗口 vs 历史基线。分类占比突然从 3:3:4 变成 6:2:2,两种可能:世界变了(真漂移)或模型坏了(对输入过敏)。无论哪种都需要人看一眼——这个指标的告警价值不在定位,在「有动静」。

占比偏移的阈值用卡方检验的 p 值(p < 0.01 告警),比拍脑袋的「占比变化超 10%」稳健。

指标三:置信度直方图的形状

校准置信度的分布形状是模型的「心电图基线」。健康状态是稳定的双峰(模型对多数样本很确定、对少数很不确定);置信度整体向中间塌陷=模型遇到大量「没见过」的样本;整体右移=输入变得太简单(可能是流量被上游过滤了)。

形状监控的实现很土:把直方图分十桶,每桶占比和基线比,超阈值报警。土但有效——它抓到过一次 PSI 全绿但置信度形状异常的「慢漂移」(新词逐渐渗入导致的渐进劣化,单日 PSI 都不显著,三个月的形状变化很显著)。

两道告警

指标要配上告警才有生命。两道就够,多了是狼来了:

第一道(黄):单指标连续三日越线。 过滤单日抖动(大促、故障日的一天异常不算漂移),三连击才叫趋势。黄的响应是「人看一眼」,不动作。

第二道(红):双指标同时越线。 输入 PSI 和输出偏移同时异常——世界和模型的关系确认失稳。红的响应是触发劣化排查流程(上一篇文章的四步法),该重训重训、该修管线修管线。

告警分级的心法:黄是「知道」,红是「行动」。监控系统的最大失败模式不是漏报,是告警疲劳——工程师把所有告警都静音的那天,监控系统就死了。

一个看板

看板只放四行:三个指标的最新值与趋势线、当前所处的告警状态。刻意不放准确率(延迟数据误导)、不放特征明细(那是排查时才看的)、不放模型内部指标(响应时间之类的属于服务监控,别混进来)。

看板的访问频率设计也值得说:值班同学每天扫一眼(10 秒能看完),周会投屏过一遍趋势。监控的价值和使用频率成正比,和使用难度成反比——做得再精细没人看等于零。

成本账

漂移监控是持续计算:PSI 和占比偏移是纯统计(零成本),置信度直方图要求模型输出校准置信度(模型本身的事,无额外成本),真正花算力的是「基线回测」——每月用最新数据重算一次基线,防止基线本身过期。这套监控在我们线上跑了几个月,算力成本几乎为零——监控计算走的是推理结果本身的副产品,唯一的增量成本是月度基线回测的批量推理,按 token 计费的接口跑一轮也就零头。监控的算力成本设计原则:如果监控比被监控的对象还贵,架构就错了。

总结

三个指标(输入 PSI、输出偏移、置信度形状)、两道告警(黄=知道、红=行动)、一个看板(四行,10 秒读完)。漂移监控的全部哲学就一句话:用分布的变化预警世界的变化,别等标签来验尸。这套东西从搭建到跑通两天工作量,值得每个有线上模型的同学现在就抄。

(文中分类与回测场景基于算邻坊按量接口实测。)


写文里这些监控场景,来自我日常在用的算邻坊(suanlinfang.cn?from=cnblogs-zj)——把闲置算力池化成按量 AI 平台:语音识别/语音合成/文字识别/智能决策/随心翻译,不用不花钱,余额永不过期,注册送体验金。

posted @ 2026-11-07 09:58  吴键WJ  阅读(3)  评论(0)    收藏  举报