微调与对齐

大模型的灾难性遗忘问题怎么解决?

91学AI·2026/7/26·10 阅读

考察点

灾难性遗忘是全参微调绕不开的现实问题,面试官想看你是否知道「为什么会忘」以及「忘了怎么查、怎么救」。好的回答要有层次:先讲机理(参数被新任务拉离原解),再按数据、优化、参数三个层面给对策,最后落到怎么监测。只背一个「加 replay 数据」的答案会显得单薄。追问常往「LoRA 为什么天然缓解遗忘」「怎么量化遗忘程度」走。

参考答案

为什么会遗忘

神经网络的参数是任务间共享的。全参微调时,梯度只由下游任务的数据产生,参数被一步步拉向新任务的最优区域;原来支撑通用能力的参数配置被覆盖,旧能力就退化了。模型越小、新数据分布和预训练分布差异越大、训练越狠(大 lr、多 epoch),遗忘越严重。典型症状:领域微调后模型垂直任务变强,但通用问答、指令遵循、甚至基本语言能力(比如开始中英混杂、格式崩坏)明显下滑。

数据层面:混合回放

最直接也最有效的手段:训练数据里掺入一部分通用数据做 replay。配比经验上领域数据占 60% 到 80%,通用数据占 20% 到 40%,通用数据可以是原 SFT 数据的子集、开源指令集,或强模型生成的通用问答。回放的作用是让梯度里始终带着「别忘了原来怎么说话」的信号。

成本是训练变长、且要想清楚回放数据选什么——只回放和线上场景相关的通用能力(比如你的产品是客服场景,通用闲聊可以少回放,但指令遵循和拒答必须回放),盲目混入无关数据浪费预算。

优化层面:约束更新幅度

几个轻量手段往往一起用:

  • 小学习率:全参微调领域数据时 lr 压到 1e-5 以下甚至 5e-6,步子小参数就漂得慢。这是零成本的第一道闸。
  • 少 epoch:领域 SFT 1 到 2 个 epoch 通常够,epoch 数和遗忘几乎正相关。看验证集该停就停。
  • 正则化:EWC(Elastic Weight Consolidation)用 Fisher 信息估计各参数对旧任务的重要性,对重要参数的偏移加大惩罚;更简单的 L2-SP 直接惩罚参数偏离初始值。这类方法在学术界成熟,工业界用得相对少——因为数据回放往往更直接有效——但在「完全没有旧数据可用」的场景是少数可行解。
  • KL 约束:对旧任务的代表性样本,约束微调后模型的输出分布别偏离原模型太远,思路和对齐阶段的 KL 惩罚一致。

参数层面:少动参数

参数高效微调天然是遗忘的缓冲垫。LoRA 冻结主干、只在低秩增量上学,原权重一个字节没动,通用能力基本无损——这是很多团队用 LoRA 做领域适配的真实动机之一,不只是省显存。代价是容量上限:知识注入量大的任务,LoRA 的效果天花板可能低于全参。实践里的折中路线是「LoRA 先行验证,确认全参收益显著再动全参」。

另一个思路是选择性微调:只解冻顶部若干层或特定模块,底层通用表征保持不动;或者训完后做权重插值(model soup / WiSE-FT 思路)——把微调权重和原始权重按比例混合,用一点点新任务性能换回可观的通用能力。权重插值成本极低,值得作为默认的后处理选项试一下。

监测:先能度量,才能谈解决

没有监测就不知道遗忘发生没、缓解手段起没起效。做法是维护一个「通用能力哨兵评测集」:MMLU、CMMLU 这类知识基准,加一批自家产品场景外的通用指令样本,再加基础语言能力探针(格式遵循、拒答合理性)。每次微调实验同时跑领域指标和哨兵指标,两个数一起看。只报领域指标涨的实验,很可能在看不见的地方亏了通用能力。

落地建议的优先级

真到项目里,按这个顺序上手段:先小 lr + 少 epoch + LoRA(最便宜的组合,多数场景够);不够再加通用数据回放;还不够考虑权重插值;EWC 这类正则放在数据不可用的特殊场景。每一步都用哨兵评测集验证,别凭感觉。

可能的追问

追问:LoRA 完全不会遗忘吗? 不能说完全不会,但程度轻得多。主干冻结保证了原有权重不动,增量 BA 在推理时叠加,如果增量学偏了(比如过拟合领域风格),行为上仍可能出现通用能力下降的表象,只是根源不在「忘记」而在「干扰」。换任务时摘掉 LoRA 就回到原模型,这是它和全参微调的本质区别。

追问:怎么区分「遗忘」和「没学会」? 看对照:微调前跑一遍哨兵评测集拿基线,微调后同一套再跑。领域指标没涨是没学会(查数据、lr、rank);领域涨了但哨兵指标掉了是遗忘(加上面说的对策)。两个都掉,大概率训练本身出了问题,比如数据格式错误或 lr 过大把模型训崩。

追问:继续预训练(CPT)注入领域知识时遗忘更严重,怎么办? CPT 数据量大、和指令分布差异大,遗忘确实更凶。标准做法是数据混合——领域语料里掺 10% 到 30% 通用语料和一部分指令数据,且 CPT 之后再接一个通用 SFT 阶段把指令能力「唤醒」。很多开源领域模型走的就是 CPT + 混合 SFT 两段式。

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.