当前位置: 首页 > news >正文

Knowledge Editing for Large Language Models: A Survey

LLMs 有一个重要缺点:由于其超大的参数数量,其预训练的计算成本巨大,如果经常需要在预训练模型中引入新知识,这一缺点就会更加严重。因此,必须开发有效和高效的技术来更新预训练的LLM。传统方法通过微调将新知识编码在预训练的LLM中。但是,盲目的重新训练 LLM 可能会耗费大量计算和时间成本,并有可能使模型中原有的预训练知识退化。最近,基于知识的模型编辑(KME)引起了越来越多的关注,其目的是精确地修改 LLM 的特定知识,同时不会对其他有价值的知识产生负面影响。

本文旨在全面深入地概述KME领域的最新进展,具体包括以下几部分:

  1. 介绍了 KME 的常用方法,涵盖了多种不同的 KME 策略
  2. 基于如何将新知识引入预训练LLM,对 KME 技术进行了分类,并研究了现有的 KME 策略,同时分析了各类方法的关键见解、优势和局限性。
  3. 介绍了 KME 的代表性指标、数据集和应用。
  4. 深入分析了 KME 的实用性和挑战,并为进一步推动该领域的发展提出了有前景的研究方向。

1.1. INTRODUCTION

如图1所示,没有及时更新知识的LLM无法准确描述梅西的最新成就,这就需要明确注入新知识才能生成正确答案。

更新预训练 LLM 的一种可行而直接的策略是通过微调 [21, 31, 126, 141],即直接优化预训练 LLM 的参数,以编码来自新数据的新知识 [6, 88, 99, 149]。虽然这类微调技术被广泛使用,并能为 LLMs 注入新知识,但它们也存在以下缺点:

  1. 即使提出了几种参数效率策略来提高效率[79, 138, 147],对 LLMs 进行微调仍可能需要大量计算资源[86, 91, 150]。
  2. 微调后的模型可能会过度拟合新数据,尤其是当微调所用的数据集规模较小时[25, 87, 90]。
  3. 最重要的是,微调 LLM 会改变预先训练好的权重,而没有任何限制,这有可能丢失 LLM 中已有的宝贵知识[29, 59, 84]。

为了规避微调的缺陷,KME 策略通过在预训练模型中引入辅助网络(或参数集)来修改模型输出 [47, 72, 151] 或更新(部分)参数以存储新知识 [22, 45, 46, 74]。通过这些策略,KME 技术可以将新知识存储在记忆中,或将其定位在模型参数中进行更新,从而将知识精确地注入模型。此外,某些方法还引入了显式损耗以控制更新过程,从而使编辑后的模型在未修改的知识上保持一致的行为。凭借这些优势,KME 技术可以提供一种高效、有效的方法,利用新知识不断更新 LLM,而无需对模型进行显式再训练。

KME 和模型微调都试图通过注入新知识来更新预训练的 LLM。然而,除了这一共同目标之外,KME 更关注微调无法轻松解决的两个关键特性:

  1. 定位性:要求编辑后的模型不会无意中影响其他具有不同语义的无关输入的输出。例如,当有关美国总统的编辑更新时,编辑后的模型不应改变其对英国首相的了解。KME 方法的实用性在于其不影响无关输入输出的能力,这也是 KME 与微调方法的主要区别[105]。
  2. 通用性:指编辑后的模型是否能通用于更广泛的与编辑知识相关的输入。具体来说,它表示模型是否有能力在语义相似的输入上呈现一致的行为。例如,当对有关总统的模型进行编辑时,对总统配偶查询的答案也应相应改变。

在实践中,KME 方法必须确保编辑后的模型能够很好地适应这些相关的输入文本。总之,由于这两个独特的目标,KME 仍然是一项具有挑战性的任务,需要特定的策略才能取得令人满意的效果。

文章主要贡献:

  1. Novel Categorization:引入了一个全面、结构化的分类框架,系统地总结了现有的 LLM 编辑工作。具体来说,根据如何将新知识引入预训练的 LLM,我们的分类包括三个不同的类别:外部记忆、全局优化和局部修改
  2. In-Depth Analysis:将 LLM 知识编辑任务表述为一个有约束的优化问题,其中每个类别的方法都可以被视为具有细化约束的特例。此外,我们还强调了每个类别的主要见解、优势和局限性。在此背景下,我们深入探讨了每个类别中的代表性方法,并系统分析了它们之间的相互联系。
  3. Future Directions:分析了现有 KME 技术在各种数据集和应用中的实用性。我们还全面讨论了现有 KME 技术面临的挑战,并为未来的探索提出了有前景的研究方向。

1.2. BACKGROUND

模型编辑是一种特殊的模型修改策略,修改应尽可能精确。不过,它应在最大限度地保留现有知识的同时,准确地修改预先训练好的模型,以编码特定的知识,而不影响其在无关输入上的行为[61]。

Bau 等人[8]首先在计算机视觉领域探索了生成式对抗网络(GAN)[43]的编辑潜力,他们将中间层视为线性存储器,可对其进行操作以纳入新内容。随后,有人提出了可编辑训练法 [119],鼓励以与模型无关的方式快速编辑训练好的模型。其目的是在不改变其他输入结果的情况下,改变模型对与错误分类对象相对应的输入子集的预测。在 [113] 中,作者提出了一种方法,允许通过编辑分类器的决策规则来修改分类器的行为,这种方法可用于纠正错误或减少模型预测中的偏差。

自然语言处理领域,有几项研究[22, 91]提出了进行编辑的方法。Zhu 等人[153]提出了一种受限微调损失,用于明确修改基于转换器的模型中的特定事实知识[131]。最近的研究[40, 41]发现,转换器中的 MLP 层实际上充当了 key–value 存储器的角色,因此可以编辑相应层中的特定知识。

回顾一下 Transformer 结构中自注意力模块(self-attention layer & point-wise feed-forward neural network layer (FFN))的公式表示:


第 𝑙 层的输入是第 𝑙−1 层的输出 ℎ𝑖(𝑙−1) ,经过自注意力机制计算得到 ℎ𝑖𝐴,(𝑙−1);ℎ(𝑙−1) 是第 𝑙−1 层的输入,经过前馈神经网络计算得到 ℎ𝐹,(𝑙−1);最终,将第 𝑙−1 层的中间结果 ℎ𝑖𝐴,(𝑙−1) 和 ℎ𝐹,(𝑙−1) 组合,得到第 𝑙 层的输出 ℎ(𝑙)。为简单起见,自注意力模块中的归一化操作和残差连接被省略了。

Large Language Models (LLMs)可大致划分为encoder-only LLMs(Bert)、encoder-decoder-based LLMs(T5)、decoder-only models(GPT、LLaMA)。最常见的 decoder-only 模型的训练策略如下:

  1. 预训练阶段:采用 causal language modeling 策略在超大量语料库上进行预训练,只关注前一个标记来自动回归预测下一个标记。
  2. 有监督微调阶段:向 LLMs 提供示例 prompt-answer 对(如问题和答案、需求和代码、描述和公式),使他们能够根据提示回答问题,而不是简单地完成句子。
  3. 基于人类反馈的强化学习(RLHF)阶段:通过学习人类对不同答案的喜好,来进一步微调模型,让模型生成的内容更符合人类认知。

经过上述三个步骤之后,LLM 可被视为一个数据库,自然语言替代了传统的查询语句,以获取编码在 transformers 模型权重中的知识 [13, 65]。

1.3. 知识编辑任务的定义

1.3.1. 知识编辑的目标

在本文中,我们将将要注入 LLMs 的知识表示为知识三元组 t = (s,r,o),其中 s 是主题(例如美国总统),r 是关系(例如是),o 是对象(例如拜登)。从知识三元组的角度来看,针对 LLMs 的 KME 的目标是将模型预训练权重中编码的原始知识三元组 t = (s, r, o) 修改为目标知识三元组 t∗ = (s, r, o∗),其中 o∗ 是与 o 不同的目标对象。这样,我们就可以将编辑定义为一个元组 e = (t, t∗) = (s, r, o → o∗) ,表示将过时的旧知识 t 更新为新知识 t∗。

1.3.2. 知识编辑的本质(改变 Input and Output Space)

给定一个主题 s 和关系 r,为了查询 LLM 以获得对象 o,(s, r) 需要转换成自然语言,我们将其表示为 x,作为 LLMs 的 prompt。LLMs 的输出 y 也是文本语言,可以转换为对象 o。(x, y) 可以被视为与知识三元组 t = (s, r, o) 相关联的 input-output 对。

我们将带参数 φ 的预训练 LLM 称为 f : X → Y,带更新参数 φ∗ 的编辑模型称为 f ∗ : X → Y∗。基于知识的模型编辑的目标是根据编辑集中的内容将预先训练的 f 精确更新为 f ∗,从而使每个 y 中与编辑无关的 input-output对的变化最小。

从上述定义中,我们可以总结出 KME 的两个关键目标:(1) 通用性,这要求在目标输出空间中,只要输入空间中的提示能够更新到预训练模型中,就能实现正确答案;(2) 局部性,要求模型对无关问题的输出与知识编辑前保持一致,其中有价值的预训练知识可以最大程度保留。

局部性对于编辑 LLM 尤为重要,因为需要更新的知识往往只占预训练模型所包含的所有知识的一小部分。换句话说,编辑后的模型对大多数输入提示的输出应该与编辑前的输出保持一致。

1.4. 评价指标

在详细介绍各种 KME 方法之前,首先讨论常用的各种评估指标,以便从不同角度评估不同 KME 策略的有效性。我们总结了这些指标,以便于理解不同方法的特性和优势。

1.4.1. Accuracy(准确性)

准确度是衡量 KME 技术有效性的最直接指标,它被定义为:与所有已编辑知识相关联的 prompts-answer pair 的编辑成功率。准确率用于评估 KME 在分类任务中的表现,其中答案 y 是不同的类别。

由于准确度是在一组确定的 prompts-answer pair 上定义的,因此它可以对 KME 方法进行公平的比较。尽管如此,用准确率来评估 KME 方法的实用性仍具有挑战性,因为在如何设计 prompts-answer pair 方面还没有达成共识,尤其是当任务需要输出长序列时。

1.4.2. Locality(局部性)

我们注意到,在大多数情况下,所需编辑的知识只占预先训练的 LLM 中学习和保存的全部知识的极小部分。因此,局部性对于评估 LLM 保存无关知识的能力非常重要。局部性可以定义为更新前后的模型对未编辑过的输入的响应一致性

虽然指标本意是基于除非知识编辑数据集以外全部的内容来衡量 f ∗ 的整体局部性,但在现实场景中很难实现,因为整个输入空间可能过大,甚至是无限大。因此,现有方法通常采用其他解决方案来预先定义范围外输入的特定范围。

1.4.3. Generality(通用性)

评估 KME 的另一个关键方法是通用性,它表明编辑后的模型能够正确响应类似但不完全一致的提示的能力。这就要求将更新的知识进行泛化,虽然某些 prompt 没有出现在训练集中,但却表达了相似或相关的含义。通用性可以防止模型过度拟合特定输入。

具体来说,在基于知识的模型编辑场景中,自然语言固有的多样性决定了不同的输入可以对应同一个知识三元组。这些具有相同语义的输入可能在语法、词法、体裁甚至语言等方面存在差异。现有的工作通过不同的策略预先定义了特定的输入空间。例如,在 ROME [86] 中提出的 CounterFact 数据集中,作者利用语义相关的不同话题的作为输入。一般来说,编辑模型 f ∗ 的通用性被定义为:编辑后模型对语义近似的输入的输出与真实输出标签之间的匹配程度。

1.4.4. Retainability(可持续性)

可持续性是指 KME 技术在多次连续编辑后知识的留存能力。在信息不断变化的情况下,实践者可能需要经常更新会话模型(即连续编辑)。这种 KME 设置要求模型在每次新的编辑后都不会遗忘之前的编辑。必须将可保留性与可扩展性区分开来,后者评估的是模型处理大量编辑的能力。相比之下,可保留性评估的是模型在每次编辑后的一致性能,是一个更具挑战性的目标。最近,T-Patcher [59] 首次探索了 KME 的顺序设置,并发现许多现有方法在可保留性方面存在明显不足。在 SLAG [48] 中,作者也发现了 KME 的可保留性显著下降。

1.4.5. Scalability(可扩展性)

知识编辑策略的可扩展性指的是其同时融入大量编辑内容的能力。最近,出现了一些能将多种新知识注入预先训练好的 LLM 的特定参数中的方法。例如,SERAC [91] 最多可进行 75 次编辑。此外,MEMIT[87]被提出可以进行数千次编辑,而不会对编辑准确性产生重大影响。当需要同时对一个模型进行大量编辑时,简单地按顺序使用当前基于知识的模型编辑技术已被证明无法实现这种可扩展性[145]。

1.5. METHODOLOGIES

本节详细介绍了现有的基于知识的模型编辑(KME)策略。首先,我们根据新知识注入预训练 LLM 的方式和位置,对现有 KME 策略进行了创新性分类,并对其优点和缺点进行了深入讨论。然后,我们介绍了每个类别中的各种方法,重点分析了技术细节、见解、缺点以及它们之间的关系。

1.5.1. KME 方法的分类

面对旧信息的快速淘汰和新知识的不断涌现,人们提出了各种 KME 方法来更新预先训练的 LLM,以保持其更新性和相关性。KME 确保新知识能够有效地融入预训练 LLM,而不会对与编辑无关的预训练知识产生负面影响。在本调查中,我们将现有的 KME 方法分为以下三大类:

  1. 基于外部存储的方法

基于外部存储的方法利用外部存储器来存储新知识,以便在不修改预训练权重的情况下进行编辑,其中预训练知识可以完全保留在 LLM 权重中。通过用外部参数存储新知识,该策略可以精确地表示新知识,并具有良好的可扩展性,因为外部存储器很容易扩展以纳入新知识。

外部存储法适用于需要进行大规模编辑而计算资源有限的情况,因为存储的大小是可控的,可以满足不同的要求。

  1. 基于全局优化的方法

基于全局优化的方法试图在新知识的指导下,通过优化器将新知识融入预训练的 LLM 中,从而实现新知识的通用性,在此过程中引入了量身定制的策略,以限制其他预训练知识的影响,使其有别于普通的微调策略。不过,由于需要优化的参数较多,这些方法在应用于 LLM 时,编辑效率可能会有所欠缺。

当实践者更注重编辑知识的通用性时,全局优化则具有优势,因为优化可以促进相关知识的学习。

  1. 基于局部修改的方法

基于局部修改的方法旨在定位 LLM 中特定知识的相关参数,并对其进行相应更新,以纳入与编辑相关的新知识。局部修改法的主要优点是只需更新一小部分模型参数,因此与基于外部存储的方法相比具有相当高的内存效率,与全局优化相比具有相当高的计算效率。

上述分类是根据编辑过程中将新信息引入 LLM 的位置(如外部参数或内部权重)和方式(如通过优化或直接纳入)进行的。具体来说,每一类方法在第 4 章介绍的四个关键评估指标方面都表现出不同的优缺点。例如,外部记忆法适用于需要进行大规模编辑而计算资源有限的情况,因为记忆的大小是可控的,可以满足不同的要求。另一方面,当实践者更注重编辑知识的通用性时,全局优化则具有优势,因为优化可以促进相关知识的学习[2]。

1.5.2. 基于外部存储的方法

通过外部存储的编辑方法旨在通过引入外部记忆来修改当前模型 fφ(参数 φ),外部记忆由额外的可训练参数 ω 表示,其中编码了新知识,从而得到编辑后的 LLM 模型 f∗ φ,ω 。外部记忆策略的基本原理是,将新知识存储在附加参数中,可以直观、直接地编辑预训练 LLM,并具有良好的可扩展性,因为参数大小可以扩展以存储更多知识。此外,由于这种策略不会改变原始参数φ,因此对预训练知识的影响可以降到最低。根据公式(2)中 KME 的一般表述,外部记忆方法的目标可以表述如下:

其中,fφ 表示使用预训练参数 φ 编辑前的 LLM,而 f ∗φ,ω 表示使用 φ 和附加参数 ω 作为外部记忆编辑后的 LLM。此外,根据引入的参数是否直接纳入模型,外部记忆策略可分为两类,即基于记忆的方法和基于扩展的方法。

1.5.2.1. Memory-based Strategies

在基于存储的策略中,外部存储在预训练 LLM 的架构之外,起着存储知识的作用。LLM 可以在推理过程中根据需要访问和更新该内存。SERAC [91]是其中的一个范例,它将编辑过的样本 x, y∗ ∈ Xe, Y∗ e 储存在缓存中,而不对原始模型进行修改。当出现新的提示 x′ 时,SERAC 会使用范围分类器来判断该提示是否属于任何缓存实例的范围。如果是,则通过反事实模型 fc 预测与新提示 x′ 相关的理想输出 y′,该模型利用最相关的编辑实例,如下所示:

SERAC 是一种无梯度的 KME 方法,无需依赖目标标签 y∗ 与预训练模型参数之间的梯度。除了使用内存作为外部存储库,理想的编辑也可以以人工反馈的形式存储。例如,Language Patch 通过整合自然语言中的补丁进行编辑。MemPrompt [84] 则通过人的反馈提示来解决缺乏有关特定任务的常识性知识的问题。语言补丁[93]框架的一个不可或缺的特点是,它能赋予从业人员创建、编辑或删除补丁的能力,而无需频繁地重新训练模型。这一特点不仅简化了开发过程,还增强了编辑模型的适应性和通用性。为了实现记忆中的自动纠正,MemPrompt [84] 为语言模型配备了一个记忆库,其中包含纠正误解的反馈信息。具体来说,MemPrompt 利用特定问题的历史反馈,通过及时调整来完善对新的和未遇到过的情况的反应。

KAFT [72]中,可控性是通过利用反事实数据增强来实现的。在这种方法中,上下文中代表答案的实体会被另一个仍然可信的实体所替代。这种替代是有意设计的,目的是与真正的基本事实发生冲突,从而增强 LLM 在工作记忆方面的可控性和稳健性。这样做的目的是确保 LLM 在过滤掉嘈杂或无关数据的同时,仍能对相关的上下文信息做出反应。

除了依赖基于参数的记忆外,最近的研究还利用了 LLM 的提示技术,如上下文学习 [30] 和思维链提示 [142],来促进外部记忆的编辑性能。具体来说,IKE [150] 通过上下文学习将新的事实信息引入预先训练好的 LLM,其中选择一组 k 个演示(即 ω = {xi, y∗ i }k i=1)作为参考点。当输入受到编辑影响时,这些示范将改变对目标事实细节的预测。特别是,IKE 通过将事实知识存储为提示,保证了通用性和本地性之间的平衡。这一过程可表述如下:

这里的 ∥ 表示 ω 中的参考点与输入 x 的连接,它遵循的是一种内语境学习方式。请注意,在这一过程中,该框架首先将所有新事实转化为自然语言,然后将其输入 LLM。虽然 IKE 通过上下文学习有效地编辑了事实知识,但它无法解决涉及多重关系的更复杂问题。为了解决这个问题,MQuAKE [151] 首先探索了语言模型中关于多跳知识的编辑效果评估。例如,当编辑有关美国总统的知识时,有关总统子女的查询也应相应改变。具体来说,MQuAKE 的目的是评估经过编辑的模型能否正确回答代表此类事实链的问题。作者建议通过将每个问题分解为迭代子问题,使基础模型生成临时答案,从而实现基于多跳知识的编辑。随后,每个子问题都被用来从编辑过的事实记忆中检索最相关的事实。然后,语言模型会评估检索到的事实是否与临时答案相矛盾,并相应地调整预测结果。

1.5.2.2. Extension-based Strategies

基于扩展的策略利用补充参数将修改后的或附加的信息吸收到原始语言模型中。这些补充参数旨在代表新引入的知识或针对特定任务或领域量身定制的必要调整。与基于记忆存储的方法不同,通过将新参数纳入语言模型,基于扩展的方法可以有效地利用和扩展模型的功能。

基于扩展的方法可以通过多种方式实现,其中一种代表性的方式是修改前馈神经网络(FFN)输出。例如,CALINET [29] 使用专门针对事实文本进行微调的子模型的输出来细化原始 FFN 输出由基本模型产生。另一种技术 T-Patcher [59] 在最终 FFN 层中引入了有限数量的可训练神经元(称为“补丁”),以改变模型的行为,同时保留所有原始参数,以避免降低模型的整体性能。一般来说,这些细化FFN结构的方法可以表述如下:

其中 kp 是补丁键,vp 是补丁值,bp 是补丁偏差标量。引入的补丁大小灵活,可以准确激活以编辑特定知识,而不影响其他模型参数。

另一种技术涉及将适配器集成到预训练模型的特定层中。该适配器由一个包含键和值的离散字典组成,其中每个键代表前一层生成的缓存激活,每个相应的值解码为所需的模型输出。这本词典会随着时间的推移而系统地更新。根据这个概念,GRACE [47] 引入了一个适配器,可以通过延迟机制的实现就给定输入的字典的使用做出明智的决定。在实施这种方法时,在保留原始模型完整性的优点和与存储空间相关的实际考虑因素之间取得平衡至关重要。

1.5.2.3. 总结

外部存储方法通过保留原始模型中的参数,同时通过存储调用附加模型参数进行外部干预来修改特定的输出结果。这种方法的一个显着优点是对原始模型的扰动最小,从而确保了未经编辑的知识的一致性。它允许精确调整,而无需对模型架构进行彻底检修。然而,必须承认这种方法固有的权衡。其功效取决于编辑知识的存储和调用,这是导致存储容量问题的一个因素。根据要编辑的知识的规模,这种方法可能需要大量的存储需求。因此,在采用这种特定方法时,谨慎地寻求保持原始模型完整性的优势和存储容量的实际考虑之间的平衡成为一个关键问题。

1.5.3. 基于全局优化的方法

与基于外部记忆的方法引入新参数来辅助编辑预训练的LLM不同,也存在不依赖外部参数或记忆的工作分支。具体而言,全局优化策略旨在通过更新所有参数(即方程中的 φ)将新知识注入 LLM。 。通过具体设计微调模型参数,确保保留与目标知识 t* 无关的知识,赋予 LLMs 在不改变未经编辑的知识的情况下吸收新信息的能力。一般来说,全局优化方法的目标可以表述如下:

其中 fφ 表示使用预训练参数 φ 进行编辑之前的 LLM,fφ* 表示使用更新参数 φ* 编辑后的 LLM。一般来说,这些方法更注重所需知识的精度和通用性,因为微调过程可确保 LLMs 在编辑和相关知识方面取得令人满意的结果。然而,由于微调会影响所有参数,因此它们无法轻松保留已编辑模型的局部性,即保持未编辑知识的一致输出。在实践中,直接应用微调策略通常由于过度拟合问题而在 KME 上表现出次优性能 。此外,微调大型语言模型也非常耗时,并且缺乏多次编辑的可扩展性。因此,最近,在微调的这两个挑战的推动下,提出了一些全局优化工作,可以将其归类为约束微调方法中间微调方法

1.5.3.1. Constrained Fine-tuning

约束微调策略通常应用特定的约束来防止更新{X\XE,Y\YE}中的非目标知识。以这种方式,方程中的目标。将式(17)转化为约束优化问题:

其中 φ, φ* 分别为更新前和更新后的参数。 δ 是一个标量超参数,用于限制 fφ* 和 fφ 损失之间的差异。方程中的约束限制对未修改知识的编辑模型的更改。朱等人首先提出了一个更容易实现和计算的近似优化约束:

通过限制更新前后参数的范数来规范更新。虽然限制规范有助于防止忘记原始知识,但微调过程的效果可能较差。为了解决这个问题,RecAdam 除了范数约束之外,还应用了退火技术(annealing technique)来控制参数范数和微调损失之间的比率,如下所示:

这里 k 和 t0 是超参数。 t 是微调步骤数。这样的设计可以实现逐步的微调过程,从而防止一开始就进行大量参数更新。出于保留原始知识的正则化直觉的动机,PPA [70] 在 Transformer 解码器的前馈(FFN)层中采用了 LoRA [56]。 LoRA被提出来训练扩展/缩减矩阵,而不是模型参数φ,通过降维仅更新具有低内在秩的参数来提高训练速度。 PPA 利用通过 LoRA 受约束训练的插件模块来保持原始知识的完整性。此外,作者使用 K-adapter 模块 [136] 评估输入的内容是否属于 XE 的范围,并将这些输入重定向到新的插件模块。然后,该信息用于确定是否在 FFN 层内采用 LoRA。为了保留原始知识,F-Learning(学习前遗忘)[94]提出学习指示要遗忘的旧知识的知识参数Δφ,定义如下:

这里 Kold 表示由我们希望忘记的旧知识组成的数据集,FT(φ; Kold ) 是数据集 Kold 上参数 φ 的监督微调过程。 λ是一个超参数,用于控制遗忘率。基于从 φ 中减去参数 Δφ 可以帮助模型忘记这部分旧知识的假设[61],F-Learning 将遗忘过程定义为减法操作以获得更新的模型参数 φ*。

另一方面,其他工作也诉诸元学习[36, 130]来应用更灵活的约束。元学习通过训练能够快速适应新任务的模型来解决过度拟合的问题[55]。通过在训练期间将模型暴露于各种任务,元学习提高了模型从有限数据中进行概括的能力,并降低了过度拟合单个任务的风险[60]。在 KME 的场景中,最优模型参数 φ* 应最小化各种元任务的预期损失[108]:

其中D对应于每个元任务D的样本集。此外,每个元任务D包含多个用于编辑的(x*,y*)对。在实践中,此类方法通常引入额外的目标函数或网络来调节参数更新。作为 KME 的典型元学习方法,可编辑训练 [119] 专注于有效纠正模型内的错误,同时保持其在其他不相关数据实例上的性能。按照与模型无关的训练方式,作者引入了额外的约束,以不同的方式限制参数更新。具体来说,损失函数分为Lbase(特定于任务的目标函数)、Ledit(在编辑集XE上计算)和Llocal(在X \ XE中的样本上计算)。此外,模型以元学习的方式进行更新,其中在计算目标函数之前对参数应用k步梯度下降。

1.5.3.2. Intermediate Fine-tuning Strategies

虽然约束微调技术在各种 NLP 任务中表现出了显着的功效 [7,143,155],但它们在应用于 KME 时仍然表现出不稳定性和高计算成本,这主要是由于需要更改所有参数 [145]。解决这一挑战的一个潜在解决方案是利用中间模型以有效的方式获取更新的参数。这样的中间模型需要维护明显更少的参数才能确保效率[18]。总的来说,最近的工作广泛采用超网络[46]作为中间模型。具体来说,超网络是一个小型网络,为较大的网络(称为主网络)生成权重。具体来说,超网络接受包含权重结构信息的输入,并为主网络中的层生成权重。使用生成的权重,更新主网络以将输入数据映射到所需的输出目标。主网络的更新过程记为 φ,可以定义如下:

其中H(·)表示超网络。 Δφ是超网络计算出的权重偏差。根据最近的一项研究[132],特定于任务的超网络(即基于任务属性生成目标模型权重的网络)可以有效缓解灾难性遗忘问题。因此,此类方法适合KME的设置,这需要保存未经编辑的知识。

最近,研究人员提出以各种方式采用超网络来进行 KME 中的参数更新。作为一个经典的例子,KE [25]首先提出编辑知识并纠正错误或意外的预测,而无需昂贵的微调。具体来说,它通过约束优化来训练超网络来修改事实,而不影响与编辑无关的预先训练的知识。然后使用经过训练的超网络来预测推理时的权重更新。基于KE,SLAG[48]进一步附加了两种类型输入文本的度量:(1)不在所需编辑集XE中但与E逻辑相关的输入; (2) 输入与编辑的知识在形式上相似,但不会导致预测结果发生变化。

然而,由于参数规模庞大,超网络通常无法更新大型语言模型。为了应对这一挑战,MEND [90]采用了一种称为梯度分解的机制。特别是,它利用小型辅助编辑网络将通过标准微调获得的梯度转换为预训练模型中权重的编辑。梯度通常是高维对象,利用梯度的低秩分解来实现变换。特别是,MEND 将梯度映射函数参数化为具有单个隐藏层的 MLP,因此与编辑的模型相比,需要的参数数量明显较少。通过这种方式,MEND 可以实现快速模型编辑,可以在相当大的预训练语言模型上运行。此外,KGEditor [18]建议结合基于内存的方法和超网络的优点,以确保灵活性并进一步降低计算成本。特别是,KGEditor 引入了一个与 FFN 层具有相同架构的附加层来存储知识。然后,它构建了一个基于双向 LSTM [53] 的超网络,对三元组的嵌入进行编码。通过这种方式,KGEditor 成为编辑知识图嵌入的有效方法。

1.5.3.3. 总结

基于全局优化的KME方法通常应用特定的微调限制来规范参数更新,即约束微调策略。这是为了防止过度拟合并确保模型在未经编辑的知识上的性能。这种策略的一个关键优势是其关于相关知识的通用性,即编辑 e 的范围内输入 X e。由于全局优化会影响语言模型中的所有参数,因此其中的相关知识也会被编辑,从而泛化到这些知识。另一方面,微调所有参数的高计算成本也促使研究人员提出利用超网络的中间微调策略。此外,全局优化方法大多与模型无关,这意味着它们可以应用于其他编辑方法。然而,在 KME 的背景下,这种可能性的探讨较少。就缺点而言,全局优化方法在维护编辑模型的局部性方面并不是最优的,因为优化很容易影响未编辑的知识。因此,在优化具有特定约束或中间设计的语言模型时,实现通用性和局部性之间的平衡至关重要。

1.5.4. 基于局部修改的方法

为了应对局部微调方法的挑战,人们对 KME 任务的局部修改策略进行了广泛的研究 [91, 145]。这些技术源于识别和修改预训练模型中特定相关权重以实现所需输出的概念。主要目标是首先找到权重 φk,该权重 φk 将知识存储在关于输入 x 的预训练模型 fφ 中。之后,通过调整这些权重,可以从相同的输入 x 生成正确的输出 y*,而无需重新训练或微调整个模型。最近,研究人员将局部修改策略推广到了LLM,可以大幅提高预训练LLM的信息更新效率。一般来说,KME的局部修改策略的目标可以表述为具有细化约束的约束优化问题:

这里 φ* 表示与新知识相关的编辑后的权重,φk 表示未编辑的权重。在等式中,KME的本地修改策略自然地分为两个步骤:(1)定位步骤,用函数L表示,在预训练模型fφ中定位相关权重φk,该预训练模型存储有关查询x的过时信息。 (2) 编辑步骤,用函数 M 表示,将定位的权重 φk 编辑为新的权重 φ*k,使得正确答案 y*给定查询 x 可以由具有 φ*k 的模型生成。通过仅更新一小部分模型权重,编辑步骤可以避免对其他不相关信息产生负面影响(即 x ∈ X \ XE)。

在下面的小节中,我们首先介绍 LLMs 中知识神经元的概念,知识神经元是存储事实知识的特定神经元,可以被激活以根据某个查询 x 生成所需的答案。然后我们讨论 KME 的两种局部修改策略:(1)基于梯度的策略,根据模型输出计算的梯度来识别和编辑知识神经元; (2)基于提示的策略,根据输入提示定位知识神经元。

知识神经元:在大型语料库上预训练的 LLMs 可以被视为在预训练模型权重中存储事实和常识知识的数据库[45]。为了通过本地修改预训练的 LLM 中的权重来更新此类知识,必须确定哪些权重存储此类信息,即定位知识神经元。由于 LLM 复杂的架构,这可能具有挑战性 [7]。

LLM 的 transformer 结构由两种层组成,即(1)自注意力层和(2)逐点前馈(FFN)层,包含两层多层感知器(MLP)。特别是,对给定提示 x,LLMs 的自注意力层使用最后一个 token 的 query 向量和先前 token 的key 向量来计算它们的 value 向量的加权和。因此,给定输入 x,这些层提供了有关我们在生成答案时应考虑哪些先前 token 的信息。这里我们提供一个简化的示例来进行说明。为了回答“谁是美国现任总统?”这个问题,自注意力层表明模型应该关注单词“总统”和“美国”,即 vpresident 、 vUSA 来确定答案。这为我们提供了一个启动 embedding —— hstart 来生成答案 token,它是两个参与单词的值的加权和,即 w1vpresident + w2vUSA。然而,没有提供有关美国现任总统的信息。相比之下,最近的工作[40,41,86,87]声称通过 FNN 层的输出添加到hstart 的残差,即hnext = hstart + FFN(hstart),将信息“Biden”注入到hstart并导致正确答案的生成。因此,FFN中的神经元可以被视为存储事实知识的知识神经元。 FFN 在存储知识中的作用可以通过重新审视方程 1 中的公式来从理论上进行分析,我们将其改写如下:

具体来说,比较上述两个方程,我们观察到 FFN 的输入 h 的作用与 SelfAtt 的查询 q 类似。此外,第一层 W1 的权重可以被视为关键 v,其中 GELU (hW1) 可以被视为计算 W2 的行向量上的非归一化注意力分数。最后,第二层W2的权重可以被视为存储知识的值(或存储器),可以根据第一层计算的未归一化的权重来检索知识。

1.5.4.1. Gradient-based Strategies

基于预训练LLM中FFN层权重的知识神经元观点,提出了各种基于梯度的方法来定位和编辑预训练LLM。一般来说,他们利用正确答案 y* 提供的监督信号以自上而下的方式进行编辑。作为一个示例工作,KD [22]建议将每个权重 wi(l ) (即第 l 层 FFN 中的第 i 个权重)从 0 更改为预训练值 ˆ wi(l ) 。然后,它计算用输入 x 预测输出 y* 的概率的累积变化,其中具有高累积概率的权重被认为与 y* 的知识相关。

与在 FFN 层中定位和编辑单个权重 wi(l ) 相比,ROME [86]建议更新整个 FFN 层来编码新知识 y*。具体来说,他们查看 FFN 层中的第二层权重 W2 作为线性联想存储器[3, 67],形式为 KW2 = V,其中与 W2 相关的键 K 和值 V 可以直接用 Moore-Penrose 伪逆计算。有了这样的 FFN 层中的 W2 视图,将其更新为 ^ W 2 以在编辑 e = (s, r, o → o*) 中编码新知识的优化目标可以表述如下:

k* 编码主题 s 的信息,它是通过采样多个 x ∼ Xe 并取 FFN 第一个密集层输出的平均值来计算的。目标激活 h* 是通过优化后续层输出预训练 LLM 的正确答案 y* ∈ Ye 的概率来计算的。然后,根据上式对权重W2进行有效的Rank-1更新。更新后编辑的FFN层可以输出正确的隐藏表示h*,有利于从k*生成正确答案y*。MEMIT[87]提出将预训练LLM的FFN层的上述编辑策略进一步推广到不同知识的大规模编辑。特别是,有了 u 新的编辑 {e1, e2, . .. , eu } 需要在权重 W2 中更新,则批量编辑问题可以表示为以下优化问题:

其中 ki , vi 是与权重 W2 相关的原始键、值对(即方程(26)中的矩阵 K、V 中的行向量),而 k* i , v* i 是更新后的键、值对计算从第 i 个编辑 ei 开始。此外,由于需要多次编辑,更新在不同的MLP层之间共享,这是以自上而下的方式进行的,以防止编辑层可能影响已编辑层的潜在问题。每次编辑的残差均匀分布在关键 FFN 层的范围内。PMET [74]最近对残差归因策略进行了改进,它采用平方根策略将残差传播到底部 FFN 层,以便可以将更精确的信息传递到关键层。

1.5.4.2. Prompt-based Strategies

针对 LLMs 基于提示 x 提供答案 y* 的特点,定位和编辑知识神经元的操作也可以以自下而上的方式进行,其目的是通过更改提示来观察神经元的变化。具体来说,通过屏蔽掉关键信息并观察LLM中间层激活的差异,可以找到并更新存储查询 x 的权重,然后对其进行更改,存储新的信息 y*。例如,ROME [86]提出了一种基于损坏和恢复的策略来识别存储基于提示x的信息的相关层(或其隐藏的输出变量h)。它首先随机屏蔽来自预训练LLM的某个中间层的提示中标记的关键向量k(如方程(1)中所述)的隐藏表示。然后,它计算预测 y(即过时的输出)的降低概率,作为 x 对 y 由 h 介导的因果中介效应。因此,具有大介导效应的层中的权重被视为存储 y 信息的知识神经元。 MEMITCSK [45]将上述基于损坏的策略扩展到编辑常识知识。作者认为,与主体 s 可以直接检索的事实知识不同,客体 o 和关系 r 对于常识知识也很重要。因此,对主语、动词、宾语三类损坏和编辑位置进行了深入分析,可以提高编辑常识知识的性能。此外,BIRD[82]研究了双向KME的新问题,要求编辑后的模型具有可逆性。例如,如果短语“法国的首都是”在模型中被编辑为反事实“伦敦”,那么从逻辑上讲,它应该能够检索相反的事实。也就是说,当出现“伦敦是……的首都”时,模型应该回答“法国”而不是“英格兰”。基于 ROME 的策略,BIRD 引入了一个新颖的目标,涉及编辑中主体和客体之间的双向关系。以这种方式,更新的模型权重可以通过学习此类信息来保持可逆性。

1.5.4.3. 总结

在这一部分中,我们介绍了预训练 LLM 的局部修改策略,以便在不添加新权重或优化整个网络的情况下有效更新新信息。我们首先分析逐点前馈层(即 FFN)在预先训练的 LLM 中存储事实信息的关键作用,并彻底分析与 FFN 层相关的知识神经元。然后,我们讨论了对LLM进行局部修改的基于梯度和基于提示的策略,分别基于输出y以自上而下的方式实现修改,并以输入提示x以自下而上的方式实现修改。然而,本地修改方法的可扩展性和可保留性缺乏进一步的改进,因为性能可能会随着执行的更多编辑而恶化[87]。

1.6. 数据集

最近,已经建立了多个数据集来促进 KME 方法的评估。在本节中,我们总结了表 3 中常用的数据集,以利于未来的 KME 研究。具体来说,这些数据集可以分为两组:文本输出数据集(即生成任务)和分类输出数据集(即分类任务)。数据集从多种来源获得,包括知识图谱、维基百科页面、众包响应等,研究人员对这些数据集进行了调整以适应 KME 设置。

1.7. 知识编辑技术的应用

KME 能够将知识精确有效地注入预先训练的 LLMs 中,从而使多个下游应用受益。下面我们介绍KME技术在实际场景中的几个关键应用,表4提供了直观的示例。

1.7.1. Question Answering

1.7.1.1. 背景

问答(QA)是 NLP 的核心任务,旨在理解用户用自然语言提出的查询,并根据预训练语言模型中的编码知识提供答案[118]。传统的 QA 模型通常固定在他们的知识中,仅捕获[62, 103]训练时可用的信息。然而,在我们动态的世界中,新信息不断产生,这需要质量保证模型的不断更新[124]。幸运的是,KME 方法可以修改 QA 模型来满足特定问题,而不会中断对其他不相关输入的响应。因此,利用KME策略,可以在运行时有效地更新QA模型,从而保证模型的当前性。因此,语言模型编辑技术在无数具有潜在不同需求的 QA 环境中得到了广泛的应用[70]。

1.7.1.2. 目前的工作

QA 任务涵盖各个方面,例如会话 QA、基于定义的 QA,尤其是基于关系的 QA [98]。基于关系的 QA 主要被用作评估基准,因为它需要检索精确的现实世界事实来响应查询。这种对特定信息检索的特别强调使得基于关系的 QA 特别有利于发挥 KME 技术的优势。例如,PPA [70] 引入了 CuQA(持续更新的 QA)的创新任务,它有意强调对语言模型进行经常性的、实质性的编辑,以不断用新信息更新它们。 CuQA 任务的一个重要方面是确保现有的预训练知识不因新知识的集成而改变。因此,该属性是评估 CuQA 任务中模型编辑的一项重要评估。在 MQuAKE [151] 中,作者创新性地提出了一种多跳 QA 任务,其中涉及回答由纯文本事实链生成的问题。具体来说,该任务需要编辑的模型来推断隐式关系,这些关系可能与编辑中的对象有几跳的距离。例如,当修改关于美国总统的语言模型时,理想的模型也应该真实地改变“谁是美国总统的儿子”的答案,这是一个两跳关系。这样的任务显然更具挑战性,因为除了原始编辑之外,它还需要模型改变其推理结果。尽管如此,MQuAKE 中提出的 MeLLo 方法在这项艰巨的任务上仍然表现出出色的性能,展示了 KME 在将编辑知识推广到多跳关系方面的潜力。

1.7.2. Fact Checking

1.7.2.1. 背景

事实核查 (FC) 是新闻、信息验证和打击虚假信息的一项关键任务,旨在审查和确认新闻文章、社交媒体和其他媒体内容中的主张、陈述或信息的真实性 [37, 115] 。在一个充斥着不断出现的信息的世界中,事实核查促进了分布式信息共享的可信度,提高了信息透明度,并帮助个人做出明智的决策[128]。然而,不断更新事实核查模型至关重要。例如,在 COVID-19 大流行期间,随着研究人员收集更多数据,对该病毒的初步理解和指南不断演变 [117]。无法适应这些快速变化的事实的事实检查模型很快就会过时,并可能传播错误信息,从而需要应用语言模型编辑。通过将 KME 技术集成到事实检查模型中,不断地用最新的信息和事实更新模型,尽管信息不断演变,也可以确保模型的时效性、可信性和准确性。

1.7.2.2. 目前的工作

最近,一些工作提出在事实检查模型中应用 KME 技术。在[153]中,作者首先探索了在事实检查模型的transformer 主干内修改特定事实知识的潜力,同时确保整体模型性能在与编辑目的无关的事实上保持完整。特别是,他们确定了 transformer 主干内有利于有效知识修改的关键组件。在 SERAC [91] 中,作者建议使用从维基百科收集的证据作为编辑描述符以更新模型中可能过时的知识。所提出的方法与基线相比表现出显着的性能改进,并且可以推广到从同一维基百科页面收集的其他范围内的输入。

1.7.3. Natural Language Generation

1.7.3.1. 背景

KME 技术也有望确保自然语言生成(NLG)任务的相关性,该任务旨在根据提供的指令生成连贯且上下文相关的内容[110]。考虑到全球信息格局的快速发展,NLG 模型必须保持最新状态并确保生成文本的准确性,同时避免可能误导用户的潜在虚假陈述。

1.7.3.2. 目前的工作

在实践中,已经提出了一些应用 KME 方法来提高自然语言生成任务中的模型性能的工作。例如,FRUIT [5]建议根据有关文章主题的新信息的收集来更新过时的维基百科文章。基于 T5 模型 [107],作者利用压缩输出格式来消除从头开始生成整个更新的必要性,并促进深思熟虑的内容结构,从而有效地应对了不连贯的挑战。在 MEND [90] 中,作者将他们提出的方法应用于 Wikitext 生成任务,其中编辑的模型需要根据提供的 Wikitext 前缀生成可信的 10-token 扩展 [83]。通过对多层 token-wise 激活和梯度的修改,编辑后的模型在 NLG 任务上呈现出更高的一致性,这证明了 KME 在生成比 QA 或 FC 更丰富信息的目标文本方面的有效性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 通信原理-思科实验三:无线局域网实验
  • 【使用 Pytest 记录日志文件并确保测试用例正常执行】
  • python实现盲反卷积算法
  • 2024最新网络安全自学路线,内容涵盖3-5年技能提升
  • Ubuntu 22.04.4 LTS (linux) GoAccess 分析 Nginx 日志
  • 如何学习自动驾驶仿真与算法优化 前后端开发
  • 深入理解Prompt工程
  • GO集成方式、Java文字识别接口集成方法
  • Odoo 17 仪表盘开发指南:打造高效的数据可视化中心
  • CSS前端面试题——怎么用CSS实现一个宽高自适应的正方形?
  • .NET Core中如何集成RabbitMQ
  • C++初阶学习——探索STL奥秘——标准库中的string类
  • PyCharm2024 专业版激活设置中文
  • 论文总结:A Survey on Evaluation of Large Language Models-鲁棒性相关内容
  • 爬虫基本原理入门
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • Asm.js的简单介绍
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • CAP 一致性协议及应用解析
  • CSS实用技巧干货
  • Elasticsearch 参考指南(升级前重新索引)
  • ES6核心特性
  • Facebook AccountKit 接入的坑点
  • MySQL QA
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SQL 难点解决:记录的引用
  • Yii源码解读-服务定位器(Service Locator)
  • 回顾2016
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一起参Ember.js讨论、问答社区。
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • nb
  • FaaS 的简单实践
  • ​插件化DPI在商用WIFI中的价值
  • # Redis 入门到精通(七)-- redis 删除策略
  • ## 基础知识
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (超详细)语音信号处理之特征提取
  • (二)学习JVM —— 垃圾回收机制
  • (转)EOS中账户、钱包和密钥的关系
  • ***监测系统的构建(chkrootkit )
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .gitignore文件—git忽略文件
  • .JPG图片,各种压缩率下的文件尺寸
  • .Net Core和.Net Standard直观理解
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET是什么
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • //解决validator验证插件多个name相同只验证第一的问题
  • @JoinTable会自动删除关联表的数据