用 AI 推一遍 CUSUM:每次都没超线,连续小偏移为何仍会报警
模型服务的批次误差、延迟或特征统计量可能每天只变一点,单点阈值始终没有触发,连续趋势却已经值得检查。单侧CUSUM用一个会归零的累计量收集向上偏移。先把七个教学读数完整推一遍,就能看清它何时积累、何时忘记。
AI生成的概念示意图:小变化累积后可能跨过阈值;阶梯高度、数量与图中位置不代表正文的精确计算。
基线、参考偏移和报警线是三个参数
设稳定基线μ₀=10,参考偏移k=0.5,报警阈值h=2。定义C₀=0,每步Cₜ=max(0,Cₜ₋₁+xₜ-10-0.5)。本文约定严格大于2才报警,等于2先不报。阈值比较是大于还是大于等于,应在实现前固定。
七次读数依次为10.2、9.7、10.8、10.9、10.7、11.0、11.2,全部是人为构造的数据。减掉基线与k以后,每次增量依次为-0.3、-0.8、0.3、0.4、0.2、0.5、0.7。
负证据可以清零,正证据接着累积
第一步max(0,-0.3)=0;第二步max(0,-0.8)=0。第三步从零加0.3得到0.3,随后为0.7、0.9、1.4、2.1。第七步首次严格超过2,于是触发向上偏移信号。
若另设单点上限13,这七次一个都不超。两种规则回答的问题不同:单点线关注一次读数是否很大,CUSUM关注最近一段是否持续超过带容忍量的参考水平。这里仅比较规则行为,没有验证谁在真实系统中误报更少。
如果完全不做归零,只把七个增量相加,结果为1.0,早期两个负数抵消了后来的持续上升。CUSUM保留的是零与各个截至当前的连续后缀增量和中的最大值,因此早期负证据不会无限拖住新趋势。
用第二条计算路线检查递推
第七步从第三条开始的后缀和是0.3+0.4+0.2+0.5+0.7=2.1;从第一条开始只有1.0,从第四条开始为1.8。把全部七个后缀和与零比较,最大值正好等于递推结果。独立本地程序逐时枚举后缀,核对每一步都一致。
若第八条读数突然为8,增量为-2.5,累计量会由2.1回到0。这只表明当前统计量归零,不会抹去第七步已经发生的报警。实际系统应单独保存报警事件,并说明人工确认、重置与重新估计基线分别在什么时候发生。
让AI生成可核对的监控表
可以提示:“按给定μ₀、k、h和比较符号列出时间、读数、净增量、更新前累计、更新后累计、首次报警;再用所有后缀和核对。不能自行调整基线,也不能把报警称为故障已证实。”这份表适合排查监控规则的偏一位错误与错误重置。
k决定多大的向上偏移会持续贡献正增量;h决定要积累多少才行动,两者不能互相替代。把k设为零,会改变小波动的积累方式;把h随观察结果反复调小,则会让原先设想的误报控制失去依据。本文选择它们只是为了能手算,不提供生产默认值。
真实模型指标可能有周周期、批次大小变化和自相关,需要先确定稳定参考阶段及观测单位。缺失数据不能偷偷补成零,不同样本量的误差均值也不宜直接当成等方差读数。向下漂移应另建对应累计量,不能把同一个向上规则反过来解释。报警是调查入口,仍要回查流量、输入分布与模型版本。
资料核对日期:2026年10月2日。数据为原创教学设定,已用独立本地程序复核,未进行真实模型训练或生产效果测试。
上线前可以把正常历史按原始时间顺序回放,检查误报间隔与缺失片段;随后另造已知偏移的教学序列,确认报警位置。若为了计算方便打乱时间,连续积累的含义就已经被改变。


