大模型幻觉:为什么AI会一本正经地胡说八道
大模型有时候会自信满满地输出完全错误的信息,这种现象被称为'幻觉'。它是大模型落地的最大障碍之一。本文分析幻觉的成因、检测方法和应对策略。

大模型幻觉:为什么AI会一本正经地胡说八道
你问大模型一个历史问题,它给你一个非常详细的回答,包括具体的时间、地点、人物、事件经过。一切看起来都很合理,但你去查资料发现,这个事件根本不存在。
这就是大模型的"幻觉"问题。它不是偶尔犯错,而是以一种极其自信的方式输出完全虚构的内容。
幻觉的本质

要理解幻觉,首先要理解大模型是怎么工作的。大模型本质上是一个"概率接龙机器"。它根据前面的文字,预测下一个最可能出现的词。它不理解什么是"真"的,什么是"假"的,它只知道什么词在统计上最可能接在后面。
这意味着大模型天生就倾向于"编造"。当它不确定答案时,它不会说"我不知道",而是会生成一个在语言上最流畅、最合理的回答。这个回答可能完全是虚构的,但语言模式是正确的。
类比一下:一个学生在考试中遇到了不会的题,诚实的做法是承认不会,但大模型的做法是"编一个看起来合理的答案"。因为它的训练目标是生成流畅的文字,而不是生成正确的信息。
幻觉的类型
大模型的幻觉可以分为几种类型。
第一种是事实性幻觉。模型输出了与事实不符的信息。比如声称某个历史人物做了某件他没做过的事,或者给出了错误的科学数据。
第二种是忠实性幻觉。模型的输出与输入不一致。比如你给它一篇文章让它总结,它的总结中包含了文章中没有的信息。这种情况在长文本处理中尤其常见。
第三种是推理幻觉。模型在推理过程中犯了逻辑错误。比如它正确地列出了一系列事实,但在推理结论时犯了错误,得出了一个不正确的结论。
为什么幻觉难以消除
幻觉是大模型架构的内在特性,不是简单的 Bug。
从训练数据的角度看,大模型的训练数据来自互联网,其中包含大量错误、过时、矛盾的信息。模型无法区分哪些信息是可靠的,哪些是不可靠的。它学会了所有信息的"语言模式",包括错误信息的模式。
从模型架构的角度看,Transformer 的注意力机制擅长捕捉语言模式,但不擅长进行严格的事实验证。它知道"牛顿"和"万有引力"经常一起出现,但不知道牛顿的万有引力定律的具体数学形式是否正确。
从训练目标的角度看,大模型的训练目标是最大化下一个词的预测概率,而不是确保输出的准确性。这两个目标通常是相关的,但不总是一致的。
检测幻觉的方法

既然幻觉难以消除,检测幻觉就成了关键。
最直接的方法是人工验证。让人类检查模型的输出是否准确。但这只适合小规模的场景,不可能对每一次模型输出都进行人工验证。
自动化检测是更可行的方案。把模型的输出和可信的知识库进行比对,看是否一致。这需要一个可靠的知识库和高效的比对算法。
自我一致性检测是另一种方法。对同一个问题多次采样生成不同的回答,如果回答之间不一致,说明模型对这个问题"不确定",幻觉的可能性较高。
不确定性量化也是研究方向之一。让模型输出对自己的回答的"置信度"。低置信度的回答更可能是幻觉。但目前的不确定性量化方法还不够可靠。
应对幻觉的策略
在实际应用中,有几种策略可以缓解幻觉问题。
RAG(检索增强生成)是目前最有效的策略。在生成回答之前,先从可靠的知识库中检索相关信息,把检索结果作为上下文提供给模型。这样模型有了参考依据,就不容易"编造"。
但 RAG 也不是万能的。如果检索到的信息本身有误,或者模型没有正确使用检索到的信息,仍然可能产生幻觉。RAG 的效果取决于检索质量和模型的指令遵循能力。
提示词工程也可以缓解幻觉。在提示词中明确要求模型"只基于提供的信息回答"、"如果不确定就说不知道"、"不要编造信息"。这些指令可以降低幻觉的概率,但不能完全消除。
温度参数的调整也有帮助。降低温度参数让模型的输出更确定、更保守,减少了"创意性"的幻觉。但代价是输出可能变得无聊和重复。
人在回路(Human in the Loop)是最后的安全网。对于高风险的应用场景(医疗、法律、金融),模型的输出应该由人类审核后再使用。模型作为辅助工具而不是最终决策者。
行业实践
不同行业对幻觉的容忍度不同,应对策略也不同。
在客服场景中,幻觉的风险相对较低。如果模型偶尔给出不准确的回答,用户可以再次提问或者转人工客服。RAG 加上提示词工程通常就够用了。
在医疗场景中,幻觉的风险极高。一个错误的医疗建议可能危及生命。所以医疗 AI 应用必须有人类医生的审核环节,模型只能作为辅助工具。
在法律场景中,已经发生过律师使用 ChatGPT 生成的虚假案例作为法庭证据的事件。这提醒我们,在任何严肃的场景中,模型的输出都需要经过验证。
在内容创作场景中,幻觉有时反而是一种"创意"。写小说、写广告文案时,编造的能力可能是有价值的。关键是让使用者知道哪些是事实、哪些是虚构。

我的判断
幻觉问题是大模型落地的最大障碍之一。它不会在短期内被完全解决,因为它是大模型架构的内在特性。
对于开发者来说,关键是认识到幻觉的存在,并在系统设计中考虑这个因素。不要把大模型当作一个全知全能的"神谕",而是把它当作一个需要验证的"助手"。
RAG + 人在回路是目前最可靠的组合。RAG 提供知识基础,人在回路提供最终验证。这个组合可以在大部分场景下把幻觉风险控制在可接受的范围内。
长期来看,可解释性和不确定性量化的研究进展可能会从根本上改善幻觉问题。但在这些技术成熟之前,务实的策略是"不信任,但验证"。
