学习 / 神经网络 / 09

神经网络 · 第 09 条 · 局限

幻觉从哪来

模型「胡说八道」不是 bug,而是它的工作机制在特定情况下的自然产物。理解这一点,才知道哪些应对方法真的有效。

难度 入门约 11 分钟前置:1 条更新 2026-09-28

它本质上在做什么

语言模型的核心任务自始至终只有一个:根据已有的上下文,预测下一个最可能出现的词。然后再把这个词加进上下文,继续预测下一个。

注意:这里没有任何一步是「查资料」或「核实事实」。它生成的是「看起来合理的文本」,而不是「经过验证的陈述」。大部分时候这两者重合,但重合是结果,不是机制。

流畅和正确是两个不同的目标。模型被训练成「生成流畅文本」,而这个训练过程顺带让它学会了很多事实——但事实是副产品,不是目标。当两者冲突时,模型会优先保证流畅。

三个具体的成因

训练目标里没有「承认不知道」

即使模型不确定,它也倾向于给出一个「看起来像答案」的答案——因为在训练数据里,一个完整的答案比「我不确定」更常见。

它无法区分「记得」和「编得像」

对模型来说,一个真实的事实和一个听起来合理但虚构的细节,在内部表征上可能非常接近。它没有元认知——没有「我对这件事的信心是 0.3」这种信号自然浮现。

长尾知识的稀疏

训练数据里出现频率高的内容(主流人物、知名事件),模型记得牢;频率低的内容(具体日期、冷门人名、精确数字),它只能靠「模式」编一个——因为模式比事实更容易学。

这也解释了为什么幻觉特别容易出现在:具体数字、引用来源、精确日期、小众人物上。

它生成的是「看起来合理的文本」,不是「验证过的陈述」预测下一个词输出流畅文本≠ 一定是真的两者经常重合,但那是结果训练目标里没有「承认不知道」完整答案在语料里比「我不确定」更常见分不清「记得」和「编得像」没有元认知信号自然浮现长尾知识本就稀疏越具体的数字 / 日期 / 人名越容易编所以对策是「检索 + 引用 + 允许说不确定 + 对数字用工具核对」,而不是在提示词里写「请确保准确」
关键在中间那个不等号:流畅和正确是两个目标,模型优先学会的是前者。下面三个成因里最值得记住的是第三条——越具体的东西(数字、日期、人名)越容易编,因为模式比事实好学。

哪些应对方法是真正有效的

哪些方法不那么有效

「请确保准确」这类提示词效果很有限——它改变的是语气,不是机制。模型会变得听起来更谨慎,但事实错误的概率不会因此显著下降。

「仔细思考」有时有用(尤其对推理类任务),但主要是提升推理链的完整性,对事实性幻觉帮助不大。

一个实用的心态

把模型的输出当成「一个能力很强但从不查证的助手写的初稿」。它的价值在于起草、结构化和提供思路;涉及事实、数字、引用的部分,需要外部验证。

这不是缺陷,而是它的工作原理决定的边界。知道边界在哪,比期待它没有边界更有用。

要点回顾
← 微调、对齐与 RLHF 怎么读一篇模型论文 →