思想领袖

您的 RAG 流水线为什么总是产生幻觉的真正原因

mm
将 Unite.AI 添加到您在 Google 上的首选来源

您知道这个仪式。流水线在客户面前产生了幻觉,所以您更换了嵌入模型。然后您升级了大语言模型。然后您添加了一个系统提示,内容是“仅使用提供的上下文”,并且使用了越来越绝望的大小写字母。今天早上,它自信地引用了一份不存在的政策文件。

您不是唯一一个这样的人。当斯坦福大学的 RegLab 和 HAI 研究人员审计了 LexisNexis 和 Thomson Reuters (TRI ) 出售的 AI 法律研究工具时,这些产品被宣传为“无幻觉”的,得益于检索增强生成,他们发现了 幻觉率在 17% 至 34% 之间,在预注册的法律查询中。RAG 确实有帮助:原始 GPT-4 幻觉更多。但是,“减少”和“消除”之间的差距是生产系统所在的位置,这个差距有一个结构。

RAG 流水线中的幻觉很少是一次失败。它是三个共谋:检索失败,模型被训练来回答,流水线中没有任何东西来衡量这两个事实之间的差距。更换模型并不能解决这些问题。

共谋者之一:检索失败比您想象的更常见

这里最新的证据也是最令人不安的。2025 年 11 月,一支包括 18 名医学专家的团队在真实患者和 USMLE 风格的查询中对 800 个 RAG 输出进行了 80,502 个注释。标准 RAG 不仅没有达到预期;它还降低了事实准确性和完整性,分别比没有检索的相同模型运行时低 6% 和 5%。根本原因在于 LLM 之前的检索:只有 22% 的前 16 个检索段与查询相关。

在您将其视为一个难以解决的问题之前,Anthropic 在开发其上下文检索技术时测量了干净、策划的语料库中的检索失败,发现标准嵌入搜索 未能在前 20 个结果中显示所需的块 5.7% 的时间。每 18 个查询中有一个,数据整洁,没有任何异常情况发生。

这就是为什么 RAG 故障的经典工程分类法、Barnett 等人的七个故障点,如此重要:七个故障点中的三个(缺失内容、错过顶级文档和上下文整合故障)发生在语言模型生成单个令牌之前。Unite.AI 发布了 对该分类法和映射到它的评估框架的彻底介绍,因此我不会在这里重建它。这个文章添加的观点是关于激励:嵌入相似度是相关性的代理,而不是保证,最近谷歌 DeepMind 的理论工作表明,单向量嵌入对相关文档的表示有着严格的数学限制。返回似是而非的块的检索器正在做它应该做的事情。

共谋者二:模型被训练来猜测

现在,将有缺陷的上下文交给语言模型,并询问模型的训练教会它如何处理空白。

OpenAI 在其 2025 年 9 月的论文 语言模型为什么产生幻觉 中直接回答了这个问题:标准训练和评估奖励猜测而不是承认不确定性。基准测试评分二元准确性,放弃得分为零,因此,像学生面对多项选择考试一样,模型学会了自信的猜测比空白更好。论文中的比较使其具体化:在 SimpleQA 上,一个推理模型 1% 的时间放弃了,错误率为 75%,而一个不同调优的兄弟模型 52% 的时间放弃了,错误率降低到 26%。

RAG 特有的基准测试显示了激励在流水线中的作用。 RGB 基准测试 测试了模型是否拒绝回答当只给出不相关的文档时。所有测试模型中最好的负面拒绝率为 45%,这意味着即使是最好的模型,当只给出垃圾上下文时,也会在一半以上的时间内回答。 ClashEval 发现了相反的故障:当检索内容与模型已有的正确答案相矛盾时,模型超过 60% 的时间放弃了自己的正确答案,转而选择错误的上下文。忠实度在两个方向上都失败了,Salesforce 的 FaithEval 添加了令人不安的结论:更大的模型不一定更忠实。

Anthropic 的可解释性团队甚至 追踪了机制。在他们的分析中,拒绝是模型的默认电路;“已知实体”功能在模型识别某些内容时抑制该拒绝。幻觉发生在该功能故障时,模型识别问题的形状,但缺乏实质内容,并流利地填充空白。

如果您希望前沿技术简单地超越这一点:Vectara 的 幻觉排行榜 测量了比 RAG 更容易的事情,即总结直接放在模型面前的单个文档,并且截至其 2026 年 5 月更新,GPT-4o 在 9.6% 的总结中仍然编造了内容,Claude Opus 4 在 12% 的总结中编造了内容。即使检索完美解决,生成仍然会泄漏。

直觉修复使情况恶化

面对所有这些,许多团队都在寻找数量。检索更多块。购买更大的上下文窗口。把所有可能有帮助的东西都塞进去,让模型自己解决。

证据却相反。Chroma 的 上下文腐烂研究 测试了 18 个模型,包括 GPT-4.1、Claude 4 和 Gemini 2.5,发现性能随着输入长度的增长而变得越来越不可靠,单个干扰文档可以明显降低准确性,四个干扰文档可以大幅降低准确性。早期的 迷失中间研究 发现了著名的 U 曲线:埋藏在中间上下文中的信息即使被长上下文模型也会被忽略。而上述医疗审计就是这些动态从头到尾的样子:系统检索了 16 个段落,其中 12 个以上是无关的,然后将这些内容交给了一个从不说“我不知道”的模型。

没有更高精度的检索就只是制造干扰。精度优于召回率,在接地生成中,这不是一个接近的比赛。

共谋者三:没有人衡量差距

Barnett 等人将操作真相浓缩成一行:“RAG 系统的验证仅在操作期间可行。”您无法在登台前签署 RAG 流水线,因为其故障模式是语料库、查询和用户的联合属性,而这些属性都不会保持静止。

然而,大多数生产流水线仅跟踪端到端答案质量,这将上述两个共谋者混淆成一个无法解释的数字。标准分解,有时称为 RAG 三联,分离上下文相关性(检索是否找到正确的材料?)、接地性(答案是否坚持这一材料?)和答案相关性(它是否解决了问题?)。框架如 RAGAS 和 TruLens 实现了它。我要坦白地说,没有严格的调查来量化有多少生产团队运行这些;现有的内容是从业者的记录,它主要描述了通过感觉进行的评估。如果您的团队没有区分检索故障和忠实度故障的仪表板,每次幻觉都会继续看起来像模型问题,您将继续购买模型形状的修复。

什么真正有效,按顺序

分别衡量检索和生成。 这个不吸引人的修复方法每个人都会跳过,我认为这是列表中最有影响力的项目,因为它将关于购买哪个模型的争论转化为诊断。如果上下文相关性不佳,则无论生成器如何都无法拯救您。如果上下文良好但接地性不佳,则无论检索器如何都无法拯救您。

建立精度堆栈。 Anthropic 发布的数字是任何地方最干净的检索修复示例:上下文块嵌入将前 20 个检索失败率从 5.7% 降低到 3.7%,添加 BM25 混合搜索(与向量搜索并行的经典关键字匹配)将其降低到 2.9%,添加重新排名器(第二阶段模型,用于重新评分候选块以获得实际相关性)达到 1.9%,总共减少了 67%。Unite.AI 已经介绍了 为什么两阶段检索超出了其权重 的详细信息。

奖励放弃。 OpenAI 的处方是惩罚自信的错误而不是表达不确定性,您可以在本地实现:提示和评估“我不知道”响应,并添加一个接地检查,即在答案发送之前验证每个生成的声明是否由检索的文本支持的含义模型(NLI)。 RAGTruth 工作 表明,小型微调检测器可以匹配 GPT-4 基本提示捕获不支持的声明的效果。

重写查询和过滤证据。 在医疗审计中,查询改写和证据过滤恢复了多达 12 个事实点。廉价、无聊、有效。

最后考虑代理检索。 多步骤检索可以推理出下一步要检索什么(这里有一个入门教程)真正帮助了困难的多跳查询,但它添加了延迟、成本和新的故障模式。它是一个盖石,而不是基础。

模型是最不破碎的部分

回顾一下开头的仪式。该仪式的每一步都将幻觉视为生成器的缺陷:嵌入交换、模型升级、系统提示。证据表明,生成器正在做其训练奖励的内容,使用检索器交给它的材料,任何指标都无法观察到哪一个是失败的。

您的 RAG 流水线没有破碎。它很服从。它做了其激励奖励的内容,直到您分别衡量检索和生成,并将“我不知道”作为评分类别而不是失败,激励才会说:猜测。

Gary 是一位拥有超过 10 年软件开发、网页开发和内容策略经验的专家作家。他专门创作高质量、引人入胜的内容,能够驱动转化和建立品牌忠诚度。他热衷于编织能够吸引和告知受众的故事,并且总是寻找新的方式来吸引用户。