论文发表于人工智能顶会NeurIPS(原文链接)。当前的模型编辑器会因多次编辑损害模型性能,提出用于连续编辑的通用检索适配器(General Retrieval Adapters for Continual Editing, GRACE):使用一个类似字典的结构(适配器)为需要修改的潜在表示构建新的映射,通过更新适配器来实现持续的模型行为编辑。
阅读本文请同时参考原始论文图表。
1 方法#
GRACE是一种不修改模型权重编辑预训练模型行为的方法,适用于任何模型。为模型f f 在需要修改的层添加一个适配器,其中包含一个编码本C={(ki,vi,ϵi)}Ci=1 C = { ( k i , v i , ϵ i ) } i = 1 C 。其中的ki,vi k i , v i 表示修改后的输入和它对应的输出(通过反向传播微调得到),ϵi ϵ i 表示当该层输入hl−1 h l − 1 与ki k i 的距离d(hl−1,ki) d ( h l − 1 , k i ) 小于ϵi ϵ i 时,就使用vi v i 作为该层输出,否则正常输出该层的推理结果。这里的距离计算方式d(⋅) d ( ⋅ ) 使用欧氏距离。
GRACE编辑模型某层l l 的过程就是往编码本中添加词条的过程。如果f(xt)≠yt f ( x t ) ≠ y t ,就期望通过修改所选的某层l l 关于的输出hl h l 来使得f(xt)=yt f ( x t ) = y t :
1、对于第一个模型不满足的样本(x0,y0) ( x 0 , y 0 ) 来说,就是直接往C C 中添加(hl−10,hl0,ϵini) ( h 0 l − 1 , h 0 l , ϵ i n i ) 。其中hl−10 h 0 l − 1 是x0 x 0 在第l−1 l − 1 层的输出,hl0 h 0 l 则是通过优化第l l 层的输出使得模型输出为得到,ϵini ϵ i n i 是需要人为定义的初始化距离。
2、对于后续f(xt)≠yt f ( x t ) ≠ y t 的情况,使用算法1来对C C 进行更新。
对于PLM来说,作者仅在相应的层上对输入句子的最后一个token进行编辑,通过实验验证。
2 实验#
图2:在toy二分类MLP上的编辑结果。a可视化模型正确分类两类样本。b在红色样本区域额外添加了要被判别为蓝色的样本。c修改前,模型将新增的样本判别为红。d修改后,模型将新增样本判别为蓝,并不影响其他判别。
表1:各方法在三个数据集和对应模型上的编辑效果。TRR:模型编辑后对原始测试集的保留度。ERR:按顺序编辑模型对之前编辑的记忆的保留度。#E:模型使用各方法编辑的次数。Hallucination是对大模型幻觉的编辑,测试的是根据prompt生成句子的PPL。ROME没有在T5上实验是因为它只适用于GPT。
图4:初始距离ϵini ϵ i n i 和模型编辑块的选择对编辑效果的影响。其中,Holdout是在没见过的数据集上的泛化效果。可以看出:
-
随着编辑数量的增加,在Holdout上的准确率会变高,说明了编辑的泛化效果。
-
中间层的编辑效果相较于两端编辑效果更好。
-
ϵini ϵ i n i 越小,对原始记忆的保留程度越不容易随着编辑次数的增加而降低。
-
ϵini ϵ i n i 越大,随着编辑次数的增加,在C C 中添加的词条增长越缓慢。
3 问题#
1、球之间的重叠不能避免:当添加第二个不同标签的球后,第一个球和第二个球相切,如果再来一个样本需要扩大前两个球之一,也就是算法中的Expand情况,两个球就会重叠,导致重叠部分输出不一致。
2、无法确定潜在变量之间的距离能表征输出之间的语义相似性,如果属于某个非线性空间,计算欧氏距离可能有问题
原创作者: qizhou 转载于: https://www.cnblogs.com/qizhou/p/18913077