灾难性遗忘与通用能力保持

04-训练实操 进阶≈ 20 分钟 #灾难性遗忘#防遗忘#误区 reviewed
我的状态:

前置知识点

一句话定义

灾难性遗忘指微调把模型压向窄分布,导致训练目标之外的能力(通用对话、数学、代码)显著退化;它是「越微调越笨」现象的学名。

为什么重要

业务方对微调的隐含预期通常是「学会新任务,其他不变」——而遗忘恰恰破坏这个预期:领域助手学会了行业话术,却开始把简单算术算错。是否需要保持通用能力、保持到什么程度,是每个微调项目都要显式回答的问题,默认答案是「需要」。

前置知识

kp-021 已完成至少一次 SFT;kp-012 的数据配比概念。

核心概念

  • 遗忘(Forgetting):新任务训练后旧任务性能下降。
  • 通用回归评测集:专门用来检测遗忘的一组固定通用任务(对话/常识/数学/代码各若干)。
  • 低秩约束:LoRA 的 r 限制了权重被改写的维度,天然抑制遗忘。
  • 正则化方法:EWC(对重要参数加二次惩罚)、L2-SP(拉向初始权重)等思想。
  • 模型合并:task arithmetic——W_final = W_base + λ·ΔW,用系数 λ 在「领域能力」与「通用保持」间调档。

原理与机制

遗忘的机制:微调梯度完全由领域数据分布决定,参数沿着「领域损失下降」方向移动,而这个方向在通用任务上往往是损失上升方向。数据越窄、训练越久(epoch 多、lr 大)、可训练参数越多(全参 > 大 rank LoRA),偏移越远。缓解手段按成本排序:

  1. 数据层(最便宜):混入 20%-40% 通用数据(kp-012)。
  2. 容量层:用 LoRA 且 r 取够用的最小值,全参微调天然更容易遗忘。
  3. 优化层:更小 lr、更少 epoch——一切「训练轻一点」的手段都缓解遗忘。
  4. 正则层:EWC/L2 类约束,实践中不如前三层常用。
  5. 合并层:训练完用 W_base + λ·ΔW 缩放增量,λ<1 退一步换通用能力。

争议点:并非所有场景都需要保通用能力。专用小模型(只做抽取/分类的端侧模型)接受甚至欢迎「忘掉一切无关能力」——此时应做的是把验收标准写清楚,而不是盲目防遗忘。

图示

能力
 │  通用 ╲╲
 │        ╲╲______ ← 通用能力随训练下滑(遗忘)
 │  领域      ╱▔▔▔ ← 领域能力上升
 │         ╱
 └────────────────▶ 训练量(epoch×lr×容量)
缓解: 通用数据回拉 + 小rank + 轻训练 + λ缩放

直观类比

大脑重新装修:把所有墙都砸了重砌(全参、大 lr、多 epoch),房子会焕然一新但承重墙没了(通用能力塌);只做墙面改造(LoRA 小 rank)加保留旧家具(通用数据混入),既翻新又安全。

实例或案例

客服模型 v1(纯领域数据、全参、3 epoch):领域格式遵从 96%,但内部通用回归集(100 题对话/数学/常识)从基座 88% 跌到 61%,出现「3 加 4 等于 8」。v2 改为 LoRA r=16 + 25% 通用数据 + 2 epoch:领域 95%,通用回归 83%。v3 在 v2 基础上合并时用 λ=0.85 缩放:领域 94%、通用 86%——团队将 94/86 定为可接受的工作点。

操作步骤

  1. 训练前先跑一次通用回归集,记录基座分数(这是「不能跌破」的底线)。
  2. 按kp-012 配比混入通用数据,用 LoRA 而非全参,r 从小开始。
  3. 训练中每 500 步在通用回归集上抽评(kp-019 的监控体系)。
  4. 产出候选 checkpoint 后,领域/通用双评测对比,选工作点。
  5. 仍不达标时用 λ 缩放合并做最后一档微调(0.9 → 0.8 逐档试)。

排错清单

  • 遗忘严重且必须保通用:依次加通用数据、降 rank、减 epoch、λ 缩放。
  • 用了全部手段仍塌:检查通用数据质量(低质通用数据只会引入噪声),或考虑基座换更强的指令模型。
  • 遗忘「修复」后领域能力不足:工作点本质是权衡,回到业务方确认可接受的底线再迭代。

常见误区

  • 微调只加不减:能力守恒不成立,训练就是有权重的取舍。
  • LoRA 完全免疫遗忘:它只是约束更强,rank 大、epoch 多时照样遗忘。
  • 通用回归集可选:没有它,遗忘发生时你甚至无法度量与归因。

与其他知识点的关系

数据配比是第一道防线,见 kp-012;通用回归评测的构建见 kp-025 与 kp-026;λ 缩放的合并操作见 kp-009 与 kp-028。

延伸阅读

Kirkpatrick et al. 2017《Overcoming catastrophic forgetting in neural networks》(EWC,持续学习领域的经典机制);Ilharco et al. 2022《Editing Models with Task Arithmetic》(λ 缩放合并的来源)。

自测题

  1. 为什么全参微调比 LoRA 更容易遗忘?

答:全参允许权重在所有维度上偏移,窄分布梯度可以把模型推离预训练流形很远;LoRA 的低秩更新天然约束了可偏移的维度。

  1. 检测遗忘的正确姿势是什么?

答:训练前先跑固定的通用回归集记录基线,训练中定期抽评、训练后双评测选工作点——没有基线的「感觉变笨」无法归因。

  1. 什么场景可以不防遗忘?

答:专用模型(单一抽取/分类任务、端侧部署)接受能力收窄时,此时把验收标准显式写清即可。

相关知识点

来源

  • Kirkpatrick et al. 2017《Overcoming catastrophic forgetting in neural networks》(EWC)

基于模型知识整理,建议按需核对原文。