Spurious Forgetting in Continual Learning of Language Models
目录
1. 引言
2. 动机:关于虚假遗忘的初步实验
3. 深入探讨虚假遗忘
3.1 受控实验设置
3.2 从性能角度分析
3.3 从损失景观角度分析
3.4 从模型权重角度分析
3.5 从特征角度分析
3.6 结论
4. 理论分析
5. 虚假遗忘的解决方案
5.1 现有方法的局限性
5.2 冻结底层参数(Freeze)
5.3 在真实场景中的应用
1. 引言
持续学习(Continual Learning, CL)中的大语言模型(LLMs)面临严重的遗忘问题,尤其是在新任务训练时,旧任务的表现显著下降。这种现象通常被认为是 “灾难性遗忘”(Catastrophic Forgetting)。
本文首次提出 “虚假遗忘”(Spurious Forgetting)的概念,指出这种性能下降主要是任务对齐(Task Alignment)问题,而非知识丢失(Knowledge Loss)。
研究发现:
- 旧任务的表现下降可以通过训练少量数据恢复,表明知识仍然保留。
- 训练新任务的初期步骤会破坏已建立的任务对齐,使得模型难以应用已存知识。
- 通过冻结(Freezing)底层模型参数可以显著改善持续学习中的性能。
2. 动机:关于虚假遗忘的初步实验
本文在两个持续学习场景中观察到虚假遗忘:
1)安全对齐(Safety Alignment)
- 研究发现,仅 10 个不安全的样本(Identity Shifting Instances)即可完全破坏一个经过数十万安全样本训练的 LLM 的安全性。
- 但只需再次使用 10 个不安全的样本进行拒绝响应(rejection responses)训练,模型的安全性能几乎可完全恢复(99%)。
2)持续指令微调(Continual Instruction Tuning)
- 在 TRACE 基准测试中,模型在新任务上的学习会导致先前任务的准确率骤降至 0%。
- 然而,在后续训练中,这种性能下降可以部分或完全恢复。
这些实验表明,LLM 可能并未真正丢失知识,而是由于任务对齐的改变导致了虚假遗忘。
3. 深入探讨虚假遗忘
3.1 受控实验设置
为了进一步分析虚假遗忘,本文构建了一个合成数据集(Biography Dataset),用于模拟持续学习:
- 该数据集包含 20 万个合成人物,每个具有六个属性(生日、出生地、大学、专业、公司、工作城市)。
- 持续学习任务分为:
- 任务 0(Task 0):在 10 万个个体数据上训练 QA 任务,建立稳健的知识基础。
- 任务 1(Task 1):在新增的 2 万个个体数据上训练 QA 任务。
3.2 从性能角度分析
在训练任务 1 时:
- 任务 0 的准确率在 前 150 步 骤降至约 10%。
- 但用任务 0 的部分数据进行重新训练时,准确率几乎完全恢复。
3.3 从损失景观角度分析
在训练任务 1 时:
- 任务 0 的损失在 前 150 步 急剧上升,而任务 1 的损失迅速下降。
- 这表明,模型在适应任务 1 的初始阶段,正破坏任务 0 的对齐。
3.4 从模型权重角度分析
在训练任务 1 时:
- 在训练初期,权重更新方向几乎与任务 0 的对齐方向正交(orthogonal)。
- 这意味着,模型在学习任务 1 时,会无意中 “撤销” 任务 0 的对齐。
3.5 从特征角度分析
对于每个训练阶段,计算每个 Transformer 层的隐藏状态(特征)的差异以及这些特征的主要主成分(principal component)的差异。
主成分的微小偏移表明特征变化发生在相对于原始特征接近正交的方向上,这表明修改后的特征可能在很大程度上保留了其先前的表示,并且可以通过逆转偏移来恢复。
在训练任务 1 时:
- 任务 0 和任务 1 的特征表示在初期对齐过程发生较大变化(很大的主成分偏移),但最终可恢复
- 这表明,知识仍然存在,只是任务对齐发生了改变。
3.6 结论
虚假遗忘的根本原因在于 任务对齐的变化,而非知识的遗失。
4. 理论分析
本文通过数学推导,提出了一个关于虚假遗忘的理论框架:
- 在任务切换时,特征空间的主要方向不会完全改变,而是发生近正交(near-orthogonal)变化,导致任务对齐的丢失,但知识仍然存在。
- 层数越多,累积偏移(Shift Accumulation)越严重,因此冻结底层参数可以减少任务对齐的扰动,从而缓解虚假遗忘问题。
5. 虚假遗忘的解决方案
5.1 现有方法的局限性
本文测试了多种持续学习方法:
实验表明:
- 数据回放(Replay)最有效,但需要存储旧数据。
- 冻结底层参数(Freeze)在不存储旧数据的情况下表现最佳。
- 其他方法(EWC、任务向量等)效果有限。
5.2 冻结底层参数(Freeze)
冻结层数的影响:
- 冻结过多层会降低任务 1 的学习能力,因此需要平衡冻结层数和任务 1 的性能。
- 实验发现,冻结 7 层时效果最佳。
早停策略(Early Stopping):
- 当任务 1 的准确率接近 99% 时,适当停止训练可进一步优化任务 0 的恢复能力。
5.3 在真实场景中的应用
Freeze 策略在四种持续学习任务中均取得了显著提升:
任务类型相似时,冻结更多层(如安全对齐 SA)更有效。例如,安全对齐(SA)任务涉及模型对抗性对齐(如拒绝有害输入),冻结 6 层后可以保持原有对齐能力,防止安全性被破坏。
任务类型差异大时,冻结较少层(如知识编辑 CKE)更有效。例如,知识编辑和实例增量学习(IIL)涉及模型新知识的注入,因此冻结 3 层即可,防止过多干预模型的学习能力。
论文地址:https://arxiv.org/abs/2501.13453
项目页面:https://github.com/zzz47zzz/spurious-forgetting
进 Q 学术交流群:922230617