RAG 幻觉检测技术

RAG Hallucination Detection Techniques

RAG 幻觉检测技术
图片来源:编辑 | Midjourney

引言

大型语言模型(LLM)在许多应用中都很有用,包括问答、翻译、摘要等等,该领域的最新进展增加了它们的潜力。正如您无疑意识到的那样,LLM 有时会提供事实不正确的答案,尤其是在给定输入提示所需的响应在模型的训练数据中未体现时。这就产生了我们所说的幻觉

为了缓解幻觉问题,我们开发了检索增强生成(RAG)技术。该技术从知识库中检索数据,这些数据有助于满足用户提示的指令。虽然这是一种强大的技术,但 RAG 仍然可能出现幻觉。因此,检测幻觉并制定计划提醒用户或以其他方式处理 RAG 系统中的幻觉至关重要。

由于当前 LLM 系统最重要的能力是信任其响应,因此检测和处理幻觉变得比以往任何时候都更加重要。

简而言之,RAG 的工作原理是通过各种搜索类型(如稀疏检索或密集检索技术)从知识库中检索信息。然后,最相关的结果将与用户提示一起传递给 LLM,以生成所需的输出。然而,由于多种原因,输出中仍可能出现幻觉,包括:

  • LLM 获取了准确的信息,但它们未能生成正确的响应。如果输出需要基于给定信息进行推理,这种情况经常发生。
  • 检索到的信息不正确或不包含相关信息。在这种情况下,LLM 可能会尝试回答问题并产生幻觉。

由于我们在讨论中关注幻觉,我们将重点放在检测 RAG 系统生成的响应,而不是尝试修复检索方面。在本文中,我们将探讨可用于构建更好 RAG 系统的幻觉检测技术。

幻觉指标

我们将尝试的第一项是使用 DeepEval 库中的幻觉指标。幻觉指标是一种简单的方法,通过比较方法来确定模型是否生成了事实准确、正确的信息。它的计算方法是将上下文矛盾的数量加到上下文总数中。

让我们通过代码示例来尝试一下。首先,我们需要安装 DeepEval 库。

评估将基于评估结果的 LLM。这意味着我们需要模型作为评估器。在此示例中,我们将使用 DeepEval 默认设置的 OpenAI 模型。您可以查看以下文档切换到其他 LLM。因此,您需要提供您的 OpenAI API 密钥。

安装库后,我们将尝试检测 LLM 输出中存在的幻觉。首先,让我们设置上下文或输入中应存在的事实。我们还将创建模型生成的实际输出,以便确定我们要测试的内容。

接下来,我们将设置测试用例并设置幻觉指标。阈值是您想要设置的容忍幻觉的程度。如果您希望完全没有幻觉,则可以将其设置为零。

让我们运行测试并查看结果。

幻觉指标显示得分为 1,这意味着输出完全是幻觉。DeepEval 也提供了原因。

G-Eval

G-Eval 是一个使用带有思维链(CoT)方法的 LLM 来根据我们决定的多步标准自动评估 LLM 输出的框架。然后,我们将使用 DeepEval 的 G-Eval 框架和我们的标准来测试 RAG 生成输出的能力,并确定它们是否产生幻觉。

使用 G-Eval,我们需要根据我们的标准和评估步骤自行设置指标。以下是设置框架的方法。

接下来,我们将设置测试用例来模拟 RAG 过程。我们将设置用户输入、生成输出和预期输出,最后是检索上下文,即 RAG 提取的信息。

现在,让我们使用之前设置的 G-Eval 框架。

输出

通过我们设置的 G-Eval 框架,我们可以看到它能够检测 RAG 产生的幻觉。文档进一步解释了得分的计算方法。
 

忠实度指标

如果您想要更量化的指标,可以尝试使用 RAG 特定的指标来测试检索过程是否良好。这些指标还包括一个称为忠实度的检测幻觉的指标。

DeepEval 中有五个可用的 RAG 特定的指标,它们是:

  1. 上下文精确度,用于评估重排器
  2. 上下文召回率,用于评估嵌入模型能否准确捕获和检索相关信息
  3. 上下文相关性,评估文本块大小和 top-K
  4. 上下文答案相关性,评估提示是否能够指导 LLM 生成相关答案
  5. 忠实度,评估 LLM 生成的输出是否没有幻觉,并且不与检索中的任何信息矛盾

这些指标与之前讨论的幻觉指标不同,因为它们侧重于 RAG 过程和输出。让我们使用上面示例中的测试用例来尝试这些指标,看看它们的表现如何。

输出

结果显示 RAG 的表现良好,除了上下文相关性和忠实度指标。这些指标能够使用忠实度指标以及推理来检测 RAG 系统中出现的幻觉。

总结

本文探讨了检测 RAG 系统中幻觉的各种技术,重点关注三种主要方法:

  • 使用 DeepEval 库的幻觉指标
  • 带有思维链方法的 G-Eval 框架
  • RAG 特定的指标,包括忠实度评估

我们查看了实现每种技术的实际代码示例,演示了它们如何衡量和量化 LLM 输出中的幻觉,特别强调了将生成的响应与已知上下文或预期输进行比较。

祝您的 RAG 系统优化顺利,希望本文有所帮助。

对“RAG 幻觉检测技术”的 4 条回复

  1. Pat Wood 2025年1月12日上午3:09 #

    有趣的文章,但内容有些浅薄。例如,您设置了 OPENAI_API_KEY 并表示将针对 OpenAI 进行测试,但却硬编码了结果。虽然这有助于检查评估框架的准确性,但为每种情况提供一个实际与 OpenAI 服务器交互的示例,将使我们能够尝试一个实际的、可运行的示例。

    根据您的经验,列出每种工具的优缺点表,也将为我们提供一些见解。

    如果能对这些工具的使用进行更深入的探讨,这篇文章会更好。

    • James Carmichael 2025年1月12日上午5:16 #

      感谢您的反馈,Pat!

  2. Shahan Nafees 2025年1月13日晚上11:54 #

    谢谢

    • James Carmichael 2025年1月14日凌晨4:05 #

      不客气,Shahan!请随时告知您的进展!

撰写回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。