知识编辑+指令微调技术! 浙大联合腾讯提出InstructEdit新框架!
知识编辑+指令微调技术! 浙大联合腾讯提出InstructEdit新框架!
知识编辑旨在实现大型语言模型(LLMs)中参数化知识的有效和有针对性的事后修改。例如,如图 1 所示,当提示“如何拧螺丝?”时,知识编辑技术可以专注于 LLMs 中的特定区域进行调整,将答案从“使用锤子”更改为“使用扳手”,而不会影响整体性能。近年来,已提出了许多关于 LLMs 的知识编辑作品,可以分为两种主要范式:1)利用额外参数或内存保存模型的参数;2)修改模型的参数以改变负责不良输出的权重。
图1:知识编辑示例
然而,先前的知识编辑方法主要集中在单任务设置上,这意味着它们可能无法实现多任务泛化的能力,并且当面对分布外(OOD)数据时,在编辑上表现出效率低下。例如,如上图和下表所示,知识编辑方法可以在提示“如何拧螺丝”的情况下简单地改变行为,但在提示“如何打钉”时却无法泛化到不同任务。从根本上说,对于保留模型参数范式,附加参数方法 使用少量额外参数拟合更新的数据,而仅存储当前批次知识的基于记忆的方法几乎无法泛化到 OOD 数据。
对于修改模型参数范式,定位 - 编辑目标并直接更新特定参数,但它们的更新受限于提供的数据,限制了模型对其他领域的泛化。元学习编辑方法代表了修改模型参数范式领域的一个分支,它利用超网络为每个数据点预测具体的权重更新,从而促进对 LLMs 的编辑。然而,传统的元学习编辑方法通常专注于训练超网络,本质上作为专门针对特定领域的编辑器,因此,为新任务进行知识编辑需要重新训练编辑器,从而导致显著的计算成本。
InstructEdit:基于指令的知识编辑技术
本研究开发了一种基于指令的编辑技术,称为 InstructEdit,它通过简单的指令促进编辑器同时适应各种任务性能。只需一个统一的编辑器,我们实证证明 InstructEdit 可以改善编辑器的控制,导致多任务编辑设置中可靠性平均提升 14.86%。此外,涉及留出未见任务的实验表明 InstructEdit 始终优于先前的强基线。为了进一步研究基于指令的知识编辑的潜在机制,我们分析了梯度方向的主要组成部分,揭示了指令可以帮助用更强的 OOD 泛化控制优化方向。
方法与模型
1. Instruction Dataset Construction
为了确保多任务编辑中的多样性,我们选择了一系列数据集:Recent用于知识插入,CounterFact用于生成反事实,以及ConvSent用于更新知识中的情感编辑。Recent着重于2022年7月之后添加到WikiData的三元组,用于使模型能够更新至最新的知识。CounterFact强调来自热门维基百科页面的三元组,以解决模型在修改编辑中忽视不那么突出的实体的问题。ConvSent是一个情感编辑任务,旨在调整对话代理对特定主题的情感,比如“你觉得香蕉怎么样?”而不影响其他主题的回复。训练方法保留了ConvSent的原始设置。此外,我们从原始ConvSent中随机抽取了一个平衡的子集,用于多任务训练。详细分析见下图。
图2:数据集构建与分析
其中(a) 对知识编辑梯度˜∇𝑣ℓ的指导效果进行比较;(b) 展示了任务规模对InstructEdit的影响;(c) 说明了在不同任务规模下的可靠性和泛化性能。(d) 通过提取1,427条条目来平衡ConvSent,形成ConvSent(Balanced)。
实证显示,从其他任务转移知识到ZsRE是具有挑战性的,如表1所示。因此,我们利用ZsRE,一个零样本关系抽取数据集,来评估多任务编辑的泛化能力,这意味着我们在多任务编辑训练中不纳入ZsRE。具体地,我们使用了由扩展的版本,该版本添加了一个可移植性测试和原始数据集的新的局部性集合。
我们为多任务知识编辑开发了指导模板,涵盖四个任务族,即:CounterFact、Recent、ConvSent和ZsRE。每个都包括用于特定任务模型发现的指导,包括输入和目标模板以及相关元数据。
图3:指令示例
具体地,我们为每个任务族制定了定制指令集,包括[Task]、[Description]和[Input]。[Task]表示与数据项相关联的特定任务,而[Input]体现数据项本身。我们通过[Description]具体阐述细节,这是独特定制每个任务的基本组成部分。利用GPT-4和详细的任务信息,我们为每个任务生成了20个描述,并根据其清晰度和简洁性手动选择了10个候选项。随后,我们将[Task]、[Description]和[Input]连接起来形成所示的指令表2。值得注意的是,尽管最后一个指令用于使用指令评估模型的泛化能力,其他指令用于训练。我们通过将性能指标馈送到GPT-4中优化指令,以提高质量,如图3所示。所有指令数据将向社区发布。
2. Unified Editor Learning with Instructions
在本节中,我们主要关注指令在引导编辑过程中的关键作用,并深入详细解释InstructEdit的工作原理。具体而言,我们将指令集定义为{𝐽𝑢1,𝐽𝑢2,...,𝐽𝑢𝑘}∼I,其中𝐽𝑢𝑘表示任务𝑢𝑘的一组指令。根据这些指令,我们将编辑过程概述如下:
其中𝑗𝑜𝑢𝑘指的是从𝐽𝑢𝑘随机选择的指令,𝐹(𝑦𝑢𝑘𝑗)包括𝑦𝑢𝑘𝑗及其等效表达式。InstructEdit采用MEND的编辑架构,利用元学习编辑器(超网络)来实现编辑。InstructE-dit使用由𝜚参数化的编辑器更新模型的参数𝑣ℓ∈M。它通过将𝑣𝑗ℓ(每个批处理元素𝑗的第ℓ层输入)和梯度𝛿𝑗ℓ+1(计算为𝛿𝑗ℓ+1←∇𝑋ℓ𝑀(𝑦𝑗,𝑧𝑗))映射到伪激活˜𝑣𝑗ℓ和伪梯度˜𝛿𝑗ℓ+1来实现此目的。然后,权重矩阵𝑣ℓ的知识编辑梯度表示如下:
此外,我们将梯度˜∇𝑣ℓ按照梯度的𝑀2范数进行缩放,以分离其方向性分量,记为?∇𝑣ℓ=˜∇𝑣ℓ/∥˜∇𝑣ℓ∥2。直觉上,?∇𝑣ℓ突出了用于编辑元素𝑗的关键知识领域。这有助于通过仅关注梯度的方向而忽略其幅度,实现跨各种任务更有意义的比较。我们将这一聚焦领域称为editingarea。我们的主要目标是赋予编辑器理解和应用编辑指令的能力,从而增强其编辑超出常规分布范围的任务的能力。此外,我们在输入之前附加指令以促进多任务编辑。
InstructEdit的目标是增强多任务编辑能力,追求集体结果胜过个体贡献的协同效应。通过指令的串联,如图3所示,InstructEdit旨在聚类任务向量并减少任务间的冲突,确保多任务编辑器在各个任务上的表现与专用单一任务编辑器的匹配或甚至超越。
实验与结果
我们在两个规模不同的语言模型上进行实验:GPT2-XL(1.5B)和LLaMA-2-Base(7B)。在本文中,我们将我们的方法与FT-L方法进行比较,如[Yao et al., 2023]中所述,该方法涉及对通过ROME中的因果追踪确定的特定层的FFN进行微调。我们进一步将我们的方法与保留模型参数编辑基线进行比较,包括CaliNet和GRACE;以及修改模型参数编辑基线,包括MEND和KnowledgeEditor(KE)。我们不与ROME和MEMIT进行比较,因为它们的知识更新仅限于提供的数据(维基百科),这不能推广到不同的任务。大多数基线的实现由EasyEdit简化。
表3展示了相应的结果。FT-L在多任务编辑的可靠性方面表现不佳,我们认为这是由于原始模型先前知识的干扰,使编辑过程变得复杂。此外,我们注意到FT-L并没有增强可移植性或泛化性,这是由于其专注于拟合更新的知识。
我们的实验表明,FT-L大幅减少了原模型的参数知识,显著降低了局部性。像CaliNet这样的保留模型参数编辑方法保持了骨干模型的完整性,导致高稳定性,但它们在其他指标方面的表现令人不满。与FT-L类似,CaliNet过度拟合更新的知识,导致泛化性和可移植性差,但其局部性优于FT-L,因为它不会改变LLMs的原始参数。虽然GRACE代表了保留模型参数编辑方法的最新技术,具有出色的可靠性和局部性,但在泛化性和可移植性等指标上表现不佳。修改模型参数的编辑方法,如KE和MEND,在效果上超过了先前的编辑方法。MEND和KE在所有指标上表现出色,实现了可靠性和局部性的平衡。这归因于它们的优化目标限制了更新范围,从而使编辑人员能够调整参数同时保持模型稳定性。
我们可以观察到我们的InstructEdit通过指导方法改进了编辑精度和控制,达到了与MEND和KE等先进超网络相似的效果。虽然MEND和KE产生了有效的编辑结果,但它们在OOD数据上的性能并不理想,对于常见分布数据的编辑往往会导致后验向量空间中更新轨迹的错误方向。但是,我们发现向编辑器提供特定的命令提示可以大大缓解这个问题。
为了评估知识编辑方法对OOD数据的适应性,我们设计了”留存编辑设置“。在这个设置中,编辑器使用Recent、CounterFact和ConvSent等数据集进行训练,然后在ZsRE上进行评估。从表3中我们注意到,当应用于OOD数据时,所有先前的知识编辑基线的性能呈线性下降趋势。这种下降主要归因于编辑器在定义新编辑任务方面的局限性以及其处理OOD场景的泛化能力不足。
我们观察到InstructEdit能够有效解决这些挑战。值得注意的是,这种强大的泛化能力主要是由指导调整所固有的,这种协同作用使InstructEdit能够达到与单任务编辑相媲美的性能水平,甚至在训练阶段未见任务数据集上也是如此。
总结
本文关注LLMs的知识编辑中的一个新问题:泛化到新任务。我们引入多任务编辑,展示了现有知识编辑方法在任务可转移性方面的局限性,并提出了一个可行的解决方案InstructEdit。所提出的方法可以有效地指导编辑器进行精确的编辑,其有效性通过全面实验和可视化分析得到了确认。此外,我们的工作通过贡献高质量的指导可以丰富该领域,借鉴各种现有流行的知识编辑任务数据集的基础。