5.1_模型编辑简介

5.1 模型编辑简介

大语言模型有时会产生一些不符合人们期望的结果,如偏见、毒性和知识错误等。偏见是指模型生成的内容中包含刻板印象和社会偏见等不公正的观点,毒性是指模型生成的内容中包含有害成分,而知识错误则是指模型提供的信息与事实不符。例如,当被问到“斑马的皮肤是什么颜色的?”时,ChatGPT错误地回答“肉色”,而实际上斑马的皮肤是黑色的,这就是一个知识错误,如图5.1。如果不及时修正这些问题,可能会对人们造成严重误导。


(a) 编辑前模型。
(b) 编辑后模型。
图5.1: 大语言模型知识错误示例。

为了纠正这些问题,可以考虑重新预训练和微调两种方法。重新预训练是指使用矫正了偏见、祛除了毒性、纠正了知识错误的清洗后的数据对模型进行重新预训练。这种方法能够从根本上修复模型的错误输出。然而,清洗数据成本高昂,并且由于知识可能频繁更新,无法保证清洗过的数据永远是是完美的;而且,重新进行预训练需要消耗巨大的计算资源,如果每次发现模型错误时都对其重新预训练,未免舍本逐末。微调则是在预训练模型的基础上,针对其错误进一步调整模型

参数。尽管存在多种参数高效微调方法,但直接去调整十亿级参数量的模型,还是会产生较高的训练成本;此外,由于修改模型错误所需的新知识样本有限,因此直接用相应的知识点相关的样本微调模型容易导致过拟合和灾难性遗忘。因此,重新预训练和微调都不适用于实际大语言模型的偏见矫正、毒性祛除、以及知识错误纠正。

为规避重新预训练和微调方法的缺点,模型编辑应运而生。其旨在精准、高效地修正大语言模型中的特定知识点,能够满足大语言模型对特定知识点进行更新的需求。本节将从思想、定义、性质等方面对模型编辑进行初步介绍。

5.1.1 模型编辑思想

在《三体2:黑暗森林》中,面壁者希恩斯和他的妻子共同研发了一种名为“思想钢印”的设备,目的是向太空军灌输“人类必胜”的坚定信念。这个机器的原理是让接受者在接触到特定信息时,修改大脑处理过程,使之输出正向答案。模型编辑的思想大致与此相似,旨在通过增加或修改模型参数,快速有效地改变模型行为和输出。

模型学习知识的过程还可以与人类学习知识的过程相对应。首先,在体验世界的过程中,我们能够接触到海量的知识,从而形成自身的知识体系,这可以类比成大语言模型的预训练过程。其次,我们可以选择针对不同学科进行专门的学习,提升自己在特定领域的能力,这可以类比成大语言模型的微调过程。此外,在与他人交流的过程中,我们会针对特定的知识进行探讨,从而纠正自己在该知识点上的错误认知,这就可以类比成模型编辑的思想。

以上方式,都可以满足“纠正大语言模型”的需求。与重新预训练和微调方法不同的是,模型编辑期望能更加快速、精准地实现对于模型特定知识点的修正。

5.1.2 模型编辑定义

当前,模型编辑领域尚缺乏统一标准,不同研究对相关概念的定义各不相同。本书将不同工作中提到的基于知识的模型编辑(KME, Knowledge Model Editing)[25]和知识编辑(KE, Knowledge Editing)[28]等概念统一为模型编辑(ME, Model Editing)。此外,有些研究用“编辑”(edit)[27]或“事实”(fact)[17, 18]来表示具体的编辑对象,本书将这些概念统一为“知识点”。

模型编辑的目标可被归纳为:修正大语言模型使其输出期望结果,同时不影响其他无关输出。本书将模型编辑定义如下:

定义5.1(模型编辑)

将编辑前模型定义为 MM ,编辑后模型定义为 MM^{*} 。每一次编辑都修改模型的一个知识点 kk ,知识点 kk 由问题 xkx_{k} 及其对应的答案 yky_{k} 组成。那么,模型编辑的目标可以表示为以下函数:

M(x)={yk,x=xkxxk相 关,M(x),xxk无 关.M ^ {*} (x) = \left\{ \begin{array}{l l} {y _ {k},} & {\text {若} x = x _ {k} \text {或} x \text {与} x _ {k} \text {相 关},} \\ {M (x),} & {\text {若} x \text {与} x _ {k} \text {无 关}.} \end{array} \right.

上述定义中有关“相关”和“无关”的判断,涉及到模型编辑的范围问题,本书将在第5.1.3小节讨论。

图5.2用“斑马皮肤颜色”这一知识点作为示例,展示了模型编辑的概念。在这个示例中,当被询问“斑马的皮肤是什么颜色的?”时,编辑前模型回答了错误答案“肉色”,而编辑后的模型可以回答出正确答案“黑色”。

然而,实际的模型编辑过程远比理论定义复杂。这主要源于知识的内在关联性:当修改模型对某一特定知识点的认知时,由于该知识点可能与其它知识点相关联,所以可能会影响模型对其它相关知识点的理解,从而产生“牵一发而动全身”的效应。因此,如何精确控制模型编辑的范围成为一个关键挑战。精准可控的模型


图5.2: 模型编辑概念图。

编辑技术需要满足一系列性质。这些性质不仅反映了模型编辑的复杂性,也为评估和改进编辑方法提供了重要指标。接下来对模型编辑的关键性质进行介绍。

5.1.3 模型编辑性质

模型编辑的首要目标是纠正模型的错误回答,使其给出我们期望的答案。在此基础上,考虑到知识的内在关联性,需要进一步精准控制模型编辑的范围。除此之外,还要保证模型编辑的效率。因此,需要从多个方面控制模型编辑过程。


图5.3:模型编辑性质关系图。

本书根据已有工作[16,25,27,28],将模型编辑的性质归纳为五个方面,分别为准确性(Accuracy)、泛化性(Generality)、可迁移性(Portability)、局部性(Locality)和高效性(Efficiency)。图5.3通过相关示例直观地展示了这些性质之间的关系。

1. 准确性

准确性衡量对某个知识点 kk 的直接修改是否有效。前面提到,在进行模型编辑时,许多方法通常会选取知识点 kk 中的一对代表性输入输出 (xk,yk)(x_{k},y_{k}) 对模型进行直接修改。因此,在评估编辑方法时,首先需要评估编辑后模型 MM^{*} 能否准确回答问题 xkx_{k} ,也就是图5.3中“斑马的皮肤是什么颜色的?”这个问题。如果 MM^{*} 可以输出 yky_{k} ,则认为本次编辑准确。采用以下公式来表示一次编辑是否准确:

Acc=I(M(xk)=yk)(5.1)\operatorname {A c c} = I \left(M ^ {*} \left(x _ {k}\right) = y _ {k}\right) 。 \tag {5.1}

该公式通过一个指示函数 I()I(\cdot) 进行计算,仅当编辑后模型在目标问题 xkx_{k} 上的输出 M(xk)M^{*}(x_{k}) 与答案 yky_{k} 相匹配时,Acc的值为1,否则为0。对于多次编辑,可采用均值来计算平均准确率。准确性是模型编辑的最基本要求,它确保了编辑后的模型能够符合设计者的预期,准确地执行特定的任务。只有当模型能够满足准确性时,才能够进一步去满足其它性质。

2. 泛化性

泛化性用来衡量编辑后模型能否适应目标问题 xkx_{k} 的其他表达形式,即判断模型在面对与 xkx_{k} 具有语义相似性的问题时,能否给出统一的目标答案 yky_{k} 。泛化性问题对应图5.3中黄色部分的问题“剃毛后的斑马是什么颜色的?”和“请告诉我斑马的肤色”,这两个问题的正确答案都是“黑色”。

为了评估编辑后模型的泛化性,研究者通常会构造一个泛化性数据集 DG={(xi,yk)}i=1DGD_G = \{(x_i, y_k)\}_{i=1}^{|D_G|} ,其中 xix_i 是与 xkx_k 具有语义相似性的问题,它们的答案都为 yky_k 。采用

以下公式来量化编辑后模型的泛化性:

Gen=1DGi=1DGI(M(xi)=yk)(5.2)\operatorname {G e n} = \frac {1}{| D _ {G} |} \sum_ {i = 1} ^ {| D _ {G} |} I \left(M ^ {*} \left(x _ {i}\right) = y _ {k}\right) 。 \tag {5.2}

当 Gen 的值为 1 时,说明编辑后模型能够正确回答 DGD_{G} 中的所有问题,此时泛化性最好。确保编辑模型的泛化性可以防止编辑后模型过度拟合特定的输入,从而保证模型对于知识点的理解。

3. 可迁移性

可迁移性是指编辑后模型将特定知识点 kk 迁移到其它相关问题上的能力。为了评估编辑后模型的可迁移性,最重要的是构建可迁移性数据集,该数据集可用于评估模型对与 kk 间接相关的问题的适应能力。

将可迁移性数据集表示为 DP={(xi,yi)}i=1DPD_P = \{(x_i, y_i)\}_{i=1}^{|D_P|} ,其中 xix_i 是与 xkx_k 相关但答案不同的问题, yiy_i 为对应答案。 xix_i 可以表达为多种形式,包括反向问题、推理问题和实体替换问题等。如图5.3蓝色部分的问题所示,“皮肤颜色为黑色的马是什么马?”是一个反向问题,“斑马的皮肤颜色是否与其毛发颜色相同?”是一个推理问题,“黑白条纹相间的马的皮肤是什么颜色的?”则是一个实体替换问题,这三个问题的答案都不是“黑色”。可迁移性数据集 DPD_P 中的问题与泛化性数据集 DGD_G 中的问题不重叠,且问题答案不同,即 yiyky_i \neq y_k 。采用以下公式来量化编辑后模型的可迁移性:

Port=1DPi=1DPI(M(xi)=yi)(5.3)\operatorname {P o r t} = \frac {1}{| D _ {P} |} \sum_ {i = 1} ^ {| D _ {P} |} I \left(M ^ {*} \left(x _ {i}\right) = y _ {i}\right) 。 \tag {5.3}

当Port的值为1时,说明模型可以正确回答可迁移性数据集中的所有问题,此时模型的可迁移性最好。可迁移性考察了模型在编辑知识点上的迁移能力,对于模型编辑的实际应用至关重要。然而,大多数模型编辑方法往往无法实现较好的可迁移性,这也是模型编辑中的一个挑战。

4. 局部性

局部性要求编辑后的模型不影响其他不相关问题的输出。局部性问题对应

图5.3中灰色部分的问题“赤兔马的皮肤是什么颜色的?”、“斑马喜欢吃什么?”等等。一般来说,研究者会在常用的常识数据集中选择一些与知识点 kk 不相关的问题作为局部性评估。将局部性数据集定义为 DL={(xi,M(xi))}i=1DLD_{L} = \{(x_{i},M(x_{i}))\}_{i = 1}^{|D_{L}|} ,其中 xix_{i} 是与 xkx_{k} 无关的问题。采用以下公式来量化编辑后模型的局部性:

Loc=1DLi=1DLI(M(xi)=M(xi))(5.4)\operatorname {L o c} = \frac {1}{| D _ {L} |} \sum_ {i = 1} ^ {| D _ {L} |} I \left(M ^ {*} \left(x _ {i}\right) = M \left(x _ {i}\right)\right) 。 \tag {5.4}

当Loc的值为1时,编辑后模型的局部性最好,此时,编辑后模型对局部性数据集中所有问题的回答与编辑前一致。确保局部性能够降低模型编辑的副作用,是模型编辑相较于朴素微调的重要改进。

5. 高效性

高效性主要考虑模型编辑的时间成本和资源消耗。在实际应用中,模型可能需要频繁地进行更新和纠错,这就要求编辑过程必须足够快速且资源友好。此外,对于大量的编辑任务,不同方法的处理效率也有所不同,有的方法支持批量并行编辑[2,6,18-20],有的则需要依次进行[4,13,17]。高效性直接影响到模型编辑的可行性和实用性。

在评估模型编辑方法时,需要在这五个性质之间寻找平衡。理想的编辑方法应当在保证准确性的基础上,尽可能地提高泛化性、可迁移性和局部性,同时保持高效性。

5.1.4 常用数据集

前文探讨了模型编辑的定义与性质。接下来,我们将介绍一些先前研究中使用过的具体数据集,这些数据集可用于测试和比较不同的模型编辑方法。

在模型编辑的相关研究中,使用最广泛的是由Omer Levy等人提出的zsRE数据集[14]。zsRE是一个问答任务的数据集,通过众包模板问题来评估模型对于特定关系(如实体间的“出生地”或“职业”等联系)的编辑能力。在模型编辑中,

zsRE 数据集用于检查模型能否准确识别文本中的关系,以及能否根据新输入更新相关知识,从而评估模型编辑方法的准确性。

表 5.1: 模型编辑相关数据集总结表格。

2023年,[17]提出了COUNTERFACT数据集,被后续工作广泛采用。COUNTERFACT被设计用来区分两种类型的知识修改:一种是词汇的表面变化,也就是文本中单纯的词语替换或结构调整,不会影响信息的实质内容;另一种是对基础事实知识显著且泛化的修改,也就是对文本中所描述的事实或信息进行根本性的

改变,这通常需要更深层次的理解和处理能力。COUNTERFACT能够评估模型对编辑后知识的理解和反应,进而衡量模型的泛化性和局部性。文献[27]在ZsRE和COUNTERFACT数据集的基础上,使用GPT-4生成相应问题的反向问题、推理问题和实体替换问题,构造了可迁移性数据集。

此外,研究者还针对不同领域和任务开发了专门的数据集,如Hallucination[10]用于纠正GPT语言模型中的幻觉,ConvSent[20]用于评估模型在修改对话代理对特定主题的情感时的效果。表5.1从数据类型、样本数量以及输入输出形式方面总结了一些模型编辑相关数据集。这些数据集涵盖了从事实检查、知识关联到特定领域等多种类型,体现了模型编辑技术在不同场景中的应用潜能。

本节介绍了模型编辑的定义、性质、评估方法以及常用数据集,对模型编辑任务做出了详细的解释和说明。接下来,第5.2节将对模型编辑方法进行系统性概述,将其分为外部拓展法和内部修改法,并介绍每类方法的代表性工作。第5.3节和第5.4节将分别深入探讨外部拓展法中的T-Patcher方法和内部修改法中的ROME方法,通过这两种代表性方法,帮助读者更加细致地理解模型编辑方法的研究过程。最后,第5.5节将全面介绍模型编辑的实际应用,并分别举例说明解决思路。