数据漂移不是一个报警
分布变化只是现象,不是诊断。真正需要回答的是:哪里变了、为什么变、是否影响决策,以及应该修数据、调阈值还是重训模型。
生产监控出现 PSI、KS 或分数分布报警时,最危险的动作是立刻重训。变化可能来自真实用户行为,也可能只是字段改名、时区偏移、采样策略变化或关联表重复。若根因在数据管道,重训只会让模型学习错误。
先给漂移分类
输入分布变化属于协变量漂移,例如地区构成或设备比例改变;标签比例变化属于先验漂移;相同输入与标签关系发生变化,才是概念漂移。三者可能同时出现,但对应动作不同。
还要单列“管道漂移”:缺失值填充变化、枚举映射错误、单位转换、特征延迟或训练与服务代码不一致。这类问题不是世界变了,而是观测世界的方式变了,应优先恢复数据契约。
验证报警是否可信
先核对窗口大小、样本量、季节性和多重检验。PSI 依赖分箱,KS 对大样本极其敏感;统计显著不代表影响重要。应同时报告变化幅度、置信区间和受影响流量,而非只展示红色状态。
接着检查数据新鲜度、来源版本、空值率、唯一值数、单位和时间戳。将报警窗口与前一稳定窗口按同一规则重算,并抽取原始记录做逐字段对照。标签存在延迟时,不要拿尚未成熟的标签判断模型失效。
- 数据契约——字段、类型、单位、时区和关联关系是否改变。
- 统计上下文——样本量、季节性与业务事件是否能解释变化。
- 影响范围——变化覆盖多少流量、哪些渠道和用户群。
沿决策链定位影响
按“原始输入 → 清洗字段 → 特征 → 模型分数 → 阈值动作 → 延迟标签”逐层比较。先找最早出现异常的节点,再按渠道、地区、客户端版本和用户生命周期切片。全局变化常由一个新增渠道驱动,平均值会掩盖它。
同时检查覆盖率、校准误差和阈值两侧的样本,而不只看 AUC。特征重要性只能帮助排序线索,不能证明根因;需要通过删除异常特征重放、固定人群对比或人工样本审阅验证推断。
选择与根因匹配的处置
若是管道故障,立即回滚或旁路异常特征,并回补受影响数据;若只是输入构成变化但条件关系稳定,可重加权、重新校准或调整阈值。标签比例变化需要重新评估容量与成本,不一定需要改模型。
确认概念漂移后,才考虑补充近期标注、加入新特征并重训。新版本先做时间外验证和受影响分群验证,再通过 champion–challenger 或小流量发布。每次处置都记录触发证据、结果和撤销条件。
- 修管道——回滚字段或特征逻辑,并回补受影响数据。
- 调决策——重新校准、调整阈值或限制适用人群。
- 改模型——补充近期样本,在确认概念漂移后重训。
漂移监控告诉你“现在与过去不同”,故障排查才回答“这种不同是否值得行动”。