灾难性遗忘与通用能力保持
前置知识点
一句话定义
灾难性遗忘指微调把模型压向窄分布,导致训练目标之外的能力(通用对话、数学、代码)显著退化;它是「越微调越笨」现象的学名。
为什么重要
业务方对微调的隐含预期通常是「学会新任务,其他不变」——而遗忘恰恰破坏这个预期:领域助手学会了行业话术,却开始把简单算术算错。是否需要保持通用能力、保持到什么程度,是每个微调项目都要显式回答的问题,默认答案是「需要」。
前置知识
kp-021 已完成至少一次 SFT;kp-012 的数据配比概念。
核心概念
- 遗忘(Forgetting):新任务训练后旧任务性能下降。
- 通用回归评测集:专门用来检测遗忘的一组固定通用任务(对话/常识/数学/代码各若干)。
- 低秩约束:LoRA 的 r 限制了权重被改写的维度,天然抑制遗忘。
- 正则化方法:EWC(对重要参数加二次惩罚)、L2-SP(拉向初始权重)等思想。
- 模型合并:task arithmetic——W_final = W_base + λ·ΔW,用系数 λ 在「领域能力」与「通用保持」间调档。
原理与机制
遗忘的机制:微调梯度完全由领域数据分布决定,参数沿着「领域损失下降」方向移动,而这个方向在通用任务上往往是损失上升方向。数据越窄、训练越久(epoch 多、lr 大)、可训练参数越多(全参 > 大 rank LoRA),偏移越远。缓解手段按成本排序:
- 数据层(最便宜):混入 20%-40% 通用数据(kp-012)。
- 容量层:用 LoRA 且 r 取够用的最小值,全参微调天然更容易遗忘。
- 优化层:更小 lr、更少 epoch——一切「训练轻一点」的手段都缓解遗忘。
- 正则层:EWC/L2 类约束,实践中不如前三层常用。
- 合并层:训练完用 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 定为可接受的工作点。
操作步骤
- 训练前先跑一次通用回归集,记录基座分数(这是「不能跌破」的底线)。
- 按kp-012 配比混入通用数据,用 LoRA 而非全参,r 从小开始。
- 训练中每 500 步在通用回归集上抽评(kp-019 的监控体系)。
- 产出候选 checkpoint 后,领域/通用双评测对比,选工作点。
- 仍不达标时用 λ 缩放合并做最后一档微调(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》(λ 缩放合并的来源)。
自测题
- 为什么全参微调比 LoRA 更容易遗忘?
答:全参允许权重在所有维度上偏移,窄分布梯度可以把模型推离预训练流形很远;LoRA 的低秩更新天然约束了可偏移的维度。
- 检测遗忘的正确姿势是什么?
答:训练前先跑固定的通用回归集记录基线,训练中定期抽评、训练后双评测选工作点——没有基线的「感觉变笨」无法归因。
- 什么场景可以不防遗忘?
答:专用模型(单一抽取/分类任务、端侧部署)接受能力收窄时,此时把验收标准显式写清即可。
相关知识点
来源
- Kirkpatrick et al. 2017《Overcoming catastrophic forgetting in neural networks》(EWC)
基于模型知识整理,建议按需核对原文。