大模型最让人头疼的毛病,是它会用无比自信的语气告诉你一个根本不存在的事实——编造一个 API、虚构一句名人名言、捏造一份不存在的文献。这就是幻觉(Hallucination)。很多人以为这是模型「不够聪明」或「还有 bug」,只要模型再强一点就能修好。
这个理解是错的,而且这个误解会让你用错方法去应对。真相是:幻觉不是缺陷,而是「预测下一个词」这套生成机制的内在特性。 理解了它为什么必然发生,你才会明白为什么不能指望模型「自己变得不幻觉」,而要靠工程手段去约束和兜底。
幻觉的根源不在「模型不够强」,而在「预测下一个词」这套机制本身。
根源:它在「续写」,不在「查证」
要理解幻觉,得先破除一个直觉:大模型不是一个「知识数据库」,你问它问题,它不是去某个表里查记录再返回。它做的是另一件事——根据你的输入,逐个预测最可能的下一个词,把一句话流畅地续写下去。(这套机制的细节见《Temperature 到底影响什么》。)
这个区别是致命的。数据库查不到会返回「空」;而语言模型永远能续写出一个「看起来最合理」的词。当你问一个它不确定的问题,它不会停下来说「我不知道」,因为在训练数据里,一个流畅的回答后面通常跟着更多流畅的内容,而不是「我不知道」。于是它会顺着最像样的方向编下去——语法完美、语气笃定、内容虚构。 幻觉的本质,就是「追求流畅合理」压过了「追求事实正确」,因为模型的目标函数从来就是前者。
为什么它编得如此自信
更麻烦的是,幻觉往往伴随着高度的自信。原因有几层:
- 模型没有可靠的「自我不确定感」:它对「我知道」和「我在猜」缺乏内在区分,两者输出时的语气是一样的。人在不确定时会犹豫、会说「大概」,模型不会——它对编造内容和真实知识用同样的确定性表达。
- 训练数据里充满自信的表达:网络文本大多是断言式的,模型学到的表达风格就是笃定的,即使内容是它拼凑出来的。
- 合理的编造最难识破:模型编的东西通常「符合模式」——一个不存在的函数名长得就像真函数,一个虚构的日期落在合理范围。正因为像,才更难被发现。
这就是幻觉最危险的地方:它不是明显的胡话,而是看起来完全可信的错误。
幻觉最危险之处不是「明显胡说」,而是「看起来完全可信的错误」。
哪些情况最容易触发幻觉
知道触发条件,就能提前设防。高发场景包括:
- 训练数据里稀少或缺失的知识:冷门事实、你公司内部的信息、模型训练截止后发生的事,模型没见过,只能编;
- 需要精确记忆的细节:具体数字、引用出处、法条编号、API 参数——这些「必须一字不差」的内容,最容易被拼凑错;
- 超出能力的推理:复杂多步计算、需要严密逻辑的推导,模型可能中间某步「顺势编过去」;
- 诱导性提问:你问「请介绍一下 XX 定理」,即便这个定理不存在,模型也倾向于顺着你的假设编出一套说辞,而不是反驳你。
关键结论:幻觉无法根除,只能管控
因为幻觉源于生成机制本身,所以没有任何提示词或模型升级能 100% 消除它。更强的模型幻觉率更低,但不会归零。这个认知直接决定了正确的应对策略:不是追求「让模型不幻觉」,而是搭建一套工程约束,把幻觉的概率降到可接受,并且在它发生时能被拦住。四类手段:
1. 给它事实,别让它靠记忆(检索增强)
这是最有效的一招。用 RAG 把权威资料检索出来放进上下文,让模型「根据给定材料回答」而不是「凭记忆回答」。它从「续写脑中的模糊印象」变成「转述眼前的确切资料」,幻觉大幅下降。但要注意:检索没找对时,模型照样会编,所以检索质量本身要过关,见《RAG 为什么答不准?10 个工程原因》。
2. 用提示词约束边界
明确要求「仅根据提供的资料回答,资料不足时直接说不知道」,并要求它给出引用。这不能根治,但能显著降低它「自由发挥」的倾向。给模型一个体面的「退出」——允许它说「我不确定」——比逼它必须给答案要安全得多。
3. 让答案可校验、可追溯
要求模型输出来源、给出引用编号,让每一句结论都能回溯到具体材料。人(或另一个程序)能快速核对,幻觉即便发生也拦得住。系统化的做法见《RAG 评估与防幻觉》。对代码类输出,让它实际运行、跑测试,就是最硬的校验。
4. 设置拒答阈值
在检索场景里,当所有材料的相关度都低于阈值时,直接回答「知识库中未找到」,而不是硬凑一个。明确的拒答,永远好过自信的错误——尤其在医疗、法律、金融这些错一次代价极高的领域。
应对幻觉的正确姿势不是消除,而是检索给料、约束边界、校验追溯、阈值拒答四层兜底。
适用人群与常见误区
适合要把大模型用于严肃场景、对答案准确性负责的开发者、产品经理和内容团队。澄清几个误区:
- 「换个更强的模型就不幻觉了」:更强的模型幻觉更少,但不会消失,且更强的模型编得更像真的、更难识破。别把宝押在模型能力上。
- 「让模型自己检查一遍就行」:让模型自我批评(Reflection)有一定帮助,但它和产生幻觉的是同一个机制,可能一起看不出同一个错误,最好引入外部信号(检索证据、测试结果)。
- 「幻觉都是坏事」:在创意写作、头脑风暴里,「编造」恰恰是我们想要的。幻觉是不是问题,取决于任务——事实场景要严防,创意场景要善用。
常见问题
Q:温度调到 0 能消除幻觉吗? A:不能。低 temperature 让输出更确定、更保守,可能减少一些「发散型」错误,但幻觉源于模型对事实的错误「记忆」,temperature=0 下它会稳定地输出同一个错误答案。参数不改变知识本身。
Q:模型说「据我所知」「我不确定」,就一定可信吗? A:不一定。这些措辞有时是它学到的表达习惯,不代表它真的做了不确定性评估。反过来,它语气笃定也不代表就对。语气不是可靠信号,可校验的来源才是。
Q:如何快速判断一段回答有没有幻觉? A:抓三类高危内容重点核对——具体数字、引用出处、专有名词/API/函数名。这三类是幻觉重灾区,且最容易核实。对不熟悉的技术细节,永远交叉验证官方文档。
小结
幻觉不是 bug,而是「预测下一个词」这套机制的必然产物:模型追求流畅合理,而非事实正确,所以它永远能自信地续写出一个看似可信的错误。正因根源在机制,任何提示词和模型升级都无法根除它。正确的应对是工程管控——检索给它真材料、提示词约束边界、输出可校验可追溯、低置信就拒答。记住这句:不要指望模型不幻觉,要设计一个即使它幻觉也不出事的系统。