训练与微调微调灾难性遗忘速答 · 约 4 分钟更新 2026-09-19

微调完模型「变笨」了怎么办?灾难性遗忘怎么防

一句话结论

灾难性遗忘是模型在新任务数据上训练后,原有的通用能力明显退化的现象。防法核心是别让训练分布太窄:混入通用数据、控制训练强度、用 LoRA 这类只动小部分参数的方法。

先这样答

灾难性遗忘指的是:微调后新任务的表现上去了,模型原本会的能力却变差,比如通用问答变啰嗦、其他领域开始答非所问。原因很直接:训练只朝新任务的数据分布优化,梯度更新会改动和旧能力共享的权重,旧能力在训练里没人照看,就被冲掉了。

防法按成本从低到高。一是参数高效微调:LoRA、QLoRA 这类方法冻结基座只训练小部分参数,遗忘天然就轻,是多数场景的第一选择。二是数据混合:新任务数据里掺一定比例的通用指令数据,让旧能力在训练中持续被用到。三是控制训练强度:学习率放小、轮数别多,够用就停。四是有条件就保留一部分旧任务数据一起训。

一句总结:遗忘不是玄学,是只喂窄数据、训练又用力的直接后果;防法就是别把模型带偏太远,参数少动一点、数据掺一点、步子小一点。

面试官会怎么追问

  • 「怎么判断有没有遗忘?」 微调前先在通用能力评测集上跑一个基线,微调后再跑同一套,两边对比。只看新任务指标会漏掉退化,新旧两套一起看才有结论。
  • 「通用数据掺多少合适?」 没有固定配方,从较小比例开始按验证结果调。通用数据的作用是保鲜,不是重新预训练,掺多了新任务的效果会被稀释,两头要平衡。
  • 「遗忘已经发生了还能救吗?」 轻度的靠补混数据再训一轮通常能拉回来;重度的基本要回退检查点重来。所以训练时要存检查点、每轮都测通用指标,别等训完才发现。

回答的坑

  • 汇报时只讲新任务的提升。不测通用能力等于默认遗忘不存在,面试里新旧指标一起摆出来,才算真的训过模型。
  • 把原因全归结为学习率。学习率只是一环,数据分布太窄、轮数过多、全量更新参数都会造成遗忘,单调小学习率未必够。
—— 本题完 ——