灾难性遗忘

别名:Catastrophic Forgetting / 灾难性遗忘

顺序微调新任务时,旧任务的权重被覆盖、表现明显下降;replay、正则化和 PEFT 可以缓解。

更新于 2026/11/08
训练遗忘持续学习

一句话定义

灾难性遗忘是模型在学新任务时,旧任务的能力明显下降:新数据更新了共享权重,把原来的表示覆盖掉了。

为什么需要它

实际系统经常要持续更新:今天学客服话术,明天学新领域,后天修一个 bug。如果每次都在新数据上直接微调,旧能力可能快速退化;上线后表现为“新任务会了,老任务不会了”。

怎么工作

  • 顺序微调:在新任务上继续训练,共享权重被新梯度覆盖。
  • 数据分布偏移:新任务的数据和旧任务差异越大,遗忘越明显。
  • 缓解手段:混入旧数据 replay、加正则化(如 EWC)、用 PEFT/LoRA 限制更新范围、数据配比和早停。
  • 评估:同时跑新任务和旧任务,不能只看新任务指标。

遗忘程度和任务差异、学习率、训练步数有关;学习率越大、步数越多越容易覆盖。监控旧任务集是最直接的手段,上线前做回归测试。旧任务基线要保留。

灾难性遗忘:学新任务,旧能力掉下去

关键取舍

  • 可塑性 vs 稳定性:学新任务越快,越容易覆盖旧能力。
  • replay 有效,但要保存旧数据,成本和隐私要评估。
  • 正则化能约束重要权重,但可能限制新任务学习。
  • PEFT 缩小更新范围,能缓解但不能完全消除遗忘。

常见误区

  • 只有全参数微调会遗忘:PEFT 也会,只是范围更小。
  • LoRA 完全免疫:共享层和适配器仍可能偏移。
  • RAG 能解决遗忘:RAG 补知识,不修复模型能力退化。
  • 多训旧数据就没事:数据配比和训练顺序同样重要。

用在哪里

  • 持续学习、领域适配、多任务微调。
  • 模型频繁更新、需要保留旧能力的生产系统。
  • 上线前做旧任务回归测试,监控能力回退。

相关概念

  • 领域适配:灾难性遗忘的高发场景。
  • 持续预训练:更新知识时同样要防遗忘。
  • PEFT:缩小更新范围的缓解手段。
  • SFT:顺序微调常见的形式。