Why Language Models Hallucinate
Adam Tauman Kalai, Ofir Nachum, Santosh S. Vempala, Edwin Zhang
cs.CL
2025-09-05
幻觉源于训练和打分都在奖励瞎猜:它本质是二分类错误,生成错误率不低于分类错误率的两倍;榜单二值打分又让「不知道」拿不到高分。修法是给现有榜单加置信门槛。
大家早就知道模型会一本正经地胡说。常见的解释要么归咎于数据,要么当成某种神秘的失效。这篇要给幻觉祛魅:它不神秘,是训练和评测流程系统性地奖励「蒙一个」所必然产生的结果。
作者分两层论证。
预训练层:幻觉就是二分类错误。他们构造一个叫 Is-It-Valid(IIV)的二分类问题,判断一段生成是否有效。核心结论是生成错误率不低于 IIV 错误率的两倍。把「生成正确内容」和「判断内容是否正确」接了起来,而后者是个标准的二分类问题,只要有不可分的样本就会出错,生成端必然跟着出错。幻觉由此从「模型坏了」还原成一个有理论下界的统计现象。
几个放大因素让错误率更高:只出现一次的事实(singleton)模型必然猜错,作者给了基于 singleton 率的错误率下界;模型容量不够(比如三元模型)在某些语法补全任务上错误率下界高达 1/2;校准偏差也会吃掉准确率。
评测层:打分机制惩罚诚实。观察结论 1 证明,在任何二值打分下(答对得 1、答错或「不知道」得 0),「不知道」永远不是最优选择,瞎猜的期望分永远更高。作者点名 GPQA、MMLU-Pro、SWE-bench、HLE 等主流榜单全是这种打分。模型于是被优化成应试高手:不确定时也蒙。
他们用一位作者本人的生日做了个小实验:问「Adam Kalai 的生日」,DeepSeek-V3 十次给出三个不同的错日期;问数字母、博士论文标题,多个模型也稳定地编。
这篇主要是论证,数字偏少,但有两条关键。主流榜单(GPQA、MMLU-Pro、IFEval、Omni-MATH、MATH、SWE-bench、HLE 等)清一色二值打分、不给「不知道」任何分。理论下界方面,三元模型在特定语法补全任务上生成错误率不低于 1/2;一般地,生成错误率不低于 IIV 错误率的两倍。
直接的横向对照(多少幻觉对应多少 singleton)论文没给完整实验,作者更多是搭框架。
把锅从「模型架构」挪到「打分规则」,政策含义很不一样:换模型不一定治本,改榜单打分可能更管用。作者的处方很具体,不必另造一堆幻觉评测,在现有榜单里加置信门槛就行。指令里写明「只在置信度高于 t 时作答,答错扣 t/(1−t) 分,答对得 1 分,答『不知道』得 0 分」。t 取 0.5、0.75、0.9 时扣分分别是 1、2、9 分。这样答得对才划算,模型才会学着在不确定时闭嘴。
作者自己列了一串:分析只管「看似合理」的幻觉,纯胡言乱语不在内;主要面向单条事实问答,开放式生成靠「含错即错」硬扩;隐藏上下文导致的歧义(比如 phone 是手机还是座机)抓不到;这套置信门槛对真没法回答的查询(如解密题)也无能为力。
一个更大的存疑:置信门槛假设模型能可靠自评置信度,可模型恰恰以校准差著称。门槛能不能落地、落地后会不会被模型「学会糊弄」(永远报高自信),论文没验证。