AnyEdit:编辑语言模型中编码的任何知识
原文标题:AnyEdit: Edit Any Knowledge Encoded in Language Models
1 Introduction
大型语言模型(LLM)通过学习和存储大量知识取得了令人印象深刻的成功。然而,他们经常出现幻觉,产生不正确或过时的信息。例如,当被问及“最近一届奥运会在哪里举行?”时,法学硕士通常会提供过时的答案“东京”,而不是正确的、更新的答案“巴黎”。虽然再训练或微调可以缓解这些问题,但这些方法是资源密集型的,存在过度拟合的风险。为了克服这一点,模型编辑已成为一种有前景的替代方案。如图1(b)所示,它通常从构建(主体、关系、对象)三元组开始,例如(奥运会,在巴黎举行),以表示要更新的知识。然后,它遵循 locate-then-edit 的范式,如图1(a)所示:(1)使用因果追踪在输入提示中定位关键标记(例如“Olympics”)和有影响的层;(2)编辑这些层中密钥令牌的隐藏状态,使模型的输出与所需的知识更新对齐(例如,将“东京”修改为“巴黎”)。这种方法能够实现精确和高效的更新,而不需要全面的再培训或微调,显示了对动态和不断发展的知识进行建模的潜力。
尽管取得了成功,但现有的模型编辑方法在更新知识的长度和多样性方面大多面临重大限制。如图1(c)所示,即使是像AlphaEdit和RECT这样的领先方法也难以处理超过100个 token 的更新。更糟糕的是,大多数方法仅限于表示为结构化(主体、关系、对象)三元组的知识。然而,现实世界的知识通常以不同的格式编码(例如,如图1(f)所示的数学推导和代码片段),并且经常超过100个令牌的阈值。这些约束不适合现实世界的场景,大大缩小了模型编辑的范围,阻碍了其更广泛的发展。
在这里,我们首先进行了深入分析,以确定为什么当前的方法对长形式的多样化格式知识不起作用。再次考虑图1(a),现有方法通常依赖于定位单个令牌,假设改变其隐藏状态就足以编辑LLM的输出(即使模型能够生成反映新知识的所需输出)。然而,长形式的多样化格式知识本质上比单个三元组更复杂、信息更密集,通常需要整合多个关键令牌,并在其隐藏状态之间建立复杂的相互依赖关系。因此,仅更改单个令牌的隐藏状态通常不足以确保一致和准确的知识生成。我们将这种限制形式化为单 token 编辑的有效性障碍,这在第3节中得到了实证验证。因此,现有方法仍受限于定位单个 token 的范式,从而无法克服上述限制。
随之,一个关键问题自然而然地出现,即如何更新长篇多样格式的知识:“能否联合定位和编辑多个 token 以实现连贯的知识更新?”一个直接的解决方案是将单 token 编辑直接扩展到多 token,但这冒着隐藏状态扰动之间发生干扰或冲突的风险,从而破坏待更新知识的连贯性,并导致如图1(c)所示的性能下降。
鉴于此,我们引入了AnyEdit,一种自回归编辑范式,可实现协作的 token-level 更新。如图1(d)所示,AnyEdit将长篇知识分解为连续的块,将每个块视为独立的子知识。在编辑过程中,我们迭代地(1)定位当前块的最后一个 token,并(2)扰动其隐藏状态,以最大限度地提高生成后续块的可能性。基于信息论中的互信息链式法则,我们从理论上证明了这种自回归过程确保了生成一致、完整的长篇知识。AnyEdit提供两个关键优势:(1)适应性:编辑 token 的数量可以根据知识长度自适应调整,避免冗余编辑。(2)通用性:它通过解耦结构特异性约束来支持多样化的知识格式(例如,诗歌、代码、数学)。通过从单 token 编辑转向多标记协作编辑,AnyEdit克服了当前方法的效率障碍,展示了在各种知识格式中进行实用、精确更新的潜力。
为了验证 AnyEdit 的有效性,我们对主流大语言模型(LLMs),如 Llama3-8B-Instruct2 和 Qwen2.5-7B-Chat,进行了全面评估,并与领先的模型编辑方法(例如,MEMIT、AlphaEdit 和 UnKE)进行了比较。
除了将知识表示为三元组的标准基准数据集(例如 Counterfact 和 ZsRE )之外,我们还整理了一个名为 EditEverything 的新基准,用于处理多样化格式的长篇知识。如图1(f)所示,该数据集的条目最长可达458个标记——是现有基准中最长序列(例如 AKEW 中的156个 token)的两倍多——并且涵盖了数学、新闻、代码和生物化学等多个领域。
在 EditEverything 和标准基准上的结果表明,AnyEdit 超越了所有基线,在编辑准确性方面平均提高了21.5%,且计算开销相当。此外,作为第一个自回归编辑框架,AnyEdit 还可以与现有的“定位-然后-编辑”方法无缝集成,如图1(e)所示。这种即插即用的能力使传统方法能够处理任意长度和格式的知识,极大地拓宽了大型语言模型知识编辑的范围和实用性。
2 预备知识
2.1 自回归 LLMs
2.2 LLMs 的模型编辑
为了更新大语言模型(LLM)中过时或不正确的知识,模型编辑通常遵循一种 locate-then-edit 的范式:
- 定位:在输入提示中找到关键标记(key token)和具有影响力的层。
- 编辑:修改这些层中关键标记的隐藏状态,以改变模型的输出。
具体来说,假设 \((X,Y)\) 表示待更新的知识,其中 \(X\) 是输入提示(例如,“最近的奥运会在哪里举行?”),\(Y\) 是期望的输出(例如,“巴黎。”)。假设关键 token 位于 \(X\) 中的位置 \(t\)。
当前的方法通常通过添加一个残差项 \(\delta\) 来扰动其隐藏状态 \(h_t\)。这个 \(\delta\) 是通过梯度下降获得的,旨在最大化在给定 \(X\) 的情况下生成 \(Y\) 的概率:
其中,\(\mathbb{P}_{f(h_t+\hat{\delta})}\) 表示在 LLM 中用 \(h_t+\hat{\delta}\) 替换 \(h_t\) 时的输出概率。最后,更新 LLM 的参数,使得在给定输入 \(X\) 的情况下,关键 token 的隐藏状态与 \(h_t+\delta\) 对齐。更多详情,请参阅附录 B.1。
3 探索现有范式的局限性
尽管近年来 single-token 编辑方法已被广泛研究,但我们认为它们在更新长篇、多样格式的知识方面存在根本性的局限。在本节中,我们将分析并实证验证这两个局限性。
3.1 编辑多样化格式知识的局限性
根据公式(2),single-token 编辑方法的成功取决于在对 \(h_t\) 施加扰动 \(\delta\) 后,LLM 是否能根据输入 \(X\) 生成输出 \(Y\)。换句话说,这种扰动必须显著提高生成 \(Y\) 的概率,使其高于任何其他可能的输出。然而,如果未经编辑的 LLM 中 \(Y\) 的原始概率已经很低——这在多样化格式的知识中尤其常见,例如代码片段和数学推导——那么 \(\delta\) 就必须引起一个很大的转变,才能使 \(Y\) 成为主导输出。由于 single-token 编辑的能力有限,现有方法在处理这种情况时常常力不从心。
这种局限性的产生是因为结构化知识(例如,事实三元组)比多样化格式的知识更简单,后者涉及复杂的依赖关系。在三元组中,修改单个 token(例如,将“东京”改为“巴黎”)通常就足够了。相比之下,像代码和数学这样的多样化格式知识,由于语法、变量依赖和层次结构,需要跨多个 token 进行一致的更新。再次考虑图1(f)。修改代码中的一个函数可能需要改变多行,而改变公式中的一个符号通常会影响整个表达式。单标记扰动无法捕捉和传播这些依赖关系,从而导致编辑无效。
为了实证验证这一点,我们应用主流的 single-token 编辑方法 MEMIT,来更新 LLaMA3-8B-Instruct 中三元组结构和多样化格式的知识。图2展示了知识格式、原始概率和编辑效力之间的关系。结果表明,多样化格式的知识通常具有较低的原始概率,因此表现出较差的编辑效力。简而言之,较低的原始概率可能是更新多样化格式知识的根本局限性。
3.2 编辑长篇知识的局限性
最近的研究表明,尽管 LLM 利用注意力机制,但远距离标记之间的依赖性会随着它们的位置距离增加而减弱。因此,对于长输出 \(Y\)(例如,\(Y\) 超过100个 token),应用于输入 token 的扰动可能对 \(Y\) 中后续 token 的影响逐渐减小。在这种情况下,由扰动 \(\delta\) 引入的 \(Y\) 的生成概率的改变可能太小,不足以将 \(Y\) 的概率提高到高于任何其他潜在输出的水平。
为了验证这一点,我们重复了第3.1节中描述的实验。此外,我们使用因果追踪(causal tracing)——一种模型编辑中常用的策略——来量化输入 \(X\) 上的扰动对 \(Y\) 生成概率的影响(因果追踪的详细信息可在附录B.1中找到)。图3说明了 \(Y\) 中标记数量、概率变化和编辑效力之间的关系。结果表明,长篇知识受单标记编辑在输入上的影响较小,因此表现出较差的编辑效力。换句话说,单标记编辑引入的低概率变化是有效更新长篇知识的内在局限性。
这一局限性,结合第3.1节讨论的限制,共同表明当前的单标记编辑范式面临着理论上的效力障碍。我们将这一障碍形式化如下:
命题1(单标记编辑的效力障碍)。给定 \(N\) 条待更新的知识,表示为 \((X_i,Y_i)\),其中 \(i∈(1,N)\),以及目标 LLM \(f\),使用单标记编辑进行知识更新的效力上限由以下公式给出:
其中,\(sign(\cdot)\) 是符号函数,\(h\) 表示被扰动标记的隐藏状态,\(Y\) 表示 \(f\) 的输出集合,\(δ\) 定义为:
4 AnyEdit: 自回归模型编辑
上一节表明,无论当前的单标记编辑方法如何优化,它们的编辑效率都不可避免地受到一个上限的限制。此外,随着待更新知识的格式越来越多样化、长度越来越长,这个上限会随之减小,最终导致编辑过程失效。为了解决这个问题,我们引入了 AnyEdit,一个支持协作式标记更新的自回归编辑范式。我们将从信息论的角度在 4.1 节提供其理论基础,并在 4.2 节概述其具体实现。
4.1 理论基础
我们首先从信息论的角度回顾编辑过程。具体来说,现有方法旨在通过编辑隐藏状态来最大化生成 \(Y\) 的概率,如公式2所示。此目标与在给定扰动隐藏状态 \(h′\) 的情况下最大化 \(X\) 和 \(Y\) 之间的互信息(MI)相符:
其中 \(I(\cdot|\cdot)\) 表示互信息。详细推导请参见附录 B.2。
将此框架扩展到同时扰动 \(K\) 个标记的隐藏状态,记为 \(\{h_1,h_2,…,h_K\}\),公式5中的互信息泛化为:
然而,如第3.2节所述,同时扰动多个隐藏状态会引入干扰,从而降低编辑效率。理想情况下,互信息项应仅以单个隐藏状态为条件,如公式5所示。
为了实现这一点,我们首先将 \(Y\) 分解为 \(K\) 个块,记为 \(Y=(Y_1,Y_2,…,Y_K)\),并应用互信息的链式法则重写公式6:
然后,我们选择每个块的最后一个标记作为扰动目标,在块 \(Y_k\) 和隐藏状态 \(h_K'\) 之间建立一对一的对应关系。鉴于大型语言模型是自回归地生成输出的,以下两个关键性质成立:
- 后继标记的隐藏状态不影响早期输出的生成,即 \(H(Y_p|H_q')=H(Y_p)\) 对于 \(p<q\),其中 \(H(\cdot)\) 表示信息熵;
- 一旦 \(Y_k\) 确定,以 \(Y_k\) 为条件就包含了以 \(Y_k\) 中标记的隐藏状态为条件,即 \(H(\cdot|Y_k)=H(\cdot|Y_k,h_k')\)。
利用这两个性质,我们可以推导出公式7中的每一项都与以下内容成比例:
详细推导请参见附录 B.3。公式8直接指导了我们的编辑策略:在每一步中,我们将 \(X\) 和先前编辑的块 \((Y_1,…,Y_{k−1})\) 作为输入,以自回归的方式迭代地将下一个块 \(Y_k\) 编码到LLM的输出中。更重要的是,公式8展现出两个关键优势:
- 消除干扰:每个互信息项都以单个隐藏状态 \(h’\) 为条件,避免了公式6中的干扰问题。
- 跨长度和格式的可扩展性:无论 \(Y\) 的长度或格式如何,每个编辑步骤都只更新单个块,从而规避了命题1中单标记编辑的效力障碍。
总之,这种形式化为在LLMs中编辑长篇多样格式知识提供了理论基础。通过利用自回归编辑范式,我们超越了单标记编辑,实现了更具可扩展性和更高效的模型编辑。接下来,我们将通过提供具体的实现步骤来演示如何实例化它。
4.2 实现细节
基于上述理论基础,本节将详细阐述 AnyEdit 的实现过程。具体来说,AnyEdit 遵循一个四步流程,以实现高效、可扩展的知识编辑:
第一步:分块输出(Chunk Outputs)
首先,我们将目标输出 \(Y\) 分割成多个块(chunks)。我们提出了两种分块策略:
- 固定大小滑动窗口:按固定数量的标记进行分块。
- 语义分割:根据自然句子边界进行分块。
这些策略使 AnyEdit 能够根据知识长度自动调整编辑标记的数量,从而确保高效且无冗余的编辑。
第二步:定位标记和层(Locate Token and Layer)
我们选择每个块 \(Y_k\) 的最后一个标记作为编辑目标,并直接应用因果追踪(causal tracing)来定位有影响力的层,这与传统的模型编辑方法(Meng et al., 2022)一致。
第三步:编辑隐藏状态(Edit Hidden States)
根据公式8,我们将输入 \(X\) 和之前的块 \(\{Y_1,Y_2,…,Y_{k−1}\}\) 输入到大型语言模型中。然后,通过梯度下降编辑所选标记的隐藏状态 \(h_k\),以最大化生成 \(Y_k\) 的概率。形式上表示为:
第四步:更新模型参数(Update Model Parameters)
最后,使用当前模型编辑方法中常用的最小二乘优化,更新LLM的参数,以使所选标记的隐藏状态与编辑后的状态对齐(Meng et al., 2022)。此步骤的详细实现请参见附录B.1。
这种多标记协作编辑过程使 AnyEdit 能够克服单标记编辑的效力障碍。此外,AnyEdit 还能与现有方法无缝集成,赋予它们编辑LLM中任何知识的能力,从而极大地拓宽了LLM知识编辑的范围和实用性。
5 实验
本节我们将进行广泛的实验,以解决以下研究问题:
- RQ1:在涉及长篇知识的任务中,AnyEdit 与其他基线方法相比表现如何?
- RQ2:AnyEdit 在处理多样化格式知识方面与其他基线方法相比如何?
- RQ3:AnyEdit 能否提高其他“定位-然后-编辑”方法的性能?
- RQ4:每个块的标记长度如何影响 AnyEdit 中长篇知识编辑的性能?
5.1 实验设置
本小节将概述我们实验中使用的 LLM、基线方法、数据集和评估指标。更多详细信息请参见附录 A。
LLM 与基线方法。 我们使用了两个广泛采用的 LLM 进行实验:Llama3-8B-Instruct 和 Qwen2.5-7B-Instruct。为了与我们的方法进行比较,我们评估了多种模型编辑方法,包括 FT-L (Zhu et al., 2020)、MEND (Mitchell et al., 2022a)、ROME (Meng et al., 2022)、MEMIT (Meng et al., 2023)、AlphaEdit (Fang et al., 2024) 和 UnKE (Deng et al., 2024)。
数据集与评估指标。 为了评估非结构化长篇知识编辑的性能,我们采用了现有基准,包括 UnKEBench (Deng et al., 2024) 和 AKEW (Wu et al., 2024)。为了进一步评估跨多样化格式知识的编辑性能,我们构建了一个名为 EditEverything 的数据集。在评估指标方面,我们从三个角度评估了模型编辑输出与编辑目标之间的相似性:原始问题、释义问题和子问题。评估使用语义相似度 (BERT Score) 和词汇相似度 (ROUGE Scores) 来确定编辑成功率。
5.2 长篇知识编辑 (RQ1)
为了评估长篇知识编辑能力,我们以两个基础大型语言模型为对象,在 UnKEBench、AKEW (Counterfact) 和 AKEW (MQUAKE) 数据集上,将 AnyEdit 与各种基线方法进行了比较。按照 UnKE 的设置,我们将批量大小设为1,解码温度设为0.001。
大多数“定位-然后-编辑”的基线方法通过闭式解(closed-form solutions)计算单个 MLP 层的参数更新,而 UnKE 则使用梯度下降更新整个层的参数,以精度换取效率。为了确保公平性,我们引入了 AnyEdit*,它也通过梯度下降更新整个层,从而可以直接与 UnKE 进行比较。表1展示了主要结果,更多细节请参见附录 C。基于表1,我们得出以下观察:
- 观察1:AnyEdit 在所有数据集、LLM 和指标上均优于所有基线方法。 在 UnKEBench 上,它将 BERT Score 提高了20%以上,这证明了其在编辑长篇知识方面的有效性。AnyEdit* 进一步提升了性能,优化了复杂的知识表示。
- 观察2:AnyEdit 在释义(paraphrase)问题上表现出强大的泛化能力。 在释义场景中,它显著优于基线方法。在 Llama3-8B-Instruct 上的 UnKEBench 数据集,AnyEdit 将 BERT Score 提高了32%,ROUGE-L 提高了56%。这突出了其在编辑长篇知识的同时,还能保持对改写查询的鲁棒性。
5.3 多样格式知识编辑 (RQ2)
为了进一步评估 AnyEdit 的泛化能力,我们构建了一个名为 EditEverything 的数据集。该数据集包含来自不同领域和格式的非结构化知识,旨在评估现有编辑方法在复杂知识上的表现。它涵盖了数学、诗歌、新闻、计算机代码和化学等多样化领域的知识。详细的评估结果如图4(b)所示。
此外,我们通过从 EditEverything 数据集中选择长篇样本,评估了编辑性能与目标标记数量之间的关系。最终结果如图4(a)所示。基于这些结果,我们得出以下观察:
- 观察3:AnyEdit 在不同知识领域均表现出色。 AnyEdit 在各种知识类型的编辑任务中都展现出持续的性能提升。值得注意的是,在 代码 和 新闻 类别中,性能提升最为显著,ROUGE-L 指标分别达到了 60.58% 和 52.38% 的增长。这些结果突显了 AnyEdit 方法强大的泛化能力。
- 观察4:随着目标标记数量的增加,AnyEdit 仍能保持稳定的性能。 具体来说,当目标标记数量超过某个阈值时,MEMIT、AlphaEdit 和 UnKE 等方法都出现了不同程度的性能下降。例如,MEMIT 和 AlphaEdit 在编辑目标超过30个标记时,性能显著下降。相比之下,AnyEdit 在这些条件下依然保持稳健,进一步证明了其可靠性和可扩展性。
5.4 提升现有编辑方法 (RQ3)
我们进一步评估了将 AnyEdit 应用于几种流行的模型编辑方法时的有效性。具体来说,我们将一些“定位-然后-编辑”基线方法的定位阶段替换为自回归编辑范式,从而能够同时识别和编辑多个标记的隐藏状态。修改后的方法直接在 UnKEBench 数据集上进行评估,并将其性能与其原始版本进行比较。详细结果如图5所示。
此外,为了评估引入我们策略所带来的时间成本,我们测量了每种方法与我们方法结合后的每个样本的平均编辑时间。实验结果如表2所示。基于这些结果,我们得出以下观察:
- 观察5:AnyEdit 显著提高了现有方法的编辑性能。 在整合 AnyEdit 后,现有方法在所有指标上都取得了显著改进。这些结果表明 AnyEdit 可以作为一个有效的“即插即用”方法,增强现有模型编辑方法的能力。
- 观察6:整合 AnyEdit 会略微增加编辑时间。 将 AnyEdit 与其他模型编辑方法结合使用会导致编辑时间适度增加,平均相对增加了24.7%。然而,考虑到 AnyEdit 所实现的显著性能提升,这种权衡被认为是可接受的。
5.5 分块大小的影响 (RQ4)
最后,我们评估了分块大小的选择是否会影响 AnyEdit 的长篇知识编辑性能。具体来说,我们采用滑动窗口将目标文本分割成块,并改变分块大小以评估其对编辑性能的影响。实验结果表明,当分块大小超过某个阈值时,AnyEdit 的编辑性能会下降。 由于篇幅限制,详细的结果和分析可在附录 C.3 中找到。
6 相关工作
6.1 用于知识更新的模型编辑
传统的模型编辑方法通过改变模型参数的一小部分或引入外部存储来修改模型的知识。这些方法能够更新知识、减少模型幻觉,或促进信息注入。
参数修改方法通过更新现有模型参数来编码新知识。基于元学习的方法,如 KE 、MEND 和 InstructEdit ,通过训练超网络来预测参数更新,其中 MEND 通过低秩梯度分解提高了效率。“定位-然后-编辑”方法,包括 ROME 和 MEMIT,使用因果追踪来识别与知识相关的参数,并通过最小二乘优化进行更新。NSE 通过仅更新一部分神经元参数来缓解模型编辑中的灾难性遗忘。AlphaEdit 通过零空间投影策略将其扩展到终身编辑。
与此相反,参数保留方法引入额外的参数或内存,而不是修改现有参数。ICE 和 DeCK 通过上下文学习实现无参数模型编辑,从而在不修改模型参数的情况下进行知识更新。SERAC 从外部内存中检索更新,而 TPatcher 和 CaliNet 分配新的神经元来编码知识。GRACE 将隐藏状态替换为离散码本值,而 WISE 则集成了参数化内存以实现高效的知识合并。
6.2 非结构化知识编辑
最近的研究侧重于编辑超出结构化三元组的自由文本非结构化知识。Wu et al. (2024) 强调了先前方法在评估非结构化文本编辑方面的局限性,并引入 AKEW 作为基准。UnKE 通过更新单个层内的所有参数来改进“定位-然后-编辑”方法,从而提高了它们处理非结构化知识的能力。他们还引入了 UnKEBench,一个专门用于非结构化知识编辑的基准。Huang et al. (2024b) 提出了一种动态感知模块,以有效定位常识知识参数,从而实现自由文本更新。然而,尽管这些方法处理非结构化和冗长的知识,但它们仍局限于事实性知识。相比之下,我们的工作将编辑能力扩展到多样化格式的知识,这涵盖了超出事实陈述的各种文本结构。
7 结论与局限性
在这项工作中,我们解决了现有模型编辑方法在处理长篇和多样化知识格式方面的局限性。当前的方法通常因依赖于编辑单个标记的隐藏状态而面临挑战,这限制了它们在复杂和非结构化知识上的有效性。
为了克服这一点,我们引入了 AnyEdit,这是一种新颖的自回归编辑范式,它通过顺序处理和编辑长篇文本中的标记隐藏状态,从而实现高效和精确的更新。我们的方法以互信息链式法则为理论基础,证明了其生成一致且准确编辑的能力。此外,AnyEdit 作为一个多功能框架,可以与传统方法无缝集成,从而将其适用性扩展到更广泛的知识编辑任务。
尽管 AnyEdit 能够增强传统编辑方法并将其应用于复杂的知识编辑任务,但它仍面临两个主要局限性:
首先,当前的框架尚未针对终身编辑场景进行明确优化,这类场景需要随着时间的推移进行持续和迭代的知识更新。将 AnyEdit 适应这种动态设置——即模型参数或隐藏状态需要周期性细化——仍然是未来研究的一个关键挑战。
其次,AnyEdit 目前仅限于文本知识编辑,缺乏对多模态知识集成的支持。扩展其功能以处理跨模态更新(例如,同步文本、图像和音频的编辑)将显著扩大其实用性,为多模态语言模型编辑提供了一个有前景的方向。
8 影响声明
AnyEdit 通过实现跨多样化知识格式的精确高效更新,增强了模型编辑能力,解决了长篇和非结构化知识编辑中的局限性。其大规模修改知识的能力提高了 LLM 的适应性,使其更能响应现实世界的更新。
然而,编辑灵活性的增加也引发了人们对潜在滥用的担忧,例如未经授权的知识注入或模型篡改。减轻这些风险需要仔细部署和监督,以确保负责任的使用。我们鼓励研究界利用 AnyEdit 推进可信赖和有益的 AI 应用。