想象一下,你正在雇佣一位非常聪明、语速极快的助手来为你撰写报告。你给了他们一叠参考书(即“上下文”)和一个特定的问题。他们迅速打出了答案。
问题在于?有时候,即使是最聪明的助手也会有些“天马行空”。他们可能会捏造一个事实、弄混一个数字,或者引用一个书中并不存在的页码。这被称为幻觉(Hallucination)。
长期以来,研究人员一直在构建“事实检查器”来捕捉这些错误,但这些工具主要只能在助手编写关于历史或科学等普通话题并使用纯文本时发挥作用。
本文介绍了一种全新的、更强大的事实检查器,旨在应对现代世界的挑战——在现代世界中,助手不仅在写文字,还在编写计算机代码、总结软件工具日志以及阅读像表格和手册之类的结构化文档。
以下是他们所做工作的拆解,使用了日常类比:
1. 问题所在:“代码”与“日志”的盲区
想象一下你的助手是一名机械师。
- 旧有的事实检查器: 擅长检查机械师是否在车是蓝色时错误地说成了“车是红色的”。
- 新的现实: 这名机械师现在正在编写一份复杂的维修手册(代码)或阅读数字诊断屏幕(工具输出)。如果机械师写错了一个指令,比如把
turn_on_engine(启动引擎)写成了 turn_off_engine(关闭引擎),整辆车可能会报废。或者如果他们列出了一个不存在的零件编号,订单就会失败。
- 差距: 现有的事实检查器就像是在读小说的人;它们不知道如何识别计算机程序中的单行错误或软件日志中的特定错误。它们无法区分一个真实的专业术语和一个虚构的术语。
2. 解决方案:“找不同”游戏
作者构建了一个庞大的新训练场(基准测试),旨在教计算机如何成为这些专业的事实检查器。
- 如何制作数据: 他们从完美的、正确的答案开始(就像一份完美的维修手册)。然后,他们使用了一个“幻觉注入器”(可以想象成一个调皮的编辑)来偷偷植入微小的、局部的谎言。
- 示例: 他们将一个真实的函数名
set_device 改为了一个虚假的 set_active_device。
- 他们不仅仅是说“这个答案是错的”。他们还标记了发生谎言的具体字符位置。
- 多样性: 他们创建了超过 74,000 个示例,涵盖了:
- 代码: 真实的 GitHub 软件修复程序。
- 工具输出: 来自软件工具的日志(如错误信息或搜索结果)。
- 结构化文档: 带有表格和列表的研究论文、README 文件和维基百科页面。
- 普通文本: 标准的问题与回答(以确保他们不会忘记如何检查普通文本)。
3. 新的侦探:“LettuceDetect”
他们训练了一个新的 AI 模型(一个基于 Qwen 模型 20 亿参数版本的模型)来充当侦探。
- 任务: 侦探观察“请求”、“参考书”和“助手的答案”。它必须指着那个特定的谎言说:“这个特定的词是编造的,”或者“这个数字是错误的。”
- 结果:
- 在代码和工具方面: 这个新侦探是一个超级英雄。它抓住了代码和工具日志中 60% 的谎言。
- 竞争对手: 旧有的“现成”事实检查器(如 LettuceDetect-large)甚至连强大的智能 AI 裁判(Zero-shot LLMs)在代码方面的检出率仅为 17% 到 22% 左右。它们在技术错误面前基本上是“盲目”的。
- 在普通文本方面: 这个新侦探在检查普通文本方面仍然表现出色(得分与现有最佳系统相似),证明了他们在学习阅读代码时并没有丢失通用的语言知识。
4. 为什么“粒度级(Span-Level)”很重要
论文强调,他们不仅仅是说“拒绝这个答案”。他们进行的是 粒度级检测(Span-Level Detection)。
- 类比: 想象一名学生写了一篇 10 页的论文。其中一句话是谎言。
- 旧方法: “整篇论文不及格。”(这太严厉了,其他 9 页可能非常完美)。
- 新方法: “高亮显示那句谎言所在的句子。”(精准且有帮助)。
- 在代码中,这至关重要。如果一个程序有 100 行,其中只有一行是错的,你并不想丢弃整个程序;你只想修复那一行。
总结
本文提出了一种全新的、统一的“真相检测器”,能够处理现代 AI 助手所面临的复杂且具有技术性的现实情况。它超越了仅仅检查简单文本的范畴,能够识别代码、软件日志和结构化文档中细微且危险的错误。
他们的模型 LettuceDetect-Qwen-2B 在发现这些技术性谎言方面明显优于之前的工具,尤其是在助手编写代码或阅读软件日志时,同时在处理普通语言时仍保持着顶尖水平。他们已经发布了所有的相关数据和模型,以便他人可以使用这个“找不同”游戏来构建更可靠的 AI 系统。
技术摘要:超越文档溯源
问题定义
检索增强生成(RAG)系统正越来越多地部署在自然语言之外的结构化环境中,包括编程智能体(coding agents)、开发者工具和研究文档。虽然现有的幻觉检测基准和检测器主要关注以自然语言为证据的文档,但它们未能解决结构化输入(如源代码、工具输出(例如测试日志、命令输出)以及结构化文档(例如 Markdown、表格))所带来的独特验证挑战。
在这些结构化场景中,即使其余部分完全正确,单个不受支持的子字符串——例如伪造的方法名、错误的字段值或误报的工具观测结果——也可能改变程序行为或误导用户。目前的评估框架缺乏一个统一的、涵盖生成代码、工具观测和结构化文档以及传统自然语言 RAG 任务的跨粒度(span-level)公式化方案。
方法论
统一基准构建
作者引入了一个统一的基准,包含 74,285 个新构建的示例,分布在五个来源中,并辅以从现有自然语言 RAG 数据集(RAGTruth 和 PsiloQA)转换而来的示例。这些来源包括:
- 代码: 源自 SWE-bench,具有基于仓库溯源的修复(fixes)。
- 工具输出: 源自 Squeez,包含查询语句和冗长的工具观测结果。
- 结构化文档: ACL 论文分块、GitHub README 以及 Wikipedia Markdown。
- 自然语言: RAGTruth 和 PsiloQA(涵盖 14 种语言)。
数据构建流水线:
- 溯源(Grounding): 从源(例如金标 SWE-bench 补丁)开始,获取已知的、正确的答案。
- 注入(Injection): 使用特定来源的“注入器”模型(代码使用 Gemma 4 31B;其他使用 Qwen 3.6 35B)来提出局部化的、结构化替换编辑。这些编辑会引入分类为 矛盾(逻辑/数值错误)、不受支持的添加(额外行为)或 伪造引用(虚构的方法/标识符)的局部化幻觉。
- 跨度标记(Span Labeling): 应用确定性的编辑以提取幻觉跨度的精确字符偏移量,从而避免混合自然语言/代码答案时的歧义。
- 参考溯源(Reference Grounding): 为了防止因引用了不在截断上下文中的外部库或兄弟方法而导致的错误惩罚,流水线会附加来自仓库基础提交的解析定义以及来自 Context7 的真实 API 签名。
- 验证: 代码智能体测试集经过人工审查和仲裁,在过滤掉有效性和边界准确性问题后,保留了 2,015 个示例。
模型架构
研究者在统一数据集上训练了两类检测器:
- LettuceDetect-Qwen-2B: 一个经过微调的 Qwen3.5-2B 生成式检测器,具有 32,768 个 token 的上下文窗口。它输出包含字符跨度、类别和子类别的 JSON。
- LettuceDetect-mmBERT-base: 一个基于 mmBERT 的 3.07 亿参数 token 分类编码器,训练时的最大序列长度为 8,192 个 token。
两个模型都使用与任务无关的提示词进行训练,该提示词定义了幻觉分类法,并提供需要验证的请求、上下文和答案。
核心贡献
- 任务公式化: 一种针对结构化、非自然语言输出(代码、工具输出、结构化文档)专门设计的生成后幻觉检测的跨度级(span-level)任务公式化方案。
- 统一基准: 一个包含 7 4,285 个新示例的综合数据集,涵盖多种模态,并结合了来自既有 RAG 基准的转换示例,实现了跨领域评估。
- 检测器性能: 证明了经过微调的生成式检测器(LettuceDetect-Qwen-2B)在代码智能体和工具输出拆分项上显著优于现成的检测器和零样本 LLM 评判器,同时在自然语言 RAG 基准上保持竞争力。
实验结果
主要发现
在统一测试集上,LettuceDetect-Qwen-2B 达到了 0.689 的 span-F1。
- 代码智能体性能: 该模型在代码智能体拆分项上的 span-F1 为 0.602,显著优于 LettuceDetect-large (0.17) 以及评估过的最强零样本 LLM 评判器(Nemotron-3-Ultra 和 gpt-oss-120b,两者均 ≤ 0.22)。
- 自然语言性能: 该模型在既有基准上保持了竞争力,在 RAGTruth 上达到了 81.8 的 example-F1,并在英语 PsiloQA 上达到了 0.724 的 IoU(超过了基准作者微调的 mmBERT-base 的 0.707)。
- 多语言能力: 在 PsiloQA 的 14 种语言中,该模型的平均 IoU 为 0.689,优于 Qwen2.5-32B 评判器 (0.383)。
与基准线的比较
- 零样本评判器: 大型零样本 LLM(如 Nemotron-3-Ultra, gpt-oss-120b)在处理代码和工具输出时表现挣扎,经常将正确的、新编写的代码标记为不受支持,或无法区分有效的编辑与幻觉。
- 专用检测器: 仅针对自然语言训练的现有检测器(如 LettuceDetect-large)在处理结构化数据时表现较差(代码项 span-F1 仅为 0.17)。
- 编码器 vs. 生成器: 生成式检测器(Qwen-2B)在所有来源上均一致优于 token 分类编码器(mmBERT-base)(整体 span-F1 分别为 0.689 vs. 0.642)。
重要性与主张
论文声称,所提出的基准和检测器解决了 RAG 评估中的一个关键空白:即缺乏针对结构化、非自然语言输出的跨度级(span-level)验证。作者强调:
- 结构化验证是独特的: 代码和工具输出中的验证需要与自然语言不同的推理方式,特别是在涉及意图错误和结构有效性方面。
- 生成式检测器更优: 经过微调的具有长上下文窗口的生成式模型比传统的编码器或零样本评判器更适合此任务,尤其是在处理长仓库上下文和复杂依赖关系时。
- 统一评估: 单一模型可以有效地处理多种模态(代码、工具输出、文档),而不会牺牲在自然语言任务上的性能。
作者指出了局限性,包括大多数标签依赖于合成注入(尽管代码测试集经过了人工审查),以及侧重于最终答案验证而非完整的智能体轨迹。他们总结道,这项工作为开发稳健的、面向下一代具备溯源能力的生成式智能体(grounded generation agents)的验证系统提供了必要的基石。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。