跳到正文
    Ertas
    Back to blog

    大型语言模型微调中的灾难性遗忘

    大型语言模型微调中的灾难性遗忘:为什么一轮接一轮的顺序训练会抹掉模型原有的能力,已发表的五类缓解方法(重放、正则化、LoRA、O-LoRA 和 OSFT 等正交子空间方法、增加容量)及其出处,以及如何用带回归集的评估门槛在新版本上线前发现遗忘,让当前模型继续服务。

    A pale astronomical impression in graphite and copper, with a soft amber penumbra on warm paper.An asymmetric engraved lunar crescent with cool cyan rim-light and a faint amber counter-impression.

    大型语言模型微调中的灾难性遗忘(catastrophic forgetting),是指模型在新数据上训练后,失去了原本具备的能力。当模型被一轮接一轮地顺序微调时,问题最严重,而这正是持续学习对模型的要求。重放、正则化和正交子空间方法都能减轻遗忘,再由一道带回归集的评估门槛来决定新版本能否替换当前版本。

    本文介绍灾难性遗忘是什么,顺序微调为什么会导致它,已发表的缓解方法及其出处,以及发布门槛如何把发生了遗忘的版本挡在生产环境之外。

    大型语言模型中的灾难性遗忘是什么?

    灾难性遗忘是指模型在新任务上训练后,在旧任务上的表现急剧下降。IBM 的灾难性遗忘解读把最早的观察追溯到 1989 年的 Michael McCloskey 和 Neal J. Cohen,当时称为灾难性干扰。在大型语言模型中,它表现为:微调后的模型能把新任务做好,却丢掉了以前会做的东西,比如算术、某种语言、某项安全行为,或者另一个系统所依赖的输出格式。

    这一现象在当今的大型语言模型中已有实测。Luo 等人的持续微调中灾难性遗忘的实证研究(2023 年)在 10 亿到 70 亿参数的模型上、在持续指令微调过程中都观察到了遗忘,而且在这个范围内,模型越大遗忘越多。

    为什么微调会导致灾难性遗忘?

    微调更新的是所有任务共用的权重,而训练目标只衡量新数据。梯度下降会把权重往降低微调集损失的方向移动,其中没有任何一项照顾模型原有的能力,因此一次对新任务有帮助的更新,可能会覆盖旧任务所依赖的东西。学习率高、训练轮数多、数据集范围窄,都会让这种覆盖更严重。

    顺序微调会让问题叠加。每一轮都从上一轮的模型出发,再移动一次,损失也随之累积。Red Hat 的 OSFT 解读(2026 年 7 月 28 日)引用了 Sculpting Subspaces 论文中的一个案例:一个能解出 29% 小学数学题的模型,在八个新任务上微调后,正确率降到了 2%。Google Research 的 sleep framework(2026 年 10 月 27 日)也报告了同样的规律:在顺序翻译任务中,监督微调基线出现了严重遗忘。

    这就是为什么遗忘对 AI 智能体的持续学习比对单次微调更要紧。一个每隔几周就用流量重新训练的智能体模型,本身就是一连串微调,每一次都是丢失能力的新机会。

    微调时如何防止灾难性遗忘?

    已发表的缓解方法可以归为五类,每一类都通过限制一次更新能在多大程度上改动模型已有的能力来减轻遗忘。效果如何,仍需测量来确认。

    方法原理出处
    重放每一轮都混入之前的训练数据Scialom 等人,2022
    正则化放慢对旧任务重要权重的学习Kirkpatrick 等人,2016
    参数高效训练在冻结的权重上训练小型适配器Biderman 等人,2024
    正交子空间让更新避开旧任务使用的方向Wang 等人,2023;Nayak 等人,2025
    增加容量把新知识写入新增的参数Google Research,2026

    在生产流量上,重放的成本最低,而且这几类方法可以组合使用,例如重放加 LoRA。

    重放。 重放(replay,也叫 rehearsal)会保留一个由旧训练样本组成的缓冲区,并在每一轮新训练中混入这些样本,让模型继续练习之前学到的东西。在 "Fine-tuned Language Models are Continual Learners"(2022 年)中,Scialom 等人用相当于旧数据 1% 的记忆缓冲区,让一个 T0 模型依次学习新任务,并保住了它在旧任务上的表现。对于用智能体流量重新训练的模型来说,之前几轮批准过的样本本来就在手边,所以重放几乎不需要额外成本。

    正则化。 弹性权重巩固(elastic weight consolidation)出自 Kirkpatrick 等人的 "Overcoming catastrophic forgetting in neural networks"(2016 年),它会对改动旧任务最依赖的权重施加惩罚,让学习恰好在遗忘会造成损害的地方放慢。

    参数高效训练。 LoRA 训练小型的低秩适配器,基础权重保持不动。Biderman 等人在 "LoRA Learns Less and Forgets Less"(2024 年)中发现,在代码和数学领域,LoRA 对目标领域学到的比全量微调少,但在目标领域之外保留了更多基础模型的表现,而且它减轻遗忘的效果胜过权重衰减和 dropout。

    正交子空间。 O-LoRA(Wang 等人,2023 年)在一个与之前各任务保持正交的低秩子空间中学习每个新任务,并且不需要存储数据用于重放。Sculpting Subspaces(Nayak 等人,2025 年)把这一思路用到全量微调上:先找出旧任务所依赖的权重方向,再把更新限制在与这些方向正交的空间里。Red Hat 把这种方法称为正交子空间微调(OSFT),并在解读中指出:在由八个依次学习的任务组成的基准 TRACE 上,同一个 LLaMA-2-7B-Chat 模型、同样的数据,OSFT 的平均准确率为 48.4%,标准微调为 23.0%。

    增加容量。 有些方法给新知识安排新的参数。Google Research 的 sleep framework 在离线阶段为一个混合专家模型添加低秩专家,并把新信息整合到那里,旧参数保持原位。这是五类中最新的方法,截至 2026 年 10 月,大多仍处于研究阶段。

    保守的训练设置可以与这五类方法配合使用:更低的学习率和更少的训练轮数,会让每次更新的幅度更小。

    LoRA 能防止灾难性遗忘吗?

    LoRA 能减轻灾难性遗忘,但会留下一部分。Biderman 等人发现,与全量微调相比,它在目标领域之外保留了更多基础模型的表现,代价是对目标领域学得更少。Red Hat 的解读从另一面说明了同一点:LoRA 改动的模型部分更少,却没有任何机制保护某项特定能力。在多轮训练中,应把 LoRA 和重放结合使用,并测量每一个版本。我们的词汇表条目 LoRA 介绍了适配器的工作原理。

    评估门槛如何发现灾难性遗忘?

    评估门槛会在每个新版本接收流量之前,用一组固定案例给它打分,而门槛中的回归集正是发现遗忘的关键。缓解方法降低遗忘的概率,门槛则告诉您遗忘是否真的发生了。

    智能体模型的回归集包含四类案例:

    • 当前模型答对的案例,覆盖智能体的主要任务。
    • 之前的修复。 每一轮训练所要修复的案例,防止后续某一轮在无人察觉的情况下把它们改回去。
    • 其他系统依赖的行为。 输出结构、工具调用格式和拒答行为。
    • 无关案例。 少量与本次修复无关的案例,Arize 的持续学习指南也有同样的建议,用来发现针对性测试集看不到的回退。

    门槛的规则是:新版本必须在任务集上达到质量标准,并且在回归集上与当前模型的差距不超过噪声容差,这两个阈值都要在打分之前定好。只要有一项不达标,当前模型就继续提供服务,失败的案例则进入下一轮的训练数据。让上一个版本随时可以部署,是这套做法安全的前提;我们关于模型版本管理、回滚与漂移的文章介绍了具体做法。

    噪声容差需要测量。在我们的 QMSum 研究(arXiv 2609.25028)中,只改变训练随机种子,两次运行之间验证集 ROUGE-1 就相差 1.59,同一次运行中的五个检查点之间相差 1.7。小于这个幅度的下降可能只是偶然。容差定得太紧,偶然的下降会挡住好的版本;定得太松,真正的遗忘就会漏过去。

    2026 年灾难性遗忘还是问题吗?

    是。LangChain 的 Harrison Chase 在 "Continual learning for AI agents"(2026 年 4 月 5 日)中称它为模型层持续学习的核心挑战之一,也是一个尚未解决的研究问题;Google Research 关于 sleep framework 的文章(2026 年 10 月 27 日)称它是一个根本性问题。缓解方法在进步,OSFT 和容量扩展是其中最新的一批,但还没有哪种方法能让遗忘不可能发生。因此,生产系统都把缓解和测量结合起来。

    Ertas 端点如何应对遗忘?

    Ertas 的自适应模型端点会让当前模型一直提供服务,直到新版本达到标准。它通过一个 API 提供一个用您的智能体工作训练出的专用模型,并持续从您的智能体流量中学习:每个新版本在后台训练,并用您的评估打分,其中包括当前模型已经处理得很好的回归案例。训练样本和每一次发布都由您批准。如果新版本没有达标,当前模型继续提供服务。

    它可以由 Ertas 托管,也可以部署在您的云中或本地。端点目前仅限受邀使用,我们正在开发一个更精简的版本,以便更多团队使用。

    常见问题

    用简单的话说,灾难性遗忘是什么?

    模型学会了新东西,却忘了已经会的东西。在大型语言模型微调中,一个在新任务上训练的模型,可能在原本做得很好的任务上变差,因为两者存放在同一组权重里。

    微调会让模型在其他任务上变差吗?

    有可能。学习率高、训练轮数多的窄范围微调,常常会削弱目标任务之外的能力。重放、LoRA、保守的训练设置,再加上覆盖范围超出目标任务的评估,可以让这种损害保持在较小且看得见的范围内。

    应该重放多少旧数据?

    少量往往就够。Scialom 等人用相当于旧训练数据 1% 的缓冲区,就保住了模型在旧任务上的表现。可以先从少量开始,如果回归集显示出损失,再提高比例。

    灾难性遗忘可以挽回吗?

    可以,前提是保留了上一个版本。先回滚到这个版本,再从它出发重新训练,并重放发生遗忘的版本丢掉的那些样本。保存每一个已发布的版本及其评估结果,才能做到这一点。

    RAG 会导致灾难性遗忘吗?

    不会。检索是往提示词里补充信息,模型权重保持不变,所以模型学到的东西不会被覆盖。这也是经常变化的事实应该放进检索的原因之一,训练则留给行为、格式和任务技能。

    简短版

    灾难性遗忘是更新共享权重要付出的代价,顺序微调则一轮又一轮地付出这个代价。重放、正则化、LoRA 以及 OSFT 这类正交子空间方法都能减轻它。发布门槛中的回归集能显示新版本是否遗忘了什么,在某个版本通过之前,当前模型继续提供服务。


    资料来源,均于 2026 年 10 月 29 日查阅:IBM,"What is catastrophic forgetting?";Red Hat Developer,"OSFT explained"(2026 年 7 月 28 日);Google Research,"The sleep framework"(2026 年 10 月 27 日);LangChain,"Continual learning for AI agents"(2026 年 4 月 5 日);Arize,"Continual learning for AI agents and LLM systems"(最近一次审阅于 2026 年 8 月 16 日);arXiv 论文:Luo 等人(2308.08747)、Scialom 等人(2205.12393)、Kirkpatrick 等人(1612.00796)、Biderman 等人(2405.09673)、Wang 等人(2310.14152)和 Nayak 等人(2504.07097)。我们的研究:QMSum 研究。