引言

我们通常认为大型语言模型 (LLM) 是巨大的知识库,但它们有一个显著的弱点: 它们无法记住所有内容,尤其是实时事件或特定领域的知识。为了解决这个问题,AI 社区广泛采用了 检索增强生成 (Retrieval-Augmented Generation, RAG) 技术。其概念很简单: 当向 LLM 提问时,它首先搜索外部数据库 (如维基百科) 以查找相关文档,然后利用这些文档生成答案。

理想情况下,这赋予了 LLM “开卷考试”的能力。然而,这其中存在一个陷阱。如果这本“书”是错误的、无关的或具有误导性的,会发生什么?

标准的 RAG 系统基于盲目信任运行。它们检索文档并将其提供给 LLM,假设这些信息是有用的。但正如最近的研究强调的那样,LLM 很容易分心。如果检索系统引入了噪声,LLM 往往会产生幻觉或基于该噪声提供错误的答案。

请看下图所示的场景:

图 1: LLM 可能会被无关文档误导,并且难以判断文档的相关性。

如图 图 1 所示,LLM 可能根据其内部训练就已经知道答案 (第 1 行) 。然而,如果你给它提供一份包含无关或略带误导性信息的文档,模型可能会被诱导给出错误的答案 (第 2 行) 。更糟糕的是,标准的 LLM 很难自我评估文档是否真的相关 (第 3 行) 。

为了填补这一空白,研究人员推出了 REAR (RElevance-Aware Retrieval-augmented framework,相关性感知检索增强框架) 。 这种新方法旨在赋予 LLM 关于外部数据的“自我感知”感。REAR 不再盲目接受检索到的文档,而是显式地评估其相关性,并自适应地决定是信任外部来源还是依赖其自身的内部知识。

在这篇深度文章中,我们将探讨 REAR 架构的工作原理,它如何融合内部和外部知识,以及为什么其训练方法为开放域问答 (QA) 中的噪声问题提供了强有力的解决方案。


背景: 开放域 QA 的语境

在剖析 REAR 之前,了解开放域问答的标准工作流程很有帮助。

该任务通常涉及一个 检索器-阅读器 (Retriever-Reader) 流程。给定一个查询 \(q\) (例如,“谁赢得了第一个诺贝尔物理学奖?”) , 检索器 会扫描海量文档集合 \(\mathcal{D}\) 以找到前 \(k\) 个最相似的文档。

阅读器 (即 LLM) 随后获取这些文档并尝试生成答案。从数学上讲,对于一组检索到的文档,LLM 会生成一组候选答案:

公式 1: 标准 RAG 公式。

在传统设置中,LLM 将这些文档视为事实真理。然而,检索是不完美的。它经常返回与查询共享关键字但没有任何语义答案的文档,或者更糟糕的是,包含相互矛盾信息的文档。

最近修复此问题的尝试,如 Self-RAGRobustLM,试图通过生成特殊标记 (如 [Relevant][Irrelevant]) 让模型在回答之前进行“内省”。虽然这是一个正确的方向,但这些方法通常依赖于二元分类 (相关 vs. 不相关) ,这种分类过于稀疏,无法捕捉文档实际有用程度的细微差别。它们还将相关性评估和答案生成视为松散耦合的步骤,而不是一个深度集成的过程。

这就是 REAR 改变游戏规则的地方。


REAR 架构

REAR 的核心理念是,LLM 不应仅仅生成文本;它应该同时充当其自身输入的裁判。作者提出了一种新颖的架构,将显式的 评估模块 (Assessment Module) 直接集成到生成过程中。

该框架分三个不同的步骤运行,如下图所示:

图 2: 提议的 REAR 框架概述。

让我们详细分解这三个阶段: 相关性评估相关性引导生成知识可靠性验证

1. 相关性评估

当 REAR 模型接收到查询 \(q\) 和检索到的文档 \(d\) 时,它不会立即尝试回答问题。首先,它对这对组合进行编码以理解它们的关系。

该模型使用 LLM 骨干网络来创建查询和文档的表示。具体来说,它查看最后一个 token 的隐藏状态以提取“相关性嵌入”,记为 \(v_{rel}\)。

公式 2: 计算相关性嵌入。

这个向量 \(v_{rel}\) 包含了关于文档与查询匹配程度的语义信息。但嵌入向量是抽象的。为了使其可操作,REAR 将此向量通过一个专门设计的 评估模块 (一个线性投影层) ,输出一个标量分数 \(s_{rel}\)。

公式 3: 计算相关性分数。

这个分数 \(s_{rel}\) 代表模型对文档的信心。高分意味着文档高度相关;低分表明它是噪声。与之前要求 LLM 输出单词“Yes”或“No”的方法不同,这种方法利用模型的高维内部状态来产生精确、连续的相关性分数。

2. 相关性引导生成

这是 REAR 框架最具创新性的部分。在标准方法中,一旦判断了相关性,通常只是用来过滤文档。然而,REAR 使用相关性分数来 引导 答案本身的生成。

因为相关性分数 \(s_{rel}\) 只是一个数字 (标量) ,庞大的神经网络很难直接关注它。为了解决这个问题,研究人员将此分数映射回一个高维向量,称为 引导向量 (\(v_{guide}\))。

公式 4: 创建引导向量。

这个 \(v_{guide}\) 本质上是一个信号弹。它与查询和文档一起被送入 LLM。它告诉模型: “这份文档的相关性得分为 0.9,所以相信它,” 或者 “这份文档得分 0.1,所以忽略它,使用你的内部参数化知识。”

有了这个指导,LLM 生成答案 \(a\):

公式 5: 在指导下生成答案。

这创建了一个动态系统,模型可以根据检索信息的质量即时调整其行为。

3. 知识可靠性验证

即使有最好的评估,模型也可能犯错。研究人员引入了一个生成后的验证步骤来复查答案的有效性。他们提出了两种策略,但最有趣的是 知识一致性 (Knowledge Consistency)

其逻辑灵感来自人类推理: 如果你对一个事实很有信心 (例如,“天空是蓝色的”) ,阅读一份说“天空是绿色的”的文档不应该轻易改变你的想法。相反,如果你不知道答案,你会完全依赖文档。

为了在数学上测试这一点,REAR 计算一个“一致性分数”。它实际上是在问: 如果我们强迫模型认为该文档是不相关的,模型会有多困惑?

他们通过将相关性信号设置为零 (\(\hat{s}_{rel} = 0\)) 并测量生成答案的 困惑度 (Perplexity, PPL) 来做到这一点。困惑度衡量模型对一系列单词感到“惊讶”的程度。

公式 6: 计算知识一致性分数。

  • 场景 A: 模型利用文档来回答,因为它自己不知道答案。如果我们把相关性设为 0 (告诉模型“忽略文档”) ,模型对该答案的困惑度会飙升 (它会对答案感到非常“惊讶”) 。
  • 场景 B: 模型使用了它自己的内部知识。将相关性设为 0 不会太大地改变困惑度,因为模型本来就不需要那份文档。

通过将原始相关性分数 (\(s_{rel}\)) 与这个一致性分数 (\(c\)) 相结合,REAR 选择出的最终答案能够平衡外部证据与内部信心。


训练: 教模型学会怀疑

架构只是战斗的一半。为了使 REAR 有效,研究人员必须设计一套复杂的训练方案。标准的 RAG 模型通常在“黄金” (完美) 查询-文档对上进行训练。它们在训练期间很少看到噪声,因此它们从未学会识别噪声。

REAR 引入了两项主要的训练创新: 双粒度相关性融合 (Bi-granularity Relevance Fusion)抗噪训练 (Noise-Resistant Training)

双粒度相关性融合

对于复杂的问题,二元标签 (相关/不相关) 通常是不够的。正如 图 4 所示,文档存在于一个谱系上。有些包含直接答案,有些包含需要推理的线索,有些则完全无关。

图 4: 不同检索文档和不同标记指标的示意图。

如果我们只使用二元标签 (对勾/叉号) ,我们就会失去“完美匹配”和“有用的线索”之间的细微差别。

REAR 使用 双粒度 训练,结合了:

  1. 粗粒度 (二元) : 是否相关?
  2. 细粒度 (排名) : 与其他文档相比,它的相关性 如何

为了实现细粒度监督,作者使用了基于偏好的损失函数。他们强制模型给更相关的文档 (\(s_i\)) 分配比相关性较低的文档 (\(s_j\)) 更高的分数。

公式 7: 细粒度偏好损失。

总损失结合了粗粒度和细粒度信号:

公式 8: 双粒度损失函数。

这确保了模型能够区分“完全错误”、“有点帮助”和“完全正确”。

抗噪训练

为了防止模型在获得不良数据时产生幻觉,研究人员显式地在训练集中包含了 负样本 (无关文档) 。

他们使用一种称为 困难负样本采样 (Hard Negative Sampling) 的技术。他们不是挑选随机的无关文档 (这太容易识别了) ,而是挑选与查询 相似 但不包含答案的文档。这迫使模型仔细阅读。

采样概率经过精心计算,以确保负样本具有难度,但不是“假负样本” (即实际上被错误标记的正确文档) 。

公式 9: 负样本的采样概率。

然后,模型被训练为最大化正确答案的概率,即使提供的文档明显无关 (有效地训练它回退到内部知识) 。

公式 10: 抗噪损失。

通过结合这些目标,REAR 的最终训练损失为模型应对开放域搜索的混乱现实做好了准备:

公式 11: REAR 总损失函数。


实验与结果

添加评估模块和带噪声训练真的有帮助吗?研究人员在四个主要数据集上将 REAR 与几个有竞争力的基线 (包括 Self-RAGRobustLM )进行了测试: Natural Questions (NQ)、TriviaQA、WebQuestions (WebQ) 和 SQuAD。

主要性能

结果总结在 表 3 中,显示 REAR 始终优于基线。

表 3: REAR 与基线模型的比较。

Natural Questions (NQ) 数据集上,REAR 实现了 51.41% 的精确匹配 (EM) 分数,显著高于 Self-RAG (41.02%) 和 RobustLM (44.40%)。这种模式在 TriviaQA 和 SQuAD 上同样成立。

值得注意的是该表的最后两行:

  • w/ Source Rel: 仅使用相关性分数。
  • w/ Knowledge Con: 使用“知识一致性”验证 (困惑度检查) 。

添加知识一致性始终能产生最高的分数,证明验证模型对外部数据的依赖是一个关键的最后步骤。

相关性辨别

该论文的一个关键主张是,生成式 LLM 不擅长判断相关性。 表 4 验证了这一主张。

表 4: 相关性辨别能力。

  • JAcc (Judgmental Accuracy,判断准确率): 衡量模型多久能正确地将文档标记为相关或不相关。
  • Hit@1: 衡量为最终答案选择的文档实际上是否相关。

使用提示的标准 LLaMA-2 在 Natural Questions 上仅达到 25.04% 的 JAcc。这基本上是在猜测。多亏了其专门的评估模块,REAR 跃升至 74.04% 。 这一巨大的差距说明了为什么架构改变——整合显式评分模块——是必要的。

对文档数量和质量的鲁棒性

在现实世界的 RAG 中,我们经常检索多个文档 (5 个、10 个或更多) 。一个健壮的系统应该随着文档的增加而变得更好,而不是更困惑。

图 3 (左) 显示了随着文档数量增加的性能表现。

图 3: RAG 性能随文档总数和质量的变化而变化。

虽然基线 Llama2-13B (粉红线) 随着文档增多几乎没有改善甚至退化 (可能是被噪声淹没了) ,但 REAR (蓝条) 显示出稳定的提升。

同样, 图 3 (右) 显示了基于检索器质量的性能 (R1 是弱检索器,R3 是强检索器) 。即使使用较弱的检索器,REAR 仍保持显著领先,表明它有能力过滤掉较弱检索器引入的噪声。

效率

有人可能会担心,添加“评估模块”和计算相关性分数会减慢系统速度。然而,正如 表 2 所示,REAR 的效率令人惊讶。

表 2: 效率分析。

Chain-of-Note (CoN) 等为相关性生成长文本解释的方法相比,REAR 在推理期间的速度要快得多 (0.45秒 vs 0.82秒) 。它甚至比 Self-RAG 还要快。这是因为 REAR 使用轻量级线性层进行评估,而不是生成需要昂贵的自回归解码的额外 token。


结论与启示

REAR 框架解决了现代 AI 中最持久的“信任问题”之一: LLM 倾向于随声附和,同意摆在它们面前的任何文档,即使那是错的。

通过机械地分离 相关性评估答案生成 , 然后通过嵌入引导将它们重新融合,REAR 允许模型在开口之前“思考”其来源的有效性。

这项研究的关键要点是:

  1. 显式评估: LLM 需要特定的模块来判断相关性;它们无法很好地隐式完成这项工作。
  2. 引导向量: 将相关性分数作为嵌入传递,允许模型在外部文档和内部知识之间动态调整注意力。
  3. 噪声训练: 你必须在“坏”数据上训练模型,这样它们才能学会拒绝它。

随着 RAG 系统成为企业和学术 AI 应用的标准,像 REAR 这样的框架将变得至关重要。它们让我们从“盲目检索”走向更健壮、更具自我感知和更可靠的生成过程。