预算约束下RAG系统中的事实错误诊断与修复

arXiv cs.AI 论文

摘要

本文提出D2R-RAG,一个模型无关且资源感知的框架,在延迟和VRAM约束下诊断和修复RAG系统中的事实错误,在FEVER和HotpotQA上实现了更好的准确性与效率权衡。

arXiv:2606.29377v1 公告类型:新 摘要:检索增强生成(RAG)通过将响应基于外部证据来提升大语言模型的事实性,然而实际部署仍然脆弱。失败通常源于缺失或弱相关的证据,以及生成内容未能忠实反映检索到的上下文。许多现有方法依赖于微调、对内部模型信号的特权访问或对资源不敏感的升级策略,这限制了它们在黑盒和预算受限场景中的实用性。我们提出D2R-RAG(诊断到修复RAG),一个模型无关且资源感知的框架,结合轻量级故障诊断与自适应修复。D2R-RAG从查询、检索到的证据和生成的响应中的可观察信号中推导出可解释的故障特征,然后在明确的延迟和VRAM约束下从一小套纠正动作中进行选择。在FEVER和HotpotQA上的实验表明,D2R-RAG在多个计算预算下相较于近期基线提高了可靠性,并实现了更好的准确性与效率权衡。代码可在 https://github.com/CyberScienceLab/D2R-RAG/ 获取。
查看原文
查看缓存全文

缓存时间: 2026/06/30 05:33

# 预算约束下RAG事实性错误的诊断与修复

来源:https://arxiv.org/html/2606.29377
\\volumeheader

390

###### 摘要。

检索增强生成通过将响应锚定在外界证据中来提升大语言模型的事实性,然而实际部署中仍显脆弱。故障通常源于缺失或弱相关的证据,以及生成内容未能忠实反映检索到的上下文。许多现有方法依赖于微调、对内部模型信号的特权访问,或对资源不敏感的升级策略,这限制了它们在黑盒和预算受限场景中的实用性。我们提出了D2R-RAG(诊断-修复RAG),一个模型无关且感知资源的框架,它结合了轻量级故障诊断与自适应修复。D2R-RAG从查询、检索到的证据和生成的响应中的可观测信号中推导出可解释的故障签名,然后在明确的延迟和VRAM约束下,从一小部分纠正措施中进行选择。在FEVER和HotpotQA上的实验表明,D2R-RAG相比近期基线方法提升了可靠性,并在多种计算预算下实现了更好的准确率-效率权衡。代码可在https://github.com/CyberScienceLab/D2R-RAG/获取。

###### 关键词:

关键词:RAG,事实性验证,上下文赌博机,自适应修复。

Soroush Hashemifar\\upstairs\\affilone, Havva Alizadeh Noughabi\\upstairs\\affiltwo, Fattane Zarrinkalam\\upstairs\\affilone,\\affiltwo,\*, Ali Dehghantanha\\upstairs\\affiltwo\\upstairs\\affilone圭尔夫大学工程学院,圭尔夫,安大略,加拿大\\upstairs\\affiltwoCyber Science Lab,圭尔夫大学计算机科学学院,圭尔夫,安大略,加拿大\\emails\\upstairs

\* fzarrink@uoguelph\.ca

\\copyrightnotice

## 1. 引言

检索增强生成(RAG)已成为提升大语言模型(LLM)输出事实性的标准方法,它通过将生成过程锚定在外部证据上,而不是仅依赖参数化记忆。然而,在许多实际部署中,RAG仍然不可靠:当检索器遗漏关键证据、检索到的段落相关但不完整,或生成器产生的内容不被所提供的上下文支持时,正确答案可能会失败。这些故障模式是随机的且非均匀的,并且在具有严格延迟和硬件预算(例如有限的GPU内存、速率受限的API或成本受限的边缘/云端部署)的设置中最成问题,因为迭代检索或资源密集型的重排序在计算上是不可行的\[ray2025metis\]。

最近的研究从三个方向提出了动态和自我纠正的RAG变体:(1) 训练时修改,(2) 推理时控制,以及 (3) 基于学习的决策策略。Self-RAG训练生成器发出反思控制令牌,决定何时检索以及如何批评中间输出,通过自我评估提升事实性,但需要微调和架构耦合,这限制了其在黑盒或基于API的设置中的使用。此外,DRAGIN利用令牌级别的不确定性和其他内部动态在推理过程中触发检索,提供了轻量级、无需训练的控制,但依赖于logit访问(在闭源LLM API中不可用)。最后,基于学习的策略,如MBA-RAG(多臂赌博机平衡质量和效率,依赖于外部查询复杂度预测器)和QueryBandits(基于赌博机的查询重写,使用语义和词汇信号),表明在线决策可以提高鲁棒性,但通常针对特定的流水线阶段或需要额外的监督或建模组件。

本文解决了*黑盒设置下模型无关、感知资源的RAG恢复*问题,认为可靠的恢复需要两种能力:一种*轻量级诊断*,仅使用可观测的工件来区分检索侧的证据不足与生成侧的不忠实;以及在明确的延迟和VRAM预算下的*最小成本纠正措施*。我们将这些原则操作化为D2R-RAG(诊断-修复RAG),它通过结合(1) 检索到的证据与查询和响应之间的文本蕴含检查,以及 (2) 结构化一致性检查(将响应中提取的关系三元组与知识图谱对齐以识别实体/谓词不匹配)来执行三角验证。这些信号产生一个可解释的故障签名,将缺失证据与无支持的生成区分开来。修复选择随后被形式化为一个上下文多臂赌博机,其中每个臂对应一个特定的干预措施(查询重写、检索深度或模式调整、交叉编码器重排序或索引刷新),LinUCB策略学习在预期的事实恢复与计算成本之间进行权衡。值得注意的是,该框架既不需要生成器微调,也不需要访问内部logits,使其能够与闭源LLM API一起部署。

我们使用FEVER和HotpotQA在事实验证和多跳问答上评估D2R-RAG。我们的评估侧重于在多种延迟/VRAM预算制度下的事实性能和操作效率。除了总体结果,我们还分析了学习策略如何在不同故障签名之间分配高成本干预,以及性能如何随着资源预算收紧而变化。

## 2. 方法

参考图1。图1 (https://arxiv.org/html/2606.29377#S2.F1) 概述了D2R-RAG,它为RAG流水线增加了两个模块。

(1) 故障诊断。此阶段通过使用查询q、证据E、响应r和预测标签y,判断初始RAG输出是否可信并识别可能的故障类型,这适用于黑盒部署。目标是产生一个可解释的故障签名,将检索侧不足与生成侧不忠实区分开来,而不是完美地解释每一个错误。我们使用三个互补信号来推导该签名:查询蕴含e^q、响应蕴含e^r和知识图谱对齐状态κ。更多细节见附录A (https://arxiv.org/html/2606.29377#A1)。

给定(κ, e^q, e^r, y),我们的故障类型包括:错误谓词(WP)对应知识图谱冲突;证据不足(IE)对应检索到的证据不蕴含查询(e^q = neutral);错误响应(WR)对应响应不被检索证据蕴含(e^r ∈ {neutral, contradict});以及标签-证据不匹配(LEM),在FEVER中对应预测y与查询-上下文蕴含冲突。对于FEVER,IE和LEM情况会输出弃权标签*Unverified*,而不是可能因错误原因而正确的标签,从而提高了可信度,并优先考虑面向检索的修复(证据门控标签预测)。

(2) 通过上下文赌博机进行自适应修复。D2R-RAG通过选择一个补丁并重新运行RAG流水线来执行一次性修复,作为一个上下文多臂赌博机(CMAB):学习器观察上下文向量x ∈ R^d,选择动作a ∈ A,并接收反映输出质量和资源成本的奖励。动作空间A是有意小的且可黑盒部署的:(1) 提示级别的重写(释义和简化)以减少查询歧义;(2) 使用交叉编码器激活重排序器以提高证据精度;(3) 检索级别的干预,调整深度k,在BM25和稠密检索之间切换,或刷新索引。我们使用LinUCB学习修复策略,它假设一个线性奖励模型r̂(a | x) = x^⊤ θ_a,并通过最大化上置信界来选择动作(更多细节见附录B (https://arxiv.org/html/2606.29377#A2)):

a^* = arg max_{a ∈ A} (x^⊤ θ_a + α sqrt(x^⊤ A_a^{-1} x)).   (1)

其中α控制探索,A_a是动作特定的协方差矩阵。应用a^*后,修改后的输出和测量的动作成本定义了观测到的奖励。我们使用一个感知资源的奖励,根据输出可靠性和预算符合性来评分修复。令L_a和V_a表示动作a引入的延迟和额外VRAM使用量,每个动作的预算分别为B_L和B_V。奖励为:

r(a) = (1/4) * (1_{NF} + 1_{KG} + 2·1_{NLI}) * ∏_{x∈{L,V}} 1[x_a ≤ B_x] * (1 - x_a / B_x).   (2)

其中1_{NF}表示修复后诊断为无故障,1_{KG}表示三元组级别的一致性,1_{NLI}表示蕴含支持。硬门控1[x_a ≤ B_x]将违反预算的动作的奖励置零,而乘法项则鼓励在可行动作中选择成本更低的。每次交互后,LinUCB只更新所选动作:

A_a ← A_a + x x^⊤,   b_a ← b_a + r(a) x,   θ_a ← A_a^{-1} b_a.   (3)

## 3. 实验

我们研究三个研究问题:RQ1:D2R-RAG在尊重部署成本的同时,相比基线是否提高了事实质量?RQ2:策略是否根据特定的故障模式调整干预措施,而不是使用统一策略?RQ3:D2R-RAG中的奖励公式如何决定学到的修复策略,并且在不同的延迟/VRAM预算下这种稳定性如何?

### 3.1. 实验设置

数据集。我们在FEVER(2000个声明验证实例)和HotpotQA(1000个多跳问答实例)上评估D2R-RAG。

基线。我们将D2R-RAG与Naive-RAG(单次RAG)、Query Paraphrase(根据检索到的上下文重写查询)、Context Expansion(将稠密检索深度从k增加到k'=20)以及Thompson Sampling(将LinUCB替换为无上下文策略)进行比较。所有方法都使用GPT-4o-mini生成器和128令牌块(16令牌重叠),在LlamaIndex内实现。

评估指标。我们报告HotpotQA的精确匹配(EM),FEVER的准确率(ACC),以及响应的相关性和忠实度。效率通过延迟(检索到最终输出)和峰值VRAM(执行期间的最大GPU内存)来衡量。

实现设置。我们使用DeBERTa-v3-large-nli进行蕴含检查,使用Babelscape/rebel-large进行三元组提取。我们为每个查询施加3秒延迟和6 MB VRAM的预算。修复策略在线训练两个时期,探索参数α=2。

### 3.2. 结果

RQ1。表1 (https://arxiv.org/html/2606.29377#S3.T1) 显示D2R-RAG在保持效率约束的同时提高了事实质量:粗体和下划线值分别表示每个数据集/指标中的最佳和次佳结果。在FEVER上,它将ACC从56.3%(Naive-RAG)提高到61.5%(Thompson Sampling)和60.8%(LinUCB),其中Thompson Sampling实现了最佳成本概况(1.14秒,0.17 MB),而LinUCB为1.47秒,0.36 MB。在HotpotQA上,Thompson Sampling达到40.4%的EM和71.52%的忠实度,而LinUCB匹配39.8%的EM但延迟更高(3.41秒 vs 2.37秒);LinUCB偶尔超过VRAM预算(3.41 MB),因为预算约束是针对单个修复动作而非端到端执行的。总体而言,LinUCB以更高的资源成本优先考虑质量,而Thompson Sampling提供了更强的质量-效率权衡(见附录C (https://arxiv.org/html/2606.29377#A3))。

| 数据集 | 方法 | 延迟 | VRAM | 相关性 | 忠实度 | ACC | EM |
|---|---|---|---|---|---|---|---|
| FEVER | Naive-RAG | 1.16 | 0.20 | 50.16 | 91.67 | 56.3 | - |
| | Query Paraphrase | 1.32 | 0.20 | 50.09 | 92.69 | 56.7 | - |
| | Context Expansion | 1.35 | 0.20 | 50.24 | 92.82 | 61.8 | - |
| | D2R-RAG (LinUCB) | 1.47 | 0.36 | 50.80 | 92.34 | 60.8 | - |
| | D2R-RAG (T.Sampling) | 1.14 | 0.17 | 50.00 | 92.37 | 61.5 | - |
| HotpotQA | Naive-RAG | 1.52 | 0.36 | 28.39 | 68.58 | - | 36.2 |
| | Query Paraphrase | 1.60 | 0.36 | 27.90 | 74.65 | - | 39.8 |
| | Context Expansion | 1.52 | 0.36 | 32.14 | 70.70 | - | 40.6 |
| | D2R-RAG (LinUCB) | 3.41 | 1.04 | 31.66 | 69.89 | - | 39.8 |
| | D2R-RAG (T.Sampling) | 2.37 | 1.23 | 30.69 | 71.52 | - | 40.4 |

表1. D2R-RAG与基线在FEVER和HotpotQA上的比较。

RQ2。图2 (https://arxiv.org/html/2606.29377#S3.F2) 显示D2R-RAG根据故障类型调整动作。在FEVER上,IE情况倾向于检索升级(密集/BM25更深的检索约60-80%),而在HotpotQA上,WR和WP故障则导向重排序器激活,表明为多跳问题选择正确的段落(而不仅仅是检索更多)至关重要。LinUCB探索更广泛的行动分布,而Thompson Sampling更倾向于利用(集中于高效用修复),但两者都保留了相同的故障-动作映射。

参考图例
(a) LinUCB on FEVER
参考图例
(b) Thompson Sampling on FEVER
参考图例
(c) LinUCB on HotpotQA
参考图例
(d) Thompson Sampling on HotpotQA

图2. D2R-RAG暴露的故障类型频率分析。

RQ3。表2 (https://arxiv.org/html/2606.29377#S3.T2) 消融了编码部署约束的两种机制:Unweighted(移除软资源加权项)和Unconstrained(移除硬预算门控)。在HotpotQA上,Unconstrained降低了延迟(3.41→2.03秒)和VRAM(1.04→0.84 MB),EM下降很小,而Unweighted提高了质量指标(相关性31.66→32.20%;忠实度69.89→70.59%),EM几乎相同。在FEVER上,两种消融都提高了ACC(60.8→61.3-61.4%)并减少了内存。预算敏感性测试(表3 (https://arxiv.org/html/2606.29377#S3.T3))显示,Stringent(0.7×)在两个数据集上都削减了VRAM,同时保持了性能,Relaxed(1.5×)降低了延迟并提高了忠实度。值得注意的是,D2R-RAG在成本最高时实现了最高的HotpotQA EM,表明预算塑造控制着质量-成本权衡。更多结果见附录C (https://arxiv.org/html/2606.29377#A3)。

| 数据集 | 变体 | 延迟 | VRAM | 相关性 | 忠实度 | ACC | EM |
|---|---|---|---|---|---|---|---|
| FEVER | Unconstrained | 1.40 | 0.27 | 50.91 | 92.61 | 61.3 | – |
| | Unweighted | 1.46 | 0.19 | 50.64 | 92.62 | 61.4 | – |
| | D2R-RAG | 1.47 | 0.36 | 50.80 | 92.34 | 60.8 | – |
| HotpotQA | Unconstrained | 2.03 | 0.84 | 30.36 | 69.46 | – | 39.0 |
| | Unweighted | 2.79 | 0.68 | 32.20 | 70.59 | – | 39.4 |
| | D2R-RAG | 3.41 | 1.04 | 31.66 | 69.89 | – | 39.8 |

表2. 奖励变体的总体性能比较。

| 数据集 | 变体 | 延迟 | VRAM | 相关性 | 忠实度 | ACC | EM |
|---|---|---|---|---|---|---|---|
| FEVER | Stringent | 2.22 | 0.24 | 51.01 | 92.80 | 60.6 | - |
| | Relaxed | 1.42 | 0.32 | 50.63 | 92.76 | 60.6 | - |
| | D2R-RAG | 1.47 | 0.36 | 50.80 | 92.34 | 60.8 | - |
| HotpotQA | Stringent | 2.23 | 0.66 | 29.99 | 71.46 | - | 39.2 |
| | Relaxed | 2.31 | 0.72 | 30.81 | 71.57 | - | 39.4 |
| | D2R-RAG | 3.41 | 1.04 | 31.66 | 69.89 | - | 39.8 |

表3. 不同预算下的总体性能比较。

相似文章

Skill-RAG:通过隐层状态探测和技能路由的故障感知检索增强

arXiv cs.CL

Skill-RAG 是一个故障感知的 RAG 框架,利用隐层状态探测和技能路由来诊断和纠正检索增强生成中的查询-证据不对齐问题。该方法检测检索失败并有选择性地应用目标技能(查询重写、问题分解、证据聚焦)以提高硬案例和分布外数据集的准确率。

RAG 能知道检索错误吗?在知识冲突下诊断上下文遵从性

arXiv cs.CL

本文提出了一种名为“上下文驱动分解”(CDD)的探针,用于诊断检索增强生成(RAG)系统在面对检索上下文与参数化知识冲突时,是否遵从检索上下文。同时,发布了 Epi-Scale 基准测试,以便在多种模型家族中进行系统性研究。