函数向量对齐技术,让大模型持续学习不“失忆”丨ICLR 2025

FVG团队 投稿
量子位 | 公众号 QbitAI

LLMs为什么总是灾难性遗忘?原来是功能激活在搞怪。

最近来自中国科学技术大学、香港城市大学和浙江大学的联合研究团队,通过对多个语言模型、任务序列和评估指标的系统分析,终于破解了LLMs的灾难性遗忘之谜——

遗忘行为具有高度的模型依赖性,而导致遗忘发生的本质却是功能激活的变化。

对此,团队基于函数向量构建遗忘分析框架,刻画和分析LLM内部功能的变化(其中功能表示模型对某具体任务的处理能力,如求反义词、乘法计算),进一步证实了遗忘并非简单地覆盖已有函数,而是模型激活了带偏差的新功能

研究人员还设计了一种函数向量引导的训练方法FVG,在微调过程中可以有效保留并对齐函数向量,并在多个持续学习数据集上显著保护了模型的通用学习能力和上下文学习能力。

目前相关研究论文已被ICLR2025 oral接收,代码也已在GitHub上公开。

接下来,我们一起来看看详细细节。

大语言模型的“记忆困境”

灾难性遗忘是指模型在学习新任务时,之前学到的知识被新任务的学习过程所覆盖或干扰,导致模型在旧任务上的性能大幅下降。

例如,一个通用语言模型在学习新增的用户指令处理后,面临数学推理能力的显著下降。

这种遗忘现象不仅影响模型的泛化能力,也使得模型在实际应用中难以适应动态变化的任务需求。

尽管语言模型的灾难性遗忘问题受到了广泛关注,但当前的研究多集中于通过单一训练序列分析遗忘现象,忽略了不同任务组合对模型表现的复杂影响,同时也缺乏对遗忘内部机制的深入理解。

为此,作者首先通过实证研究探讨了大语言模型在持续指令微调(模型在一系列指令微调任务上持续学习)中的遗忘现象,重点考察任务类型、训练阶段以及不同模型之间的差异。

作者使用SuperNI数据集[1]构建六种任务序列,覆盖生成任务、分类任务以及二者混合任务,并且关注三个指标量化模型对不同能力的遗忘程度:

  1. GP(General Performance):通用任务的零样本性能下降。

  2. IP(In-context Performance):通用任务的上下文学习性能下降。

  3. FP(Final Performance):训练任务的性能性能下降。

得到以下结论:

  1. 无论是通用任务、新任务,还是上下文能力,都出现不同程度的遗忘

  2. 任务类型影响遗忘程度:生成任务序列导致的遗忘显著高于分类任务。

  3. 训练阶段遗忘可逆:训练初期可能出现性能下降,但后期有明显恢复趋势,表明模型可能逐渐恢复部分遗忘能力。

  4. 模型差异显著:遗忘现象受模型结构与预训练数据影响。

既然模型在不同任务和不同模型中呈现出不同的遗忘现象,导致遗忘发生的本质现象究竟是什么呢?

揭示模型内部函数的遗忘本质

函数向量

作者为了解释模型发生遗忘时的内部机理,引入了函数向量(Function Vectors, FVs)[2]这一工具。

函数向量是一种定位和表征LLM内部处理具体任务能力的方法,其采用activation patching方法对上下文学习过程中的隐状态进行干预,识别在任务执行中起因果作用的注意力头集合。

函数向量通过在这些注意力头的平均激活值上求和得到。

具体而言,对于一个给定任务的数据集,函数向量的提取分为两个步骤:

   1、因果注意力头识别

首先对模型的注意力头进行干预,使用标签打乱的提示(counterfactual prompt)与原始输入组成反事实输入,通常这会导致预测错误。

然后将反事实输入在某注意力头的表示替换为真实任务的平均激活,并计算该替换对预测结果的因果影响:

其中,表示层、头在任务上最后一个token的平均激活。

而CE越高,表明该头对任务表现越关键。

最终选择CE值前10的注意力头构成集合

2、函数向量的构建

将集合中的所有注意力头的平均激活向量求和,得到函数向量:

通过分析函数向量,研究人员发现,灾难性遗忘并非是因为模型的任务处理能力在训练过程中被破坏,而是由于模型在输入到激活对应任务功能过程中的偏差所导致的

换句话说,模型并没有忘记之前学到的任务处理能力,而是这些能力未被正确激活,反而被新引入的能力所掩盖。

作者采用这种能够反映模型在处理特定任务上的功能特性的方式,追踪遗忘现象发生时模型内部功能的变化。

函数向量与遗忘的关系

通过实验分析,作者发现函数向量的变化与模型的遗忘现象之间存在显著的强相关性

具体来说,记为测试任务,为任务在初始模型下的函数向量表示,则表示在训练完第个任务后任务的函数向量表示。

当函数向量的相似度较低时,模型在测试任务 上的性能下降较严重。

当函数向量的相似度较高时,模型在测试任务 上的性能下降则不明显。

具体而言,在训练NI-Seq-G1数据时Hellaswag的函数向量的相似度与模型性能之间的相关系数(R²值)可以达到0.873。

作者也收集了模型在不同训练序列,不同seed下的40个checkpoint,并统计了多个测试任务在这些模型下的函数向量相似度与具体性能,可视化结果如下图:

图中显示,当任务学习后的函数向量(FV)相似度较高时,模型的遗忘现象相对较轻,两者之间存在较强的相关性。

相比之下,Last hidden state的相似度和参数变化前后的L2距离并没有呈现出这种规律。

模型遗忘的本质

作者基于此方法研究函数向量在任务切换前后的变化,并用作揭示灾难性遗忘根源的分析工具,该方法强调遗忘主要源于模型激活偏差的新功能,而非覆盖旧功能

作者首先依照潜变量模型(Latent Variable Model)的假设将大语言模型重新表述,具体如下:

LLM 的输出概率被分解为对所有可能内部功能的积分:

  • :在给定任务功能下的输出概率(即执行某个特定任务功能)

  • :在输入条件下激活该功能的概率(即功能激活机制)

而在函数向量的帮助下,我们可以获得功能的具体表达形式,得到以下公式:

具体功能被表示为一组隐状态组合,其中索引来自集合是激活权重,这个组合决定了处理当前任务功能的具体数值表示。

作者发现函数向量的偏移(即的变化)意味着模型功能激活机制的变化,而在前文函数向量的偏移也与遗忘强相关。

故这些现象共同支撑了一个中心论点:遗忘并非因为模型改写了执行旧任务的功能,而是因为输入激活机制发生了偏移,从而未能正确调用这些功能。

可以从上图获得更直观的理解:通过将模型重构为潜变量模型,它被划分为任务功能的激活和任务功能的执行两个阶段。

在学习任务1之前,模型能够正确激活任务0的功能,从而做出正确的预测。

但在学习任务1之后,模型可能引入了一个新的函数向量,这个新的向量会对任务0输入的激活过程造成干扰,从而导致遗忘现象的发生。

此外,作者还通过干预实验进一步验证了模型遗忘的内在原因。

仅通过在模型中插入被遗忘能力的函数向量或移除当前训练任务的函数向量,研究人员就能够显著恢复在被遗忘任务上的能力。

函数向量引导的训练方法

基于函数向量的分析结果,论文提出了一种新的训练方法——函数向量引导的训练(Function Vector Guided Training, FVG)

这种方法的核心思想是通过正则化技术限制函数向量的变化,从而在模型学习新任务时保持其对旧任务的功能激活模式。

具体来说,FVG 方法引入了两个新的正则化项:

   1、函数向量一致性损失

通过限制函数向量的变化,确保模型在学习新任务时不会过度偏离其原有的功能激活模式,具体公式为:

其中,分别表示在任务和任务时,模型在特定头的激活值,是距离度量,作者采用L2距离。

 2、函数向量引导的KL散度损失

通过最小化零样本输入与函数向量干预后的输出之间的差异,确保模型在微调后仍能保持与原有任务函数的一致性,具体公式为:

其中,是模型在输入上的输出概率分布,是在函数向量干预后的输出概率分布。

最终的优化目标是:

其中,是语言模型的原始损失函数,是超参数,用于平衡不同损失项的权重。

验验证

作者在多个数据集和模型上进行了广泛的实验,验证函数向量引导的训练方法的有效性。

实验结果表明,FVG方法在多个基准测试中显著提高了模型在一般任务和上下文学习任务上的性能,同时保持了模型对新任务的学习能力。

结语

本文,作者通过引入函数向量方法,深入探讨大语言模型中的灾难性遗忘问题,强调了函数向量在表征与缓解遗忘现象中的关键作用。

作者在多个基准任务上的分析表明,模型的遗忘行为与潜在功能变量(由函数向量刻画)发生的偏移密切相关。

基于这一发现,作者提出了一种全新的函数向量引导训练策略,该方法结合了正则项与函数向量引导的KL散度损失函数,显著减少了遗忘现象,从而提升了LLMs在持续学习中的通用能力与上下文学习能力。

[1] Wang, Yizhong, et al. “Super-NaturalInstructions: Generalization via Declarative Instructions on 1600+ NLP Tasks.” Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing. 2022.

[2] Todd, Eric, et al. “Function Vectors in Large Language Models.” The Twelfth International Conference on Learning Representations.

论文链接:https://arxiv.org/abs/2502.11019
项目链接:https://github.com/GangweiJiang/FvForgetting

一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!

—  —


🌟 点亮星标 🌟

科技前沿进展每日见

(文:量子位)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往