学了一门新语言,母语反而生疏;给 AI 灌入新知识,它却把旧本事忘了——而且可能忘得比人更彻底。这种现象叫灾难性遗忘(catastrophic forgetting),是微调大模型时绕不开的一个现实问题。结论先说:模型的知识存在同一批参数里,参数是共享的,改一处可能牵动全局,所以它学新的可能覆盖旧的。
为什么是「覆盖」而不是「叠加」
人学新东西,旧记忆相对独立,新技能不会冲掉旧技能。模型不一样,它没有「分区存储」,所有知识都压缩在同一批参数里。用新数据训练时,参数被调整以适配新任务,这些调整可能把原来学到的能力覆盖掉。新任务练得越猛,旧能力丢得越多——这就是「灾难性」三个字的来历。
它解释了微调的两个现实
一是微调不是万能的:针对某个领域微调之后,模型在那个领域变强了,在闲聊、写作等通用任务上可能变笨,顾此失彼。二是更新知识是两难:想让它学会新知识,又不想丢旧知识,至今没有优雅解法。理解了灾难性遗忘,就不会把「微调」当成无代价的升级按钮。
四种应对办法,各有代价
业内应对灾难性遗忘,主要有四条路线,原理和代价都不同。下表把它们并排列出。
| 应对办法 | 原理 | 适用与代价 |
|---|---|---|
| 数据混合 | 新任务里掺入旧任务数据,提醒别忘 | 简单有效,但需要保留旧数据 |
| 参数冻结 | 只训练一小部分参数,不动主干 | 改动小,新任务能力可能受限 |
| 定期回放 | 周期性用旧数据再训练一遍 | 缓解遗忘,计算成本高 |
| 检索代替训练 | 让模型查资料,而不是记进参数 | 新知识不写进权重,靠检索提供 |
四条路线的取舍很清楚:想简单就用数据混合,想省钱就用检索代替训练,想精准就冻结主干只训小模块。没有哪条是免费的,都要在「旧能力保留」和「新能力获取」之间做交换。
为什么更新知识这么难
根源还是参数共享。只要知识写进同一批权重,就难免互相干扰;而想把知识「分开存」,又回到了人脑式的架构,目前模型还没有稳定做到。所以现在更务实的做法是:能不训练就不训练,用检索增强(RAG)让模型现查现用,把「记忆」外包给外部资料,而不是硬塞进参数。
它和大语言模型、持续学习的关系
灾难性遗忘首先是大语言模型这类大参数模型的问题:参数越多,共享越深,牵一发动全身。语音合成这类多语言场景也有类似表现——新学的语言可能挤占原来的发音能力,念错字,根源之一在语音合成的文本前端怎么处理多语言。至于怎么让模型「一边学新的、一边稳住旧的」,正是持续学习要解决的事,和视频延展里「一段接一段还要保持前后一致」是同一类难题。
普通人该怎么看「微调版」模型
两个判断就够了。一是看到「XX 领域专用模型」,先问它通用能力掉没掉,而不是默认它「更强了」。二是需要实时新知识的场景,优先选带联网检索的方案,而不是指望一个训练好的模型「什么都知道」。这两个判断不需要懂训练细节,只要记住「参数会覆盖」这一条。判断一个专用模型靠不靠谱,先看它有没有同时保住通用能力;判断知识新不新,看它是记进了参数,还是现查现用。
灾难性遗忘速查
- 成因:参数共享、无分区存储,改一处牵动全局
- 后果:微调后通用能力下降、更新知识变难
- 思路:数据混合、参数冻结、定期回放、检索代替训练
灾难性遗忘提醒我们:模型更像一块反复擦写的黑板,写上新内容的同时,旧内容可能被抹掉。这也是为什么「更新知识」和「保持能力」必须放在一起权衡。


