超越文档基础:代码、工具输出和文档上的跨度级幻觉检测

arXiv cs.CL 论文

摘要

本文介绍了一个统一的基准,用于RAG系统中的跨度级幻觉检测,该基准超越了自然语言,扩展到代码、工具输出和结构化文档,并展示了一个微调的Qwen3.5-2B检测器,该检测器在这些新领域上优于现有方法,同时在标准NLP基准上保持竞争力。

arXiv:2607.00895v1 Announce Type: new 摘要:检索增强生成(RAG)中的幻觉检测通常是在自然语言文档证据上评估的。然而,基于依据的生成系统越来越依赖于结构化输入:源代码、开发者工具输出、Markdown文档、表格和仓库元数据。我们引入了一个统一的基准,用于代码、工具输出、结构化文档和现有自然语言RAG数据集上的跨度级幻觉检测。该基准的构建从基于依据的正确答案开始,注入具有精确字符标签的局部幻觉,并通过基于证据的审查验证代码测试集。我们微调的Qwen3.5-2B检测器在统一测试集上达到了0.689的span-F1,在代码代理源上达到了0.60,显著优于LettuceDetect-large(0.17)和我们评估的最强零样本LLM裁判(最多0.22)。同一模型在已建立的自然语言基准上保持竞争力,RAGTruth示例F1为81.8,英文PsiloQA IoU为0.724。
查看原文
查看缓存全文

缓存时间: 2026/07/02 05:39

# 超越文档接地:针对代码、工具输出和文档的跨度级别幻觉检测
来源:https://arxiv.org/html/2607.00895
Ádám Kovács¹,Bowei He²,³,Xue Liu²,³,István Boros¹,Szilveszter Tóth¹,Gábor Recski¹,⁴ ¹KR Labs,²MBZUAI,³麦吉尔大学,⁴维也纳工业大学 通信:kovacs@krlabs\.eu (https://arxiv.org/html/2607.00895v1/mailto:[email protected])

###### 摘要

检索增强生成(RAG)的幻觉检测通常在自然语言文档证据上进行评估。然而,有依据的生成系统日益依赖结构化输入:源代码、开发者工具输出、Markdown 文档、表格和仓库元数据。我们引入了一个统一的基准,用于对代码、工具输出、结构化文档以及现有自然语言 RAG 数据集进行跨度级别幻觉检测。该基准的构建方式为:从有依据的正确答案出发,注入带有精确字符标签的局部幻觉,并通过基于证据的审查验证代码测试子集。我们微调的 Qwen3.5-2B 检测器在统一测试集上达到 0.6890.689 的跨度 F1,在代码智能体源上达到 0.600.60,显著优于 LettuceDetect-large(0.170.17)和我们评估的最强零样本 LLM 评测器(最多 0.220.22)。同一模型在已建立的自然语言基准上仍具竞争力,RAGTruth 示例 F1 为 81.881.8,英语 PsiloQA IoU 为 0.7240.724。

超越文档接地:针对代码、工具输出和文档的跨度级别幻觉检测

Ádám Kovács¹,Bowei He²,³,Xue Liu²,³,István Boros¹,Szilveszter Tóth¹,Gábor Recski¹,⁴ ¹KR Labs,²MBZUAI,³麦吉尔大学,⁴维也纳工业大学 通信:kovacs@krlabs\.eu (https://arxiv.org/html/2607.00895v1/mailto:[email protected])

## 1 引言

检索增强生成(RAG)将模型输出锚定于外部证据(Lewiset al.,2020 (https://arxiv.org/html/2607.00895#bib.bib2)),但并未消除验证的需求。生成的答案仍可能与被检索到的上下文矛盾、引入无依据的信息,或引用证据中不存在的参考文献。因此,幻觉检测方法需要判断答案是否由所提供的上下文支持,通常是在示例、句子、词元或跨度级别进行(Niuet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib3); Rykovet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib30); Vazquezet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib31))。

大多数现有基准和检测器都是在自然语言 RAG 中研究此问题,其中证据和答案通常都是文档文本(Niuet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib3); Belyiet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib7); Tanget al.,2024 (https://arxiv.org/html/2607.00895#bib.bib29); Kovács and Recski,2025 (https://arxiv.org/html/2607.00895#bib.bib1); Rykovet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib30); Vazquezet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib31))。实际的基于接地的生成系统则更为广泛:编程智能体处理仓库文件、Git 历史和测试输出(Jimenezet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib12));开发者助手总结命令输出和工具观察结果(Kovacs,2026 (https://arxiv.org/html/2607.00895#bib.bib13));研究或文档系统检索 Markdown 页面、表格、引用和结构化文档(Recskiet al.,2026 (https://arxiv.org/html/2607.00895#bib.bib14); Index,2026 (https://arxiv.org/html/2607.00895#bib.bib15))。这些场景在当前训练数据或评估中并未得到充分覆盖:目前尚无一个统一的跨度级别基准能够覆盖在同一验证任务下生成的代码、工具观察结果和结构化文档。

我们针对这种结构化场景研究生成后验证:给定一个已生成的答案,连同其请求和上下文,检测器应标记出证据不支持的部分。我们将其定义为跨度级别而非整体接受/拒绝决策,因为在代码和工具输出中,单个不支持的子串——例如错误的字段、虚构的方法名、误报的值或编造的章节引用——可能改变程序行为或误导用户,而答案的其他部分却是正确的。因此,验证器应指向不支持的子串,而不仅仅是拒绝整个答案。

现有的幻觉检测基准和模型仅部分覆盖了此场景。RAGTruth(Niuet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib3))、Luna(Belyiet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib7))、MiniCheck(Tanget al.,2024 (https://arxiv.org/html/2607.00895#bib.bib29))和 LettuceDetect(Kovács and Recski,2025 (https://arxiv.org/html/2607.00895#bib.bib1))针对检索文档验证生成文本。代码幻觉研究涉及生成的代码片段(Tianet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib8); Agarwalet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib9))、生成时的发散(Jianget al.,2024 (https://arxiv.org/html/2607.00895#bib.bib10))或智能体轨迹(Liuet al.,2026 (https://arxiv.org/html/2607.00895#bib.bib11))。这些资源很有用,但未能提供一个统一的跨度级别形式来覆盖自然语言 RAG、结构化文档、源代码和开发者工具输出。

我们通过一个统一的基准来填补这一空白,该基准涵盖 SWE-bench 代码(Jimenezet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib12))、来自 Squeez 的开发者工具输出(Kovacs,2026 (https://arxiv.org/html/2607.00895#bib.bib13))、ACL 论文片段(Recskiet al.,2026 (https://arxiv.org/html/2607.00895#bib.bib14))、README、Wikipedia Markdown(Index,2026 (https://arxiv.org/html/2607.00895#bib.bib15))、RAGTruth(Niuet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib3))和 PsiloQA(Rykovet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib30))。数据集构建采用共同的基于编辑的标注步骤:从正确的有依据答案开始,注入一个小的局部幻觉,从编辑中恢复精确的字符偏移量,并按接地源拆分,使得测试集使用未见过的仓库、论文或文章。在此基准上,我们训练了两个检测器家族。我们最好的模型是 LettuceDetect-Qwen-2B,一个微调的 Qwen3.5-2B 检测器(Team,2026 (https://arxiv.org/html/2607.00895#bib.bib18)),具有 32,768 词元的最大序列长度,能够定位代码、工具输出、结构化文档和自然语言 RAG 中不支持的跨度。我们还训练了 LettuceDetect-mmBERT-base,一个 3.07 亿参数的 mmBERT-base 编码器(Maroneet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib19)),作为词元分类模型。多语言监督来自训练集中包含 14 种语言的 PsiloQA 部分。

我们的贡献如下:

- • 一种针对结构化基于接地的生成场景进行生成后幻觉检测的跨度级别任务形式化;
- • 一个统一的基准,包含 74,285 个新构建的示例,涵盖代码、工具输出和结构化文档,以及来自现有自然语言 RAG 基准的转换示例;
- • 两个检测器家族,能够定位代码、工具输出、结构化文档和自然语言 RAG 中不支持的跨度:LettuceDetect-Qwen-2B(一个微调的 Qwen3.5-2B 检测器)和 LettuceDetect-mmBERT-base(一个 3.07 亿参数的编码器基线),结果显示生成式检测器在代码智能体子集上显著优于现成检测器和零样本 LLM 评测器,同时在自然语言 RAG 上保持竞争力。

代码、数据、模型检查点、提示词、评估输出以及经过审查的代码测试仲裁文件已通过 GitHub 和 Hugging Face 发布。¹¹ 代码参见 https://github.com/KRLabsOrg/LettuceDetect;模型和数据集参见 https://huggingface.co/KRLabsOrg

## 2 相关工作

#### 基于接地文本的验证。

基于接地的生成中的幻觉检测包括基于提示的评测、自一致性方法(如 SelfCheckGPT(Manakulet al.,2023 (https://arxiv.org/html/2607.00895#bib.bib5))),以及基于数据集的基准驱动检测器,这些数据集包括 HaluEval(Liet al.,2023 (https://arxiv.org/html/2607.00895#bib.bib6)) 和 RAGTruth(Niuet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib3))。最近的紧凑型检测器,包括 Luna(Belyiet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib7)) 和 LettuceDetect(Kovács and Recski,2025 (https://arxiv.org/html/2607.00895#bib.bib1)),表明长上下文编码器能够以比 LLM 评测器更低的成本定位不支持的跨度。我们使用了 mmBERT,这是一个基于 ModernBERT 家族的多语言编码器,通过退火语言学习训练(Maroneet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib19));PsiloQA 报告了通过微调 mmBERT-base 获得强大的跨度定位结果(Rykovet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib30))。其他工作优化了不同但相关的目标:RAG-HAT(Songet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib27)) 报告了 RAGTruth 上的响应级别 F1,RL4HS(Suet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib28)) 通过强化学习优化跨度 F1,PsiloQA(Rykovet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib30)) 和 Mu-SHROOM(Vazquezet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib31)) 评估了多语言跨度定位。还提出了细粒度分类法,最值得注意的是 FAVA(Mishraet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib4)),但这些分类法仍主要设计用于基于文本文档的自然语言响应。

#### 代码幻觉。

CodeHalu(Tianet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib8)) 和 CodeMirage(Agarwalet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib9)) 将幻觉视为生成代码片段中的缺陷。Collu-Bench(Jianget al.,2024 (https://arxiv.org/html/2607.00895#bib.bib10)) 从词元概率和执行反馈中预测生成过程中的幻觉。AgentHallu(Liuet al.,2026 (https://arxiv.org/html/2607.00895#bib.bib11)) 将失败归因于智能体轨迹。Delulu(Erfanianet al.,2026 (https://arxiv.org/html/2607.00895#bib.bib32)) 在精神上最为接近,因为它针对代码幻觉,但这是一个经过执行验证的填空基准,带有二元接受/拒绝标签。相比之下,我们的任务是生成后、仓库接地且跨度的。

## 3 任务

每个示例包含一个请求 \( q \),一个上下文 \( c \),以及一个答案 \( a \)。上下文可能包含特定提交下的源代码、工具输出或结构化文档文本。目标是预测 \( a \) 中不受 \( q \) 和 \( c \) 支持的字符跨度。

我们使用三个顶层幻觉类别。**矛盾**涵盖逻辑、值、字段或条件上的错误。**无依据添加**涵盖未请求或未被证据支持的额外行为或声明。**虚构引用**涵盖编造的方法、属性、关键字参数、章节或标识符。这种划分遵循了先前分类法在证据冲突、无依据添加以及虚构实体或引用之间的常见区分(Niuet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib3); Mishraet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib4))。对于代码,前两类主要根据请求判断,而虚构引用则根据仓库和库证据判断。检测器看不到生成器的 logits 或工具轨迹;它只看到在答案生成后外部检查器可以获得的输入。

顶层标签与 13 个描述受影响表面元素的子类别配对:**实体**、**时间**、**数值**、**值**、**关系**、**标识符**、**章节**、**属性**、**声明**、**行为**、**阐述**、**主观** 和 **未指定**。我们选择这些子类别是为了调和先前分类法中使用的区分:RAGTruth 的矛盾和无依据信息标签(Niuet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib3))、FAVA 的实体、关系、虚构、主观和不可验证标签(Mishraet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib4))、代码幻觉类别(如命名、资源和逻辑错误)(Tianet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib8)),以及我们的结构化源所需的代码/工具标签。结果使得三路类别决策具有可解释性,同时保留了分析所需的表面级错误类型。

## 4 基准构建

### 4.1 来源

该基准包含五个新构建的来源和两个已整合的自然语言 RAG 基准。面向编程的来源是 **代码**,基于 SWE-bench(Jimenezet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib12));以及 **工具输出**,基于 Squeez(Kovacs,2026 (https://arxiv.org/html/2607.00895#bib.bib13)),包含查询、详细工具观察结果和黄金相关行。结构化文档来源包括 **ACL**,基于 ACL-Verbatim 检索的论文片段和问题(Recskiet al.,2026 (https://arxiv.org/html/2607.00895#bib.bib14));**README**,通过 GitHub API 从流行 GitHub 仓库收集;以及 **Wikipedia**,从英语 open-wikipedia-markdown 文章采样(Index,2026 (https://arxiv.org/html/2607.00895#bib.bib15))。我们还包含了 RAGTruth,这是一个用于 RAG 输出的带有人工标注的词级幻觉语料库(Niuet al.,2024 (https://arxiv.org/html/2607.00895#bib.bib3)),以及 PsiloQA,一个基于 Wikipedia QA 的 14 语言跨度级别幻觉基准(Rykovet al.,2025 (https://arxiv.org/html/2607.00895#bib.bib30)),以使模型与已建立的自然语言检测任务保持联系。

所有新来源使用相同的样本抽象:一个包含上下文和请求的提示、一个答案,以及答案上字符级的跨度标注。上下文和干净答案的构建因来源而异。代码示例使用黄金 SWE-bench 修补;工具输出示例根据 Squeez 查询和相关行生成简短答案;ACL 示例使用前五个检索到的论文片段作为上下文;README 和 Wikipedia 示例基于标题式的 Markdown 片段生成。训练、开发和测试拆分按接地源分隔。

表1:新构建的基准来源。完整评估还包括转换后的 RAGTruth 和 PsiloQA 示例。新来源拆分为训练/开发/测试 = 66,368 / 2,816 / 5,101。
### 4.2 代码来源

SWE-bench 提供真实的 GitHub Issues、仓库元数据、基础提交和黄金补丁。对于每个实例,我们在基础提交下恢复黄金补丁涉及的文件,并将黄金修复呈现为编程助手答案:一个修补过的函数、一个变更行片段或一个自然语言编辑指令。干净示例直接使用此答案。幻觉示例包含对同一答案的一个小编辑。我们不以成对方式包含同一实例的干净和幻觉版本。这种设置不同于仅代码片段的幻觉,因为答案是根据具体的仓库状态和请求进行评估的。

三种答案呈现旨在涵盖开发者可能向助手请求的输出类型。**函数**呈现给出符合长度限制的最大修补函数,最接近直接的代码建议。**片段**呈现给出变更的 hunk,保留了局部编辑而不强制模型阅读整个函数。**编辑**呈现给出诸如“在文件 X 中,将 Y 替换为 Z”的指令,这在智能体总结补丁而非打印完整 diff 时很常见。其 g

相似文章

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

arXiv cs.CL

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

PARALLAX: 区分真实幻觉检测与基准构建伪影

arXiv cs.CL

本文揭示了LLM幻觉检测领域报道的许多进展实际上源于基准构建伪影,其中真实答案被嵌入到提示中,使得简单的文本相似度基线方法能够获得近乎完美的分数。通过大规模受控评估,作者证明,在适当控制下,大多数方法的表现接近随机水平,除了对上层隐藏状态的监督探针(如SAPLMA)以及他们提出的DRIFT。