故障、回滚与再训练决策

本节目标

面对线上异常时先限制损害、保存证据,再选择回滚、数据修复、规则修复或再训练。

先做分诊,不急着训练

“指标变差”可能来自不同根因:

现象可能根因优先动作
大量 5xx 或超时服务、依赖、资源、配置限流、降级、回滚服务
schema/缺失异常上游数据或特征管线隔离坏数据、恢复契约
仅新版本退化模型、预处理器或配置停止发布并回滚完整发布单元
多版本同时退化外部环境、标签定义或共同依赖扩大调查,不盲目回滚单模型
漂移但有标签质量稳定真实输入变化但模型仍适用继续观察,不必自动再训练
概念关系变化且有足够新标签模型陈旧评估再训练或重新设计

再训练不是通用修复。若根因是单位错误,用坏数据重训会制造一个更难发现的新故障。

事件响应的最小流程

  1. 声明与分级:记录开始时间、影响、负责人和沟通渠道;
  2. 遏制:停止扩大、切换旧版本、禁用高风险功能或进入人工处理;
  3. 保存证据:冻结相关 release、模型、配置、特征版本和脱敏请求样本;
  4. 诊断:沿数据—特征—模型—服务—下游决策逐层排查;
  5. 恢复:验证替代路径与监控后逐步恢复;
  6. 复盘:写时间线、根因、促成因素、检测缺口和可验证改进项。

NIST SP 800-61 Rev. 3 将事件响应纳入组织风险管理。实践中应同时覆盖准备、检测、响应和恢复,而不是只写事后报告。

回滚判据

适合快速回滚的情况:影响明确来自新发布、旧版本仍兼容且风险更低、制品和数据契约可用。以下情况需要更谨慎:

  • 新旧版本共享已损坏的上游数据;
  • 数据库或特征状态已发生不可逆变化;
  • 旧版本有已知安全问题;
  • 环境已经真实变化,旧模型反而更差。

因此回滚计划要定期演练,而不是事故时第一次执行。

何时再训练

再训练前至少确认:

  • 新标签定义稳定,且标签覆盖偏差可接受;
  • 数据变化与目标性能问题有关,而非只看到了相关漂移;
  • 训练管线、基线与切片评测仍适用;
  • 新数据不会把事故期间的错误决策无限放大;
  • 新候选仍经过完整质量门和渐进发布。

如果任务目标、标签或输入含义变了,可能需要重新设计问题,而不是延续旧训练脚本。

无责复盘不等于无责任边界

复盘应聚焦系统如何允许故障发生,避免用“操作员粗心”终止分析。同时明确决策所有者、审批责任和整改截止条件。好的行动项可验证,例如“为单位字段增加生产契约测试并在 Canary 前阻断”,而不是“以后更仔细”。

练习与自测

情景:新模型发布后,某地区拒绝率升高;输入缺失率也上升,整体延迟正常。写出前 30 分钟的调查与遏制顺序,并回答:

  1. 何时回滚模型,何时先修数据?
  2. 需要冻结哪些证据?
  3. 哪些事实足以支持再训练,哪些仍只是线索?

小结与下一步

故障处置的优先级是保护用户、保留证据、恢复服务,再改进模型。下一步学习 平台安全与治理,把身份、供应链、审计和责任边界纳入整条生命周期。

参考资料