数据漂移监控:分布变化是调查信号
部署后输入分布发生变化,模型可能遇到训练时少见的情况。监控输入统计可以及早发现变化,但不能独自证明准确率已经下降。
问题从哪里出现
部署后输入分布发生变化,模型可能遇到训练时少见的情况。监控输入统计可以及早发现变化,但不能独自证明准确率已经下降。
理解核心机制
对固定类别统计归一化频率,再用总变差距离衡量两个离散分布的差异。下面的合成数据保持类别集合一致,避免把缺失类别悄悄忽略。
动手做一个小实验
Python 3.11 或更新版本,仅使用标准库;将示例保存为 demo.py 后执行 python3 demo.py。数字与样本均为教学演示,不代表真实模型或服务器的测量结果。
baseline = {"short": 80, "long": 20}
current = {"short": 50, "long": 50}
keys = set(baseline) | set(current)
distance = 0.5 * sum(abs(baseline.get(k, 0)/sum(baseline.values())
- current.get(k, 0)/sum(current.values())) for k in keys)
assert abs(distance - 0.3) < 1e-12
print("total variation:", distance)适用边界与常见误区
阈值需要考虑样本量、季节性和业务变化。输入漂移不等于性能下降,没有输入漂移也不保证标签关系不变;最终仍需要质量反馈。
继续练习
按周和按用户群分别统计,检查总体变化是否只是流量构成改变,再把告警与人工标注样本连接起来。