5-种防止你的-RAG-问答中幻觉的技术
5 种防止你的 RAG 问答中幻觉的技术
原文:
towardsdatascience.com/5-techniques-to-prevent-hallucinations-in-your-rag-question-answering/
目录
-
为什么你需要最小化幻觉?
-
防止幻觉的技术
-
减少幻觉的数量
-
LLM 判断验证
-
RAG 改进
-
优化你的系统提示
-
-
减轻幻觉的损害
-
引用你的来源
-
引导用户
-
-
-
摘要
为什么你需要最小化幻觉?
当客户考虑使用 LLM 来解决问题时,他们首先想到的往往是幻觉。他们经常听说 LLM 有时会输出不真实或至少你不能完全信任的答案。
不幸的是,他们通常是正确的,你需要采取措施来最小化你的问答系统中的幻觉。本文的内容将专门针对问答系统中的幻觉,尽管所有这些技术也可以应用于其他 LLM 应用,例如:
-
分类
-
信息提取
-
自动化
在本文中,我将讨论你可以应用于减轻幻觉影响的实际技术,无论是通过完全防止它们发生,还是通过最小化幻觉造成的损害。例如,这可能包括损害,如用户在经历后对你的应用程序信任度降低
防止幻觉的技术
我将把这个部分分为两个子部分:
-
直接减少你从 LLM 体验到的幻觉数量的技术
-
减轻幻觉损害的技术
我这样做是因为我认为这有助于了解你可以利用的技术来减轻幻觉的影响。你可以尝试完全防止它们发生(第一种技术),尽管以 100%的准确性实现这一点几乎是不可能的,或者你可以在幻觉发生后减轻其损害(第二种技术)。
减少幻觉的数量
在本小节中,我将介绍以下技术:
-
验证步骤(LLM 裁判)
-
RAG 改进
-
优化您的系统提示
LLM 裁判验证
我将首先介绍的技术是利用 LLM 作为裁判来验证您的 LLM 响应。这种技术依赖于以下概念:
验证响应通常比生成响应简单
这句话有时在数学问题中更容易理解,因为提出解决方案通常相当困难,但验证解决方案是否正确则简单得多。然而,这个概念也适用于您的问题回答系统。
为了生成响应,LLM 必须阅读大量文本并解释用户的问题。然后,LLM 必须根据它所接收到的上下文提出一个合适的响应。然而,验证答案通常更容易,因为 LLM 验证者需要判断最终响应是否根据问题和上下文有意义。您可以在我的关于大规模 LLM 输出验证的文章中了解更多关于 LLM 验证的信息。
RAG 改进
您还可以对 RAG 管道进行许多改进,以防止幻觉。第一步是获取正确的文档。我最近写了关于这个过程的文章,其中介绍了提高您为 RAG 获取的文档的精确度和召回率的技巧。这主要归结为通过重新排序和 LLM 验证等技术过滤掉可能无关的文档(提高精确度)。另一方面,您可以通过上下文检索和获取更多文档块等技术确保包括相关文档(提高召回率)。

这张图片突出了传统的 RAG 管道,其中用户输入他们的查询。您将此查询嵌入并找到语义上最相似的文档,通过嵌入相似度。然后将这些文档输入到 LLM 中,根据提供的文档为用户的查询提供答案。图片由作者提供。
优化您的系统提示
您可以利用的另一项技术来降低幻觉的数量是改进您的系统提示。Anthropic 最近写了一篇关于为 AI 代理编写工具的文章,强调他们如何使用 Claude Code 来优化他们的提示。我建议做类似的事情,即通过 LLM 将所有提示输入,让 LLM 改进您的提示,并突出提示成功和失败的情况。
此外,你应在提示中包含一句强调 LLM 应仅利用提供的信息来回答用户的问题。你希望防止模型基于其预训练的信息提出信息,而是利用它所提供的上下文。
prompt = f"""
You should only respond to the user question, given information provided
in the documents below.
Documents: {documents}
User question: {question}
"""
这将大大减少 LLM 基于其预训练的回应频率,这是 LLM 幻觉的常见来源。
减轻幻觉的损害
在前面的子节中,我介绍了防止幻觉发生的技巧。然而,有时 LLM 仍然会幻觉,你需要采取措施来减轻这种情况下可能造成的损害。在本节中,我将介绍以下技巧,这些技巧有助于最小化幻觉的影响:
-
引用你的来源
-
帮助用户有效地利用系统
引用你的来源
一种强大的技术是在 LLM 提供答案时让它引用其来源。例如,每次你要求 ChatGPT 根据互联网上的内容回答问题时,你都可以看到这一点。ChatGPT 会给你提供回应,在回应文本之后,你还可以看到一个指向答案来源网站的引用。
你可以为你的 RAG 系统做同样的事情,无论是实时回答问题时还是后处理中。要实时进行,例如,你可以给每个文档块分配一个单独的 ID,并要求 LLM 引用它用于回答的文档块。如果你想获得更高质量的引用,你可以在后处理中进行,你可以在这个 Anthropic Docs 中了解更多。
指导用户
我还认为值得提及如何指导用户有效地利用你的应用程序。作为你的 RAG 问答系统的创建者,你确切地知道它的优势和劣势。也许你的系统在回答某一类问题时表现得很出色,但在其他类型的问题上表现较差。
当这种情况发生时(这种情况非常常见),我强烈建议你通知用户。这里的反对方论是,你不想让用户知道你系统的不完善之处。然而,我认为提前通知用户这些弱点要好得多,而不是让用户通过幻觉亲自体验这些弱点。
因此,你可以在你的问答系统周围添加一个信息文本,或者有一个入门流程,通知用户:
-
模型工作得非常好,但偶尔会犯错误
-
模型擅长回答哪些类型的问题,你正在努力改进哪些类型的问题
摘要
在这篇文章中,我讨论了 LLM 的幻觉问题。幻觉是一个巨大的问题,许多用户都有所了解。因此,你应该采取一些具体的措施来减轻幻觉。我介绍了直接减少幻觉的技术,例如改进 RAG 文档检索、优化你的系统提示和 LLM 验证。此外,我还讨论了如何在幻觉发生后最小化其损害,例如通过提供参考文献并指导用户有效地使用你的应用程序。
👉 我的免费电子书和网络研讨会:
👉 在社交平台上找到我:
📩 订阅我的通讯
🧑💻 取得联系
✍️ Medium

浙公网安备 33010602011771号