零基础认识大语言模型(LLM)工作原理(8.为什么大模型会“胡说八道”?)

第八章:为什么大模型会"胡说八道"?------幻觉的本质机制


目录

零基础认识大语言模型(LLM)工作原理目录 - GuZhenYin - 博客园

本章导读

我们在使用大模型的时候,可能见过下面的情况(特别是早期的大模型):

  • 明明不存在的论文,被模型说得有鼻子有眼

  • 编造 API 参数、函数名

  • 历史事实错得很自信

  • 引用不存在的链接或书籍


我们不自觉的就会有个疑问:为什么模型不能"只说它确定的事"?

通读了前面7章内容,其实我们应该就能明白:因为它的训练目标,从来不是"事实正确",而是"概率最优续写"。


8.1 归纳一句话

LLM 其实完全不知道"真相",只知道"哪种说法更像人类文本"。


也就是说:

人类 大模型
判断真假 判断概率
事实验证 文本延续
外部世界 语料分布

所以模型本质其实是在做**"像事实的生成" 而不是 "真实判断"**


8.2 举一个例子

输入:

text 复制代码
爱因斯坦提出了____

模型会输出:

  • 相对论(高概率)

  • 光电效应解释(高概率)

  • 质能方程(高概率)


但如果你问:

text 复制代码
爱因斯坦在2024年发表了____论文

模型仍然可能"补全":

  • 一篇关于量子引力的新论文 ❌(假的)

为什么呢?

因为模型在做**"这句话通常怎么写"**的补全

而不是结合上下文判断真实性后在作答(当然,最近的模型通过深度思考和游览器查询补充上下文后,已经很少出现类似问题了)


8.3 幻觉的根本原因

这里我们拆成三个层次。


① 训练目标没有"真实性约束"

模型训练目标是:P(next_token \| context)

没有任何一项是:truth constraint(真实性约束)


所以关键点就在于,概率高并不等于事实正确.


② 自然语言本身就允许"编造但合理"的表达

我们人类语言中:

  • 小说

  • 假设

  • 推测

  • 错误信息

这些编造的信息,本身也都是合法文本


模型的参数来自于大量互联网资料训练,所以很难区分,**"真实描述" 和 "合理虚构"**的差异


③ 模型没有外部验证机制(为了减少幻觉,新模型通过MCP或原生Tools已经具备了类似功能)

模型没有:

  • 数据库查询

  • 搜索引擎

  • 实时校验

  • 事实比对


所以它只能:在内部概率空间"自洽地生成"剩下的内容


8.4 一个非常重要的概念

其实我们可以这样理解:模型不是"查资料回答",而是"闭卷写作文"。


在闭卷考试里:

  • 不能查资料

  • 只能凭记忆和语言规律写


结果就是:写得很像,但不一定对


8.5 为什么模型会"编造得很自信"?

这是很多人困惑的点。


原因1:概率最大化机制

前面我们一直在讲,模型输出的是:最可能的 token


所以还是那句话,最可能不等于最真实


原因2:语言中"自信表达"本身是高概率模式

在大模型的训练语料中包含大量的学术论文、教科书、技术文档,这些文献资料通常都是 强断言语气.


所以模型学到了这些资料中的一个关键语气**"正确答案等于自信表达"**


原因3:缺少"不知道"的高质量表达数据

在我们现实中,如果遇到了不知道或者不清楚的事情我们正常会说:

  • 我不确定

  • 可能是

  • 没有找到资料


但训练数据里:这种表达比例远低于"确定性表达" (因为获取的大量互联网资料,都不是提问,而是文章)


所以导致的结果就是,模型更倾向"给答案",而不是"拒答"


8.6 幻觉的三种类型

我们可以把模型的幻觉简单的分类成以下三点.


类型1:事实型幻觉

编造不存在的信息:

  • 虚构论文

  • 错误历史事件

  • 假 API


类型2:逻辑型幻觉

推理过程看似合理,但是结论错误.(比如之前很火的,50米加油站,是开车去 还是走过去的问题.)


类型3:引用型幻觉

这是最危险的一类:

  • 编造来源

  • 编造链接

  • 编造书籍



8.7 为什么通过 RAG 能缓解幻觉?

为了解决模型幻觉和参数很难实时更新的问题.

后面出现了RAG等相关技术,来缓解模型的幻觉输出.

但是为什么RAG能减少模型的幻觉呢?

我们先了解一下RAG到底做了些什么.


RAG 做的事:

text 复制代码
用户问题
   ↓
检索外部知识库
   ↓
把资料塞进 Context
   ↓
LLM 生成答案

本质作用,其实就是把"闭卷考试"变成"开卷考试"


为什么会有效呢?

因为模型现在可以对照RAG资料,并且基于证据生成回复(实际上,我们可以理解RAG把模型需要的上下文补全了很多,所以预测的token也就准了许多)


但为什么不能根治?

因为RAG只能补全模型对话的上下文,但是在上下文不够清晰的情况下, 模型仍然可能产生"编造 + 资料混合"的情况


也就是说有证据时更准,但仍可能误读证据.

但是,一定要记住,RAG只能缓解幻觉,并不能完全解决幻觉.

很多人误以为:

RAG = 解决幻觉

❌ 错


正确理解:

RAG = 降低幻觉概率,不改变生成机制


8.8 为什么工具调用(Tool Use)更可靠?

比如:

  • 搜索

  • SQL

  • API

  • 代码执行


原因:

这些工具提供"外部真实反馈"


对比:

方式 是否有事实约束
纯 LLM
RAG ⚠️部分
Tool + Execution

8.9 幻觉无法彻底消除的根本原因

我们需要明确这个核心。


因为说到底模型本质是:概率生成模型

而不是:事实数据库


只要满足以下条件,幻觉就必然存在:

  • 生成式模型

  • 无外部验证

  • 基于概率采样

所以幻觉不是错误,是生成机制的副作用


8.10 为什么有时候幻觉"看起来很合理"?

因为模型学到的是人类语言本身的"高压缩结构"

就算错误信息也可能语法正确、逻辑通顺、表达专业

所以错误的内容它也可以"长得像真理"


8.11 总结

如果只用一句话总结的话,我们可以认为幻觉的本质是:模型在没有外部世界约束的情况下,用概率去生成"最像答案的文本",而不是"真实答案"。


本章总结

我们解决了四个核心问题:

① 为什么会幻觉?

因为目标是"像文本",而不是"真"

② 为什么会自信胡说?

因为训练数据偏向确定性表达

③ RAG 为什么有效?

因为提供了外部证据,补充完善了上下文, 能让token预测更加准确,但是不改变生成机制

④ 幻觉能不能彻底消除?

不能,只能降低概率