收益:
- 解释幻觉的原因和接地的作用
- 如果模型不在上下文中,则应用使模型说“我不知道”的技术
- 通过在回复中添加可验证的来源/引用来确保信任和可审计性
语言模型最危险的行为就是用自信和有说服力的语气编造一些他不知道的东西。这称为幻觉。公司助理产生幻觉不仅令人烦恼,而且是彻头彻尾的风险:错误的休息日、错误的价格、错误的法律实质实际上可能会让员工或客户受到伤害。在本单元中,我们将介绍幻觉发生的原因、如何在 RAG 中减少幻觉,以及如何使答案可验证。
产生幻觉的原因是什么?
该模型经过训练可以生成下一个最可能的单词;不是“说实话”,而是“写出流畅合理的文字”。如果信息缺失,它可以用统计上合理但实际上不正确的东西来填补空白。三种典型的触发因素:
- 上下文中没有答案,但模型无论如何都觉得有必要说点什么。
- 上下文相互矛盾或不充分;该模型缩小了预测的差距。
- 这个问题超出了背景;该模型返回到它自己的一般(可能是过时的)知识。
RAG 减少了幻觉,因为它为模型提供了真实的来源,但它不会重置它。如果你带错了零件或者让模型“自由地填补空白”,带有RAG的系统也可以安装它。
幻觉类型
症状
根本原因
溶液层
源自检索
正确答案在文档中但没有到达
交付的零件错误/缺失
分块、混合、重新排序(第 3-4 单元)
源自一代
正确的部分已到达,但答案是错误的/必须添加
该模型填补了预测的空白
接地气、“我不知道”许可、创造力低
引文来源
答案是正确的,但来源是错误的
模型引用了错误的部分
引文验证(参见第 8 单元)
提示:将幻觉分为两部分。源自检索:错误/缺失部分到达(解决方案:改进检索)。生成来源:正确的部分到达,但模型读取/添加错误(解决方案:提示并接地)。除非你知道它是哪一个,否则你无法修复它。
扎根:根据上下文确定答案
接地是所有告诉模型“只依赖我给你的文本,不要超越它”的技术的名称。他最基本、最有效的技术:明确允许模型说“我不知道”。模型和人类一样,在说“我不知道”时犹豫不决;您必须明确允许他这样做。
仅根据以下上下文回答。如果上下文中答案不明确,请准确写下:“我在文档中找不到有关此问题的足够信息。”请勿包含任何不在上下文中的数字、日期或名称。别猜了。
附加接地技术:
- 引用要求:在每个声明之前,逐字引用上下文(“文档说:‘...’”)。对于模型来说,生成虚假报价更加困难。
- 低温:温度(温度、创意/随意设置)要低。注:当前部分机型该参数已被删除;在其中,您可以通过提示提供基础。高创造力是企业诚信的敌人。
- 范围限制:“仅回应同意政策问题;礼貌地拒绝选择退出。”
引文
针对幻觉最强大的系统防御措施是使答案可验证。如果用户可以看到答案基于哪个文档:(1)他可以自己发现错误,(2)审计成为可能,(3)信任增加,(4)模型在意识到“我需要引用来源”的情况下更加谨慎地生成。
两种常见的方法:
内联归因:每个声明旁边的来源标签。 “年假为 14 天 [1]。”以下是 [1] 的完整文档。
结构化输出:要求模型在不同的字段中生成答案和源列表;在界面中将资源显示为可点击的链接。
# 根据模型(概念)生成结构化答案 按照以下结构给出答案:- 答案:<基于上下文的答案>- 来源:[{"part_no": 1, "file": "...", "section": "..."}]- trust: <high|medium|low> # 上下文支持它的程度如何?如果上下文不支持答案,请在答案字段中写下“未找到信息”并将来源留空。
为了使引文真正发挥作用,有必要验证归因是否正确。该模型有时可能给出正确的答案,但给出错误的来源。先进的系统会自动检查所产生的每个主张是否在其所指向的部分中得到实际支持(下一个单元中的“忠实度”测量)。
弱/强:提示反对幻觉
弱(邀请填空):
使用您所掌握的信息尽可能地回答问题:{context} 问题:{question}# 对于模型,“尽可能”的意思是“如果您不知道,请猜测”。
强(接地+不知道许可+来源+信任):
只需依靠上下文即可。否则,说“我找不到任何信息”;组成编号/日期/名称。为每个索赔添加 [n] 个来源编号。指定上下文支持的信任级别。上下文:[1]...[2]...问题:{问题}
三个迷你箱
案例 1 — 虚构的货品编号。一名律师助理编造了断章取义的“Article 17/B”声明,并向该员工提供了虚假信息。当添加“不要给出上下文中没有的文章编号,否则说我不知道”+引用义务的指示时,40个例子中捏造文章的案例从11例减少到0例。
案例 2 — 正确答案,错误来源。支持助理指出了正确的退货期限,但引用了错误的文章;当客户点击链接时,会打开一个不相关的页面。添加引文验证(检查声明是否出现在被引文章中)后,错误引用率从 23% 下降到 2%。
案例 3 — 未授予“我不知道”许可。人力资源助理对文件中没有的问题做出了看似合理但不正确的答案。当在提示中添加明确的“我不知道”同意和全文(“我在文档中找不到有关此信息”)时,对没有答案而不是捏造的问题的诚实拒绝率从 8% 增加到 95%。
常见错误
- 不允许“我不知道”:模型通过制造填补了空白。
- 保持高度创造力:随机性不利于企业诚信。
- 信任来源而不验证它:模型可能会将错误的来源附加到正确的答案上。
- 不区分两种幻觉:你纠正了错误的地方,但不知道它是由检索引起的还是由生成引起的。
- 化妆品错误标注:来源标注既是确认,也是震慑;认真对待它。
注意:“模型看起来非常自信”与“模型是正确的”不同。幻觉通常是最流畅、最自信的句子。从它所表明的来源来解读信任,而不是从句子的语气中。
总之
- 幻觉是指模型用看似合理但虚假的文本填充信息空白; RAG 减少但不重置。
- 幻觉可能是由检索(错误的部分)或生成(错误的阅读)引起的;先确定是哪一个。
- 接地最强大的技术是给予模型明确的“我不知道”许可;还有引用要求和低创造力。
- 引用使答案可验证;它既给人信心,又促使模型谨慎生产。
- 还应检查引文的准确性;正确答案可能附加了错误的来源。
应用任务
(1) 准备4个问题问你的助手,这些问题的答案不在文档中(陷阱问题)。用弱提示和强提示测试每一项,并标记模型是否适合。 (2) 对于文档中答案的 4 个问题,让模型生成焊缝编号并手动验证其显示的焊缝是否确实是正确的零件。 (3) 检查模型是否在至少一种情况下给出“正确答案,错误来源”,并用一句话写出如何自动捕捉到这一点。
清单
- [ ] 我可以说出为什么会出现幻觉,并且 RAG 会减少幻觉,但不会重置它。
- [ ] 能够区分检索性幻觉和生成性幻觉,并纠正正确的地方。
- [ ] 我正在向提示添加明确的“我不知道”权限和基本规则。
- [ ] 我正在为答案添加可验证的来源(引用)。
- [ ] 我了解需要进一步检查归因的准确性。