考虑一个注意力头(位于第 l 层的第 j 个注意力头),它对前一层的残差流进行操作。设,其中 I 表示输入嵌入,注意力头可被视为处理所有前层注意力头和 MLP 及输入嵌入的累积输出。同样,MLP 节点处理所有前层的注意力头、MLP 和输入嵌入的累积输出,输出节点 O 则处理输入嵌入和所有注意力头及 MLP 的输出。Transformer 模型中的残差连接可以用以下公式表示:我们专注于回答事实上的开放领域问题的任务,目标是预测给定主题-关系对(s, r)的目标实体 o。知识三元组 k = (s, r, o) 通常以自然语言提示的形式呈现给模型,用于下一个标记预测(例如,“法国的官方语言是____”)。
在回路的构建中,对于原始模型中的计算图的每一条边,我们计算了从计算图中删除该边后,语言模型预测 o 的 Logits 与移除之前的差异,如果对于预测性能影响在 Threshold 以内,则可以认为该边对于存储该知识并没有贡献,则去除该边,经过遍历后,我们则可以获得最终的知识回路。 在得到了知识回路后,我们该如何确保构建了准确的回路呢?这里,被发现的知识回路应该是 Transformer 知识存储中特定区域的准确表示,因此,它应该能够独立地表示知识。 为了验证构建的知识回路是否准确,我们使用验证数据集构建特定类型的知识回路,并在测试集上测试其性能。通过比较与原模型的性能变化,使用 Hit@10 指标评估目标实体 o 在前十个预测标记中的排名。实验结果显示,构建的知识回路保留了语言模型大部分的能力,并在某些知识类型上有所提升,表明知识回路主要负责知识存储,避免了其他信息的干扰。 知识回路的分析我们在知识回路中可以发现不同的类型的注意力头:Mover Head, Relation Head。Mover Head 会将相应位置信息的内容移动到模型的最后一个 Token 位置中,而 Relation Head 则会关注输入中的 Relation Token,在回路中提供关系相关的信息。
图中的例子中,经过分析不同层的输出后我们发现在 MLP 第 17 层之后,目标知识在信息流中作为 Top-one Token 出现,而在该层之后,其概率一直在增加。 从发现的回路中可以看出,连接到 MLP17 的边是(L14H13 -> MLP17),(L14H7 -> MLP17)和(L15H0 -> MLP17)。 在这里,L14H13 是一个 Relation Head,主要关注上下文中的关系令牌。这个头部的输出是与关系相关的标记,例如 Languages 和 language。 而注意头 L14H7 是一个 Mover Head,它将信息从主体的位置 France 移动到最后一个标记。最终,MLP17 集成了这些信息从而将最终结果 French 作为最终的 Top one 输出。 知识编辑情况下的知识回路的变化“知识编辑”是近年来兴起的一项技术,旨在对语言模型中的特定知识进行精确修改。然而,当前的知识编辑方法存在一个普遍问题,那就是它们往往会对模型中的非编辑部分产生影响,即所谓的局部性不足。为了探讨这一问题,我们分析了知识编辑过程中知识回路的变化。本研究中,我们选择了两种不同的编辑方法—— ROME 和 Fine-Tuning(FT),并在实验中均聚焦于 MLP 的第二个线性层进行编辑。通过具体案例的分析,我们观察到尽管 ROME 和 FT 都能有效地将新知识注入模型,但在知识回路层面,两种方法的工作机制有所不同。 对于像 ROME 这样的方法,我们注意到模型修改了称为 Mover Head 的组件的信息流动。编辑后,模型中的 Mover Head(如 L15H3)能够正确地提取出“Intel”这一信息,这意味着 ROME 是通过修改特定层的 MLP,使模型能够在最后一层 Token 的位置上获得正确的知识。 相比之下,FT 类方法似乎是在编辑层中就赋予了新知识较高的 Logit 值,这直接改变了模型对新知识的认知。这意味着在 FT 方法下,新知识在较早的编辑层中就已经具有较高的概率,从而影响了模型的最终输出。 然而,无论是 ROME 还是 FT,它们都未能完全避免对模型其他部分的影响。例如,在未经编辑的情况下,模型可以正确回答“创建 Windows Server 的公司”这一问题,但在经过知识编辑后,使用 ROME 和 FT 的模型都给出了错误的答案。 从知识回路的角度来看,编辑的信息似乎影响到了与之无关的知识回路,导致了意料之外的结果偏差。
幻觉与 In-Context Learning 情况下知识回路的现象
与此同时,我们还发现知识回路有助于理解语言模型中的幻觉现象以及 In-Context Learning(即情境学习,简称 ICL)的能力。当知识回路中缺乏有效的 Mover Head,或者 Mover Head 选择了不正确的信息时,模型可能会产生幻觉。 例如,在提示 “The official currency of Malaysia is called the” 时,正确答案 “Ringgit” 和错误答案 “Malaysian” 在第 15 层之前的 rank 分布非常接近。然而,在第 16 层,Mover Head(L15H10)提取了 “Malaysian” 一词的信息,这导致模型最终输出了错误的答案。 而在 ICL 的场景中,我们的分析表明,相较于零样本学习(Zero-shot Learning),当加入示范示例(Demonstrations)时,知识回路中会出现一些新的注意力头。 如图中的案例所示,这些新的注意力头主要聚焦于示范示例的上下文中,例如 “The comparative of small is smaller”。这些注意力头的输出与任务的实际输出之间建立了紧密的联系,说明示范示例能够激活与任务相关的知识回路,从而提高模型的表现。