一句话总结:

大模型幻觉的根本原因,是它通过概率生成语言,而不是通过严格的事实查询和逻辑验证来回答问题;当信息不足、记忆模糊或上下文存在歧义时,它可能用合理的语言填补知识空缺。

大模型出现“幻觉”,简单说就是:

它的核心任务是生成“最像正确答案的文字”,而不是先确认事实,再把事实说出来。

它有时不知道答案,但仍然会根据上下文继续往下生成,于是就可能生成一个听起来很合理、实际上却不存在或不正确的内容。

结论:当事实缺失时,模型倾向于选择语境下最高频的词,生成看似合理实则错误的输出。

1. 大模型本质上是在“预测下一个词”

例如输入:中国的首都是……

模型会根据训练数据判断,下一个词大概率是“北京”。

它内部做的更接近:P(下一个词∣前面的内容)

而不是像数据库一样执行: 查询事实→验证结果→输出答案

因此,当模型掌握的信息不够时,它仍然会选择一个概率较高、语言上比较连贯的答案,而不一定选择“我不知道”。

2. 训练目标强调“说得通”,不天然保证“说得对”

大模型训练时,主要学习的是大量文本中的语言规律,例如:

  • 哪些词经常一起出现;
  • 一篇论文通常怎样写;
  • 一个引用通常长什么样;
  • 一段代码通常如何组织;
  • 一个专业回答应该使用哪些术语。

所以它很擅长生成“形式正确”的内容。

例如用户要求:

给我找一篇关于图神经网络推荐的论文。

如果模型没有准确记住论文,它可能根据论文标题的常见格式,编出一个很像真的标题、作者和期刊。这些内容在语言形式上合理,但事实可能不存在。

3. 训练数据本身不完整,也可能互相矛盾

大模型的知识来自大量文本,但这些文本可能存在:

  • 错误信息;
  • 过时信息;
  • 不同来源之间相互冲突;
  • 某些领域资料非常少;
  • 同一个名称对应多个对象;
  • 训练数据中只有片段,没有完整上下文。

模型最终学到的不是一张严格、统一、可验证的知识表,而是分散在参数中的统计规律。

因此它可能把多个来源的信息“拼接”到一起,形成一个现实中不存在的答案。

4. 模型的知识是“压缩存储”的,不是逐条保存

大模型不会像硬盘一样完整保存每篇论文、每句话和每个事实。

核心论点:知识并非以“条目”形式存在,导致检索过程彻底失去精准定位的可能。

它更像是把大量知识压缩进参数中,学习到一种模糊的关联:

某个概念通常和哪些概念有关,某类问题通常怎样回答。

这种压缩能够让模型举一反三,但也会造成细节失真。

例如它可能知道:

  • 某篇论文研究图检索;
  • 使用了GNN;
  • 与大模型结合;
  • 发表在某个会议附近的年份。

但它未必准确记得具体标题、作者、指标和数据。此时模型可能把这些模糊信息组合成一个完整但错误的回答。

5. 问题越模糊,模型越容易“自行补全”

例如你问:

那篇使用图来增强推荐的大模型论文是怎么做的?

这里没有明确论文名称,模型需要自己判断你指的是哪一篇。

如果上下文不足,它就可能:

  1. 猜测你指的是某篇论文;
  2. 把多篇论文的方法混合起来;
  3. 补充一些看似合理的实现细节。

所以很多幻觉并不是模型完全胡乱生成,而是它在信息不足时进行了错误推断。

6. 用户的问题中如果带有错误前提,模型可能顺着错误回答

例如用户问:

为什么爱因斯坦在1965年获得诺贝尔奖?

实际上这个问题的前提有误。如果模型没有先检查前提,可能直接解释一个不存在的事件。

这叫做“迎合错误前提”。大模型倾向于保持对话连贯,而不是每次都先质疑用户的问题。

7. 长文本生成会产生误差累积

模型每生成一个词,后面的内容都会受到前面内容影响。

如果前面某一步出现了一个小错误,后面可能围绕这个错误继续展开,最终形成一整套看起来非常完整的错误解释。

例如:

  1. 先写错一个论文名称;
  2. 再根据这个假论文名称编作者;
  3. 再编实验数据;
  4. 再解释为什么结果优秀。

于是错误会越写越具体,也越显得可信。

8. 大模型通常缺少天然的“事实校验机制”

普通大模型在生成答案时,不一定会自动执行:

  • 查数据库;
  • 搜索论文;
  • 检查引用是否存在;
  • 运行代码;
  • 验证公式;
  • 对比最新资料。

如果没有搜索工具、知识库、计算器或外部程序,模型主要依赖自身参数中的知识进行回答。

所以对于论文名称、最新新闻、法律规定、具体数据、引用来源等内容,只依靠模型记忆通常风险较高。

9. 为什么模型有时会“非常自信地说错”

因为模型输出的“自信语气”和它对事实的真实把握程度,并不完全对应。

它学到的是:

专业答案通常应该语句完整、结构清楚、语气确定。

因此即使答案不可靠,它也可能使用非常肯定的表达。流畅程度不等于事实正确性。

一个简单比喻

可以把大模型理解成一个:

读过大量资料、语言表达能力极强,但有时记忆模糊,而且习惯把话接下去的人。

当它准确记得时,回答很好;当它记不清时,也可能根据经验补出一个“最像答案的答案”。

怎样减少大模型幻觉

常见方法包括:

  • 联网检索:先查资料,再回答。
  • RAG:从指定知识库中检索相关内容,把证据提供给模型。
  • 工具调用:用计算器、数据库、代码执行器等验证答案。
  • 要求提供出处:让模型给出可核验的论文、页码或原文依据。
  • 限制回答范围:要求“只根据提供的材料回答”。
  • 允许模型拒答:明确要求证据不足时说“不确定”,不要自行补充。
  • 交叉验证:用多个来源或程序检查关键结论。

图里所说的“上下文”和 Key,主要指模型这一次回答时实际收到的输入内容,不是模型参数本身。

这一次输入内容可能包括:

  1. 你当前发送的 Prompt;
  2. 当前对话中保留下来的历史消息;
  3. 系统给模型的指令;
  4. 检索系统找到后塞进来的论文、网页或知识库内容;
  5. 模型刚刚已经生成的前文。

而模型训练后保存在参数里的知识,是另一回事。

更多推荐