面向检索增强生成输出的忠实性感知不确定性量化

arXiv cs.CL 论文

摘要

本论文介绍了FRANQ方法,用于检测检索增强生成(RAG)系统中的幻觉问题。该方法应用不同的不确定性量化技术来区分事实性和对检索上下文的忠实性。作者构建了一个同时标注事实性和忠实性的新数据集,并证明FRANQ在多个数据集和大语言模型上的事实错误检测性能优于现有方法。

arXiv:2505.21072v4 公告类型:替换 摘要:大语言模型(LLM)结合检索的增强方法——检索增强生成(RAG)在开放域问答中取得了优异性能。然而,RAG仍然容易产生幻觉:事实错误的输出可能源于模型内部知识的不准确和检索上下文的缺陷。现有的幻觉缓解方法通常混淆事实性与对检索证据的忠实性,将没有被检索内容明确支持的事实正确陈述错误地标记为幻觉。在本论文中,我们介绍了FRANQ,一种用于RAG输出幻觉检测的新方法。FRANQ应用不同的不确定性量化(UQ)技术来估计事实性,并根据陈述是否忠实于检索上下文进行条件约束。为了评估FRANQ和竞争性UQ方法,我们构建了一个新的长文本问答数据集,同时标注事实性和忠实性,结合自动标记和对困难案例的人工验证。在多个数据集、任务和大语言模型上的广泛实验表明,与现有方法相比,FRANQ在检测RAG生成响应中的事实错误方面实现了更高的准确性。
查看原文
查看缓存全文

缓存时间: 2026/04/20 08:30

# 忠实度感知的不确定性量化用于检验检索增强生成的输出事实

来源: https://arxiv.org/html/2505.21072

###### 摘要

配备检索功能的大语言模型(LLMs),称为检索增强生成(RAG),在开放域问答中取得了强大的性能。然而,RAG 仍然容易产生幻觉:事实上不正确的输出可能源于模型内部知识的不准确和检索上下文的缺陷。现有的缓解幻觉的方法通常混淆了事实性与对检索证据的忠实度,如果陈述没有被检索直接支持,即使事实正确也会被错误地标记为幻觉。在本论文中,我们介绍了 franq,一种新的 RAG 输出幻觉检测方法。franq 应用不同的不确定性量化(UQ)技术来估计事实性,以陈述是否忠实于检索上下文为条件。为了评估 franq 和竞争的 UQ 方法,我们构建了一个新的长形式问答数据集,标注了事实性和忠实度,结合了自动标注和对困难案例的人工验证。在多个数据集、任务和 LLM 上进行的广泛实验表明,franq 在检测 RAG 生成回复中的事实错误方面比现有方法取得了更高的准确性。我们的实现已发布在 https://github.com/stat-ml/rag_uncertainty。

## 1 引言

††脚注:♢◇等贡献

大语言模型(LLMs)越来越多地被应用于各种任务。然而,LLMs 倾向于生成看似合理但事实上不正确的输出,这种现象称为幻觉,源于训练数据覆盖不足、输入歧义和架构限制等因素(Huang 等人,2025)。检索增强生成(RAG;Lewis 等人,2020)通过在生成过程中融入动态检索的外部知识来缓解这个问题,这可以部分减少事实不准确性(Shuster 等人,2021)。然而,RAG 系统仍然会产生幻觉(Shi 等人,2023)。此外,使用检索信息使得检测幻觉和确定其来源变得更加困难。模型对于出现在检索中的陈述变得更加自信,无论其事实正确性如何(Kim 等人,2025)。与此同时,检索的段落本身可能是错误的、不完整的或与查询完全无关的(Shi 等人,2023;Ding 等人,2024)。相反,即使检索准确,模型的内部知识与检索数据之间也可能出现不一致(Wang 等人,2024a,2025)。因此,一个重要的问题是如何在 RAG 中定义幻觉,考虑到模型内部知识和检索上下文之间的相互作用。一种方法是将任何不直接被检索上下文支持的内容视为幻觉(Niu 等人,2024)。然而,我们认为幻觉应该基于事实上的不准确性而不是严格的上下文对齐来定义。具体来说,源自 LLM 内部知识但超出检索上下文的生成陈述,如果事实上是正确的,就不应该被视为幻觉。参考图 1

**图 1**:franq 示意图。左:用户提出问题,RAG 检索相关文档并制定答案,可能使用来自检索文档的信息。中:RAG 输出被分解为原子声明。右:franq 方法通过评估三个组件来评估事实性:(1)忠实度,(2)忠实条件下的事实性,和(3)不忠实条件下的事实性。

为了解决这一区别,我们区分了**事实性**和**忠实度**。忠实度指生成的输出是否在语义上由检索上下文蕴含,而事实性表示内容是否客观正确(Maynez 等人,2020;Dziri 等人,2022;Yang 等人,2024)。对于 RAG 事实检查,检测非事实陈述比识别不忠实的陈述更关键。这一区别理清了两个核心 RAG 失败模式:(i)由检索上下文中的错误接地引起的幻觉,和(ii)源于模型内部知识的事实错误(Zhou 等人,2024)。

在本论文中,我们使用不确定性量化(UQ)技术来调查 RAG 生成的非事实陈述的检测。我们介绍 **franq**(**F**aithfulness-**a**ware **R**etrieval **A**ugmented **UNc**ertainty **Q**uantification),一种新颖的方法,首先评估生成响应的忠实度,然后根据结果应用不同的 UQ 方法。通过这种分离,franq 针对特定的 RAG 失败模式采取策略:它是源于检索接地还是源于模型自身知识。

我们在长形式和短形式问答(QA)任务上评估 franq。对于长形式 QA(答案包括多个声明),我们在声明级别评估事实性,并引入一个带有事实性标注的新数据集,结合自动标注和人工验证。对于短形式 QA,我们在四个 QA 数据集上测试方法,将每个响应视为单个声明。我们的关键**贡献**如下。

- •我们为 RAG 开发了一个新的 UQ 方法 franq,它通过首先评估忠实度,然后对忠实和不忠实输出使用不确定性量化方法来估计不确定性;见第 2 节。
- •我们开发了用于 RAG 的长形式 QA 事实性数据集。该数据集包含事实性和忠实度标签,通过结合自动标注和对困难案例的人工验证来构建;见第 3 节。
- •我们在长形式和短形式 QA 上进行了全面实验,涉及多个 LLMs,表明 franq 相比其他方法改进了 RAG 输出中事实错误的检测;见第 4 节。

## 2 RAG 的不确定性量化

设 **x** 为提交到 RAG 系统的用户查询。系统使用 **x** 作为查询从外部知识源检索 k 个段落,记为 **r** = {r₁, ..., rₖ}。RAG 系统随后使用 LLM 生成输出 **y**,以 **x** 和 **r** 为条件。自回归 LLMs 按顺序生成文本,每次生成一个令牌。在每一步 t,模型从分布 p(·|y₀:t-₁, x, r) 中采样一个令牌 yₜ。

模型为每个生成的令牌分配概率,用 p(yₜ|y₀:t-₁, x, r) 表示。这些令牌级概率为整个生成序列的不确定性量化提供了基础。

### 2.1 现有方法

**声明概率**方法使用句子级别的概率估计:

$$\text{ClaimProb}(c) = \frac{1}{|c|} \sum_{t \in c} \log p(y_t | y_{0:t-1}, \mathbf{x}, \mathbf{r})$$

其中 c 是声明对应的令牌集合。

**参数知识**方法估计没有检索上下文时的模型置信度:

$$\text{ParamKnowledge}(c) = \frac{1}{|c|} \sum_{t \in c} \log p(y_t | y_{0:t-1}, \mathbf{x})$$

**对比方法**计算两者之间的差异:

$$\text{Contrast}(c) = \text{ClaimProb}(c) - \text{ParamKnowledge}(c)$$

### 2.2 franq 方法

franq 的核心创新是条件化忠实度评估。该方法分两个阶段进行:

**阶段 1:忠实度估计**

使用 AlignScore 来评估声明是否忠实于检索上下文:

$$P(c \text{ is faithful to } \mathbf{r}) = \text{AlignScore}(c, \mathbf{r})$$

**阶段 2:条件化事实性估计**

根据忠实度结果应用不同的策略:

- 如果声明忠实(AlignScore 高):使用 ClaimProb
- 如果声明不忠实(AlignScore 低):使用 ParamKnowledge

正式地:

$$P(c \text{ is factual}) = P(\text{faithful}) \cdot P(\text{factual}|\text{faithful}) + P(\text{not faithful}) \cdot P(\text{factual}|\text{not faithful})$$

其中:
- $P(\text{factual}|\text{faithful}) = \text{ClaimProb}(c)$
- $P(\text{factual}|\text{not faithful}) = \text{ParamKnowledge}(c)$

这种方法的优点在于它区分了两种失败模式:

1. **检索驱动的幻觉**:声明忠实于(可能是错误的)检索内容但事实不正确
2. **知识驱动的幻觉**:声明来自模型内部知识但事实不正确

## 3 数据集构建

我们构建了一个新的长形式 QA 数据集,包含以下特性:

### 3.1 数据来源

从现有的 QA 数据集中选择问题和 LLM 生成的答案。

### 3.2 声明提取

使用 GPT-4 将长形式答案分解为原子声明。

### 3.3 标注过程

**自动标注**:
- 使用 AlignScore 进行忠实度标注
- 使用事实检查工具进行事实性标注

**人工验证**:
- 对困难案例进行手动审核
- 解决自动化工具之间的分歧

### 3.4 数据集统计

最终数据集包含数千个声明,涵盖多个领域和问题类型。

## 4 实验

### 4.1 长形式 QA 结果

在我们新构建的数据集上,franq 显著优于基线方法:

- **franq(条件校准)** 达到最佳性能,平均 AUROC 为 0.85
- **franq(未校准)** 的 AUROC 为 0.82
- **ClaimProb** 的 AUROC 为 0.74
- **ParamKnowledge** 的 AUROC 为 0.68
- **对比方法** 的 AUROC 为 0.71

### 4.2 短形式 QA 结果

在四个标准 QA 基准上(SQuAD、WebQ、TriviaQA、NQ),franq 也表现出一致的改进:

平均 AUROC 提升:
- 相对于 ClaimProb:+0.08
- 相对于 ParamKnowledge:+0.12
- 相对于对比方法:+0.10

### 4.3 模型分析

我们跨多个 LLM 评估方法:
- Llama 3B Instruct
- Llama 13B Instruct
- Mistral 7B
- GPT-3.5 Turbo

franq 在所有模型上保持性能优势。

### 4.4 校准分析

表 16 显示了所有 UQ 方法的预期校准误差(ECE):

| 方法 | 长形式 QA ECE | 短形式 QA ECE |
|------|---|---|
| franq(条件校准) | **0.082** | **0.091** |
| franq(未校准) | 0.126 | 0.138 |
| ClaimProb | 0.154 | 0.167 |
| ParamKnowledge | 0.198 | 0.203 |
| 对比方法 | 0.171 | 0.179 |

franq 的两个校准变体在两个任务上都实现了最佳校准性能。

### 4.5 XGBoost 分析

XGBoost 模型的第一棵树(图 14)证实了 franq 逻辑的有效性:

1. **根节点** 基于 AlignScore(忠实度)分割
2. **高忠实度分支** 使用 ClaimProb
3. **低忠实度分支** 使用 ParamKnowledge

这个树结构与 franq 的决策过程完全一致,表明该方法的设计在数据驱动的学习中也能得到验证。

## 5 附录分析

### 附录 D:额外消融研究

#### D.1 替代忠实度估计器

表 15 比较了使用原始 AlignScore 概率和阈值化 AlignScore(T=0.5)的性能。结果表明连续版本的 franq 优于阈值化版本,突出了使用概率分布而不是二进制决策的价值。

#### D.2 XGBoost 树分析

XGBoost 模型的第一棵树清晰地展示了特征的相对重要性和决策边界:

**树结构示例**:
```
AlignScore < 0.5
├─ True: ParamKnowledge
└─ False: ClaimProb
```

这个结构完全反映了 franq 的核心设计思想。

#### D.3 UQ 方法的校准性质

使用期望校准误差(ECE)评估所有 UQ 方法的校准特性。ECE 通过将预测分区到 10 个等间距的置信度箱中来量化预测置信度与观察到的准确性之间的对齐。

franq 的两个校准变体在 Llama 3B Instruct 模型上的长形式和短形式 QA 任务上都实现了最佳校准性能。

### 附录 E:资源和支出

完整的数据生成和 UQ 基线评估在 NVIDIA V100 32GB GPU 上需要约 8 天计算(长形式 QA),短形式 QA 需要不到一天。OpenAI API 的使用成本约为 $100 每次运行(Llama 3B Instruct)。人工标注涉及六名学生标注者,每人贡献约三小时工作。

### 附录 F:franq 示例

图 15 使用 Llama 3B Instruct 评估的长形式 QA 数据集中的三个示例演示了 franq 的行为。

#### 示例 1:忠实-正确

franq 正确识别声明为忠实,使用 ClaimProb,它检测到与第三个检索段落的高蕴含关系。这导致适当的高 franq 分数。

#### 示例 2:不忠实-正确

franq 准确检测声明的低忠实度,并基于 ParamKnowledge 分配其事实性分数,相对较高。在未校准版本中,最终分数由于未校准的 ParamKnowledge 分数而被低估。条件校准版本通过分配 0.85 的校准分数来纠正这一点,导致正确的高事实性估计。

#### 示例 3:不忠实-错误

franq 正确识别声明为不忠实,并使用 ParamKnowledge 分配低事实性分数,在两个版本中一致。

图 15:franq 示例输出。左:每个示例包括输入问题、检索段落、LLM 生成的答案、答案中的选定声明和相应的事实性和忠实度标注。声明及其在答案中的跨度用黄色突出显示。如果声明忠实,其在检索段落中的相应跨度也被突出显示。右:franq 组件分数和最终事实性估计,分别显示未校准和条件校准版本。

### 附录 G:LLMs 的使用

在本研究中,大语言模型主要被审视为分析对象。对于编程和写作等实际任务,我们还有限地使用基于 LLM 的助手(例如 ChatGPT)进行语法更正和代码调试,所有此类使用都受到人类研究人员的仔细监督。

相似文章

为什么检索增强生成会失败:图视角

arXiv cs.CL

本文探讨了检索增强生成(RAG)系统即使在获取到正确证据的情况下仍然失败的原因。通过电路追踪和归因图,作者发现正确的预测展现出更深的推理路径和更分散的证据流,而失败则表现为浅层、碎片化的模式。他们提出了一个基于图的错误检测框架和有针对性的干预措施,以提高RAG的可靠性。

RAGognizer:通过检测头集成实现幻觉感知微调

arXiv cs.CL

RAGognizer 提出了一种幻觉感知微调方法,该方法将轻量级检测头集成到大语言模型(LLMs)中,以实现语言建模与幻觉检测的联合优化,适用于 RAG 系统。论文介绍了 RAGognize,一个包含自然发生的闭域幻觉及其词元级标注的数据集,并展示了在降低幻觉率的同时,实现了最先进的幻觉检测性能,且不损害语言质量。