如何定位和编辑GPT中的事实关联?
摘要:论文发表于人工智能顶会NeurIPS(原文链接),研究了GPT(Generative Pre-trained Transformer)中事实关联的存储和回忆,发现这些关联与局部化、可直接编辑的计算相对应。因此: 1、开发了一种因果干预方法,
论文发表于人工智能顶会NeurIPS(原文链接),研究了GPT(Generative Pre-trained Transformer)中事实关联的存储和回忆,发现这些关联与局部化、可直接编辑的计算相对应。因此:
1、开发了一种因果干预方法,用于识别对模型的事实预测起决定性作用的神经元。
2、为了验证这些神经元是否对应于事实关联的回忆,使用秩一模型编辑 (Rank-One Model Editing, ROME) 修改前馈权重来更新特定的事实关联。
3、提出一个反事实断言数据集来评估ROME。
阅读本文请同时参考原始论文图表。
方法
如图1所示,将自回归模型的中间表示与输出之间的关系表示为图节点的形式,从而可以分析输出与中间表示之间的因果关系。定义输入语言变量为$x=[x_1,…,x_T]$,则第$i$个输入变量的第$l$层激活为$h_i^{(l)}$。模型各层计算可以表示为文中式(1):
本文使用最后一个输入的最后一层激活$h^{(L)}_T$映射到词汇空间作为模型输出。实验使用包含事实三元组$(s,r,o)$的头$s$和关系$r$的句子作为输入,预测尾实体$o$。
因果中介分析
为了分析哪些中间激活对正确事实预测的贡献最大,使用三种配置对模型$G$推理三次:
1、Clean run:输入干净的句子,得到干净的中间激活$\{h_i^{(l)}|i\in [1,T],l\in[1,L]\}$和模型对尾实体$o$的预测概率$\mathbb{P}[o]$。
2、Corrupted run:用噪声污染每个$s$的词嵌入$h_i^{(0)}$,得到污染的中间激活$\{h_{i*}^{(l)}|i\in [1,T],l\in[1,L]\}$和模型对尾实体$o$的预测概率$\mathbb{P}_*[o]$。
3、Corrupted-with-restoration run:使用干净的中间激活替换污染的中间激活,得到替换$h_i^{(l)}$时模型对尾实体$o$的预测概率$\mathbb{P}_{*,clean\, h_i^{(l)}}[o]$。
定义总效应 $\text{TE}=\mathbb{P}[o]-\mathbb{P}_*[o]$,表示受污染的输入对模型性能的损害程度。
定义间接效应 $\text{IE}=\mathbb{P}_{*,clean\, h_i^{(l)}}[o]-\mathbb{P}_*[o]$,表示输入被污染后,恢复中间激活$h_i^{(l)}$对模型性能的恢复程度。下面关于各层模块输出的影响程度都是通过Average IE (AIE) 来评估。
其实验代码汇总并不是每次只恢复污染一个表示,而是一个窗口。如当窗口为10时,恢复层数为$[l-5,l+5]$11个表示。
分析结果1
图1e/f/g 可视化了模型在一个样本上分别恢复层激活$h_i^{l}$、FFN激活$m_i^{(l)}$、注意力激活$a_i^{(l)}$的影响,以恢复模型中间状态在正确答案上的概率来衡量。
图2a/b/c 可视化了模型在超过1000个样本上分别恢复三个激活对正确预测的平均影响程度,以IE来衡量。
根据图1/2,可以看出:
1、较前层的FFN在句子主体$s$的最后一个token位置的激活$m_i^{(l)}$对预测的影响较大。这说明本文提出的因果分析方法可以有效定位影响模型预测的中间激活,也和之前认为FFN保存知识的研究结果一致。
2、较后层的注意力模块在句子的最后一个token位置的激活$a_i^{(l)}$对预测影响较大,这是比较正常的现象。
3、可以看出层激活$h_i^{(l)}$对预测的影响是以上两者的综合。
附录B.2 图7进一步展示了模型三类模块在句子各部分的激活对模型输出的影响。
结果分析2
为了对FFN在句子的前半部分所起的作用有更清晰的理解,作者进一步修改因果图来研究其因果效应。如图3左所示,当把主体$s$最后一个token的层激活$h_{i}^{(l)}$修正(使用干净激活替换污染激活)时,对于其后面的隐藏状态$h^{(k)}_{i},k>l$,使用原始保存的没修正时(污染)的FFN输出$m_{i*}^{(k)}$代替后续计算出的$m_{i}^{(k)}$,从而在关于$h_i^{(l)}$对模型预测的影响中去除FFN的效应。从右图可以看出,FFN计算的去除使得较前层的$h_i^{(l)}$对模型预测的影响显著降低,说明$h_i^{(l)}$后续的FFN计算(读取记忆)对预测是至关重要的,而注意力模块(粉色)则没有这个结果。
