将语言模型中的事实知识追溯到训练数据.
0. TL; DR
本文提出了“事实追踪”(fact TracIng)这一新问题,旨在识别哪些训练样本教会了语言模型(LM)生成特定的事实性断言。研究者们构建了两个评估数据集(FTRACE-TREX 和 FTRACE-SYNTH),并比较了基于梯度和基于嵌入的两种训练数据归因(TDA)方法。结果表明,这些方法在识别真正“支持者”(proponents,即对模型预测有贡献的训练样本)方面仍有很大的提升空间,甚至不如一个简单的基于信息检索(IR)的基线方法(BM25)。研究还探讨了影响TDA方法性能的关键因素,如梯度饱和问题,并提出了改进方向。
1. 背景介绍
语言模型(LMs)通过在大规模文本语料库上进行训练,能够记忆大量的事实性知识。然而,当LM生成一个断言时,很难确定它是从哪里学到这些信息的,以及这些信息是否真实。本文提出的“事实追踪”任务,旨在识别哪些训练样本教会了LM生成特定的事实性断言。此前的研究主要集中在将模型的预测与特定训练样本联系起来的任务上,但这些研究大多关注分类和回归任务,并未涉及细粒度的事实性信息。本文通过构建专门的评估数据集和计算上可行的评估流程,首次对LM的事实追踪进行了系统研究。
2. 方法介绍
2.1 训练数据归因方法
(1) 梯度归因方法 Gradient-based Attribution
梯度归因方法的核心是估计训练样本对测试样本损失的影响。其中,影响力函数(Influence functions)是一种经典方法,它通过计算训练样本对测试样本损失的边际影响来估计影响力。
具体来说,给定一个训练样本 $z = (x, y)$ 和一个测试样本 $z_{\text{query}} = (x_{\text{query}}, y_{\text{query}})$,影响力函数试图估计在训练时对特定训练样本 $z$ 的权重增加 $\epsilon$ 时,测试样本 $z_{\text{query}}$ 的损失变化。
计算训练样本 $z$ 的影响力涉及首先估计在训练目标中将示例 $z$ 的权重增加 $\epsilon$ 时最优参数 $\hat{\theta}$ 的变化,然后计算测试样本 $z_{\text{query}}$ 的损失相对于参数变化的变化量。对于凸损失函数,影响力得分可以表示为:
\[I(z, z_{\text{query}}) = - \nabla_{\theta} L(z_{\text{query}}, \hat{\theta})^\top H_{\hat{\theta}}^{-1} \nabla_{\theta} L(z, \hat{\theta})\]其中,$\nabla_{\theta} L(z, \theta)$ 表示在模型参数 $\theta$ 下,样本 $z$ 的损失函数的梯度,$H_{\hat{\theta}}$ 表示在最终收敛的模型参数 $\hat{\theta}$ 处训练目标的Hessian矩阵。
然而,由于逆Hessian矩阵计算的复杂性,直接应用影响力函数进行事实追踪在计算上是不可行的。因此,本文采用了TracIn方法,它通过在训练过程中记录梯度信息,来估计训练样本对模型预测的影响。
TracIn的核心思想是,在训练过程中,每当对训练样本 $z$ 进行梯度更新时,记录测试样本 $z_{\text{query}}$ 的损失变化。具体来说,TracIn使用一阶泰勒近似来估计影响力,即:
\[I_t(z, z_{\text{query}}) = \nabla_{\theta} L(z_{\text{query}}, \theta_t)^\top \nabla_{\theta} L(z, \theta_t)\]其中,$\theta_t$ 表示在训练步骤 $t$ 时的模型参数。如果在训练过程中对训练样本 $z$ 进行了 $K$ 次梯度更新,则总的影响力为:
\[I(z, z_{\text{query}}) = \sum_{k=1}^{K} I_{t(k)}(z, z_{\text{query}})\]其中,$t(k)$ 表示对训练样本 $z$ 进行第 $k$ 次梯度更新的训练步骤。
为了提高TracIn的性能,本文还引入了一些改进措施。例如,对梯度进行单位归一化,以减少异常训练样本(具有大梯度的样本)对影响力估计的影响。此外,还考虑了使用多个训练检查点来近似计算影响力,而不是仅使用单个检查点。这些改进措施在实验中被证明是有效的,显著提高了TracIn的事实追踪性能。
(2) 嵌入归因方法 Embedding-based Attribu
嵌入归因方法的核心思想是利用神经网络的隐藏表示来进行相似性搜索。具体来说,从Transformer语言模型中提取中间层的输出,并通过对解码时间步长的平均来获得单个向量表示。对于任何样本,其表示为$\text{LM}{\text{inter}}(z)$, 其中$\text{LM}{\text{inter}}$ 表示模型中间层的输出。
与梯度归因方法类似,训练样本与模型预测之间的关联通过余弦相似度来定义:
\[I(z, z_{\text{query}}) = \frac{\text{LM}_{\text{inter}}(z)^\top \text{LM}_{\text{inter}}(z_{\text{query}})}{\|\text{LM}_{\text{inter}}(z)\| \|\text{LM}_{\text{inter}}(z_{\text{query}})\|}\]在实验中,本文考虑了Transformer不同层的表示,以及它们的组合。结果表明,嵌入归因方法在某些情况下能够有效地识别出对模型预测有贡献的训练样本。
(3) 基线方法:BM25
为了评估归因方法的有效性,本文还引入了一个基于信息检索(IR)的基线方法——BM25。BM25是一种经典的IR技术,它通过计算查询和候选文档之间的词项重叠来选择支持样本。具体来说,BM25的得分计算公式为:
\[I(z, z_{\text{query}}) = \sum_{t \in z_{\text{query}}} \log \left( \frac{N + 1}{N_t} \right) \times \left( \frac{(k_1 + 1) \cdot f(z, t)}{k_1 \cdot \left( (1 - b) + b \cdot \frac{L(z)}{L_{\text{avg}}} \right) + f(z, t) + 1} \right)\]其中,$f(z, t)$ 表示词项 $t$ 在样本 $z$ 中的出现次数,$N$ 是训练样本的总数,$L(z)$ 是样本 $z$ 的长度,$L_{\text{avg}}$ 是平均样本长度,$k_1$ 和 $b$ 是超参数。
2.2 归因评估数据集
为了评估归因方法的有效性,本文构建了两个专门的评估数据集:FTRACE-TREX 和 FTRACE-SYNTH。
FTRACE-TREX 数据集基于 TREx 数据集构建,包含真实的事实;FTRACE-SYNTH 数据集则包含合成的事实,这些事实是通过随机生成的实体和关系构建的,以确保它们是预训练 LM 所不知道的。这两个数据集都提供了明确的关于特定事实来源的真值信息,使得可以评估任何 TDA 方法在识别这些“支持者”方面的能力。
为了缓解 TDA 方法在大规模数据集上的高计算成本,本文采用了重新排序设置。具体来说,不是在所有训练样本上运行 TDA 方法,而是在一个包含“候选”样本的小子集上运行,这个子集保证包含真正的“支持者”以及一些不是真正“支持者”的“干扰”样本。这样,TDA 方法总是有机会识别出真正的“支持者”,同时仍然面临着具有挑战性的干扰样本,这使得可以区分多种方法的性能。
3. 实验分析
实验结果表明,无论是梯度归因方法还是嵌入归因方法,在识别真正“支持者”方面的表现都不如 BM25 基线方法。这表明,尽管进行了优化,但现有的 TDA 方法在事实追踪任务上仍有很大的提升空间。
实验还探讨了不同 Transformer 层对归因信号的贡献。结果表明,对于 TracIn 方法,最佳的归因信号来自模型的嵌入层,而对于 EMBED 方法,最佳的归因信号同样来自嵌入层的输出。这表明,嵌入层在捕捉与事实相关的词汇相似性方面发挥了重要作用。此外,实验还发现,使用单个最佳检查点的性能有时甚至优于使用多个检查点的性能。
梯度饱和是影响 TDA 方法性能的一个关键因素。当测试查询在训练开始时的损失已经为零时,TracIn 方法可能会失效。这是因为在这种情况下,模型在训练期间对测试查询的性能没有变化,因此无法通过监测性能变化来识别对预测有贡献的训练样本。此外,由于预训练模型在预训练语料库中看到了非常相似的句子和信息,因此对某个事实的影响可能分布在多个样本上,使得每个候选样本的信号都很弱。这些问题在 FTRACE-TREX 数据集中尤为突出。
为了验证梯度饱和问题的影响,本文还在 FTRACE-SYNTH 数据集上进行了实验。FTRACE-SYNTH 数据集通过控制事实的新颖性,避免了上述问题。实验结果表明,在 FTRACE-SYNTH 数据集上,梯度归因方法的性能显著优于 BM25 和嵌入归因方法,这验证了在控制了梯度饱和问题后,TDA 方法在事实追踪任务上具有潜在的优势。