先看一个很常见的场景:你问一个助手某个软件参数怎么设置,它给出一套步骤,措辞笃定,还顺手补了一句“可以在设置里的高级选项找到”。你照着找,菜单里根本没有这一项。回头再问,它换了另一套说法,语气同样笃定。这类错误在日常使用里已经多到让人麻木,但它不是简单的“答错了”,而是一个更值得认真对待的现象——模型幻觉。
它不是在撒谎,而是在把“像”当成“是”
理解模型幻觉,先把生成过程想清楚。语言模型的工作方式是预测下一个词,它学到的是大量文本中词与词、句与句之间的统计关联。当问题涉及事实细节,例如某个版本有没有这个功能、某个术语的准确定义、某条规定的生效时间,模型并没有一个可核对的数据库在背后支撑,它是在根据上下文概率“续写”一个合理答案。合理的表述和正确的事实之间,隔着一条它自己看不见的界线。
所以幻觉往往发生在细节密集的地方:人名、编号、日期、引用、条款、步骤。越是需要精确的地方,越容易出问题;而越流畅的语气,越容易让人放松警惕。模型本身并不会因为“不确定”而自动降低语气强度,这是它和人类说话方式的一个关键差别。
几类常见误解
第一个误解是把它当成“偶尔抽风”。实际上它更像是生成机制的内生特征,不是偶发故障。降低温度、缩短回答、换一种问法,都可能改变具体错误,但不能保证错误消失。
第二个误解是“多问几次、取共识就安全了”。重复提问确实能筛掉一部分不稳定的回答,但当模型的错误来自同一个知识缺口时,几次回答很可能错得一致。一致性并不等于正确性。
第三个误解是“接上搜索就好了”。检索增强确实能压住一部分事实类幻觉,前提是检索到的内容质量可靠、模型愿意忠于原文。若检索结果本身含糊,或者模型在整合时加入了自己的推断,问题仍会以更隐蔽的形式出现:答案带着引用,但引用并不完全支持结论。这种情况比裸答更难识别。
约束能收窄边界,但改不了底子
工程上常见的做法包括:要求模型在无把握时明确说不确定;把开放问答改成有限选项;把长回答拆成可核对的小段;对关键字段做结构化输出,再做程序校验。这些手段有意义,它们把“不可控的自由生成”变成“部分可验证的填空”。但需要坦白的是,这些做法收窄的是错误发生的空间,不是消除错误的能力。模型依然可能在它认为有把握的地方给出错误细节。
因此更现实的思路是把模型幻觉当成一种需要被管理的不确定性,而不是一个等待彻底修好的缺陷。涉及对外发布的文字、涉及具体操作步骤、涉及合规表述的内容,人工核对仍然是成本最低的兜底手段。核对的重点不在于通读一遍觉得“读起来挺对”,而在于逐条确认那些可以被外部验证的点:名称、数字、时间、引述来源。
用的人也要调整预期
对普通使用者而言,最实用的一条判断方法是区分问题类型。让模型做归纳、改写、拆解思路、提供多个角度,它的表现通常稳定;让它提供精确事实、具体出处、可执行的操作细节,就要默认存在需要核实的部分。把后者当成“初稿”而不是“答案”,很多麻烦可以提前避免。
模型幻觉之所以值得反复讨论,不是因为它多神秘,而是因为它披着流畅表达的外衣,恰好绕过了人们判断信息真伪时最依赖的直觉。看清这一点,比追问“它什么时候不再出错”更有用。