# 从“猜下一个词”说起：大模型为什么有时惊艳，又为什么会在简单事实上出错

用一个机制解释大模型的两副面孔：擅长改写总结，却会在具体事实上自信地编错

> 大模型原理 · 幻觉 · 使用技巧 · 约 5 分钟 · 09 月 28 日

## 本篇要点

1. 大模型生成文字时每步只做一件事：根据已有上文给所有候选的下一个词估一个可能性，挑一个，接到后面再重复。
2. 这一步要猜得准，就必须用上语法、搭配、常识和逻辑，所以很多看似“理解”的能力是好用之处，而不是额外的模块。
3. 判断它靠不靠谱的实用分界线是：下文能不能从已经给出的文字里推出来；能推出来的任务（改写、总结、翻译、基于你提供的材料回答）最可靠。
4. 对没有规律可循的任意事实（生日、编号、冷门细节），它只能猜一个格式正确、语气自然的答案，因此答错和答对一样流畅。这种听起来合理却不属实的答案通常叫幻觉。
5. 研究显示，即使训练数据没有错误，只出现一两次的任意事实也必然带来一定比例的错误；出现次数多的事实和上文里给出的信息则可靠得多。
6. 答错还因为后训练用的评测多按对错二值打分，说“不确定”不得分，于是模型被推向“不能留空”的考试模式，宁可自信作答。
7. 所以涉及具体名字、日期、数字、出处时不要只凭它的记忆，要另找来源核对；语气自信不代表正确。
8. 把生成时的随机性调到最低不会修正事实错误；提问时把材料直接放进上下文，是把任务从“凭记忆猜”变成“照着上文说”的有效做法。

---

很多人第一次用大模型，感受是矛盾的：改一段文案、总结一份材料，它做得又快又像样；可随口问一个具体日期、某个人的生日，它却给了一个听起来完全合理、查一下却是错的答案。

这两个现象其实来自同一件事。这一篇就把这件事讲清楚：大模型生成文字的机制是什么，它为什么在有些任务上强得超出预期，又为什么会在看起来很“简单”的事实问题上出错。

## 它其实只做一件事：猜下一个词

像 ChatGPT、Claude、DeepSeek 这类能对话的语言模型，在写出一句话的时候，每一步只做一件事：看着已经出现的文字，给所有可能的“下一个词”各估一个可能性大小，然后从中挑一个；挑中的词接到后面，成为新的上文，再挑下一个。

它不是先把整段答案想好再打出来，也不是先去资料库里查一遍再回答。它是一边写一边猜，写到哪算哪。你看到的整段回答，是这个词接下一个词、一步步拼出来的。

## 为什么“只会猜词”也能写出像样的答案

因为要把下一个词猜准，模型必须用上上文里的一切线索。“他把钥匙插进锁孔，转动了一下，门____”，下一个词几乎只能是“开了”。猜得准，就要求它掌握语法和固定搭配；而更关键的是，很多搭配规律背后就是事实和逻辑：“巴黎是法国的____”后面反复出现“首都”，是因为人类写作通常只在符合事实时才大量重复。

所以，模型表面上学的是一堆词的共现规律，但这些规律里装着大量知识：常见的词语搭配、常识、专业术语、文体的分寸，甚至一部分推理步骤——像“如果 A 大于 B，B 大于 C”这类句子在文字里反复出现，模型也就学会了接下来通常该说什么。

这给了我们一条很实用的分界线：**下文能不能从已经给出的文字里推出来。**

- 改错别字、调整语气、翻译、总结、按给定格式改写：输出几乎完全由输入决定，规律很强，所以它做得好。
- 你粘贴一份文件再问“这份文件里写了什么”：答案就在你给的上文里，它不需要靠记忆去找，也不需要凭空猜。
- 反过来，问一个具体日期、某个人的出生年、某个编号：这些信息不在上文里，也没有可循的规律，它就只剩“猜”这一条路。

## 猜不到的时候，它照样会给出答案

模型的知识主要来自两个阶段。第一步是在海量文本上反复做上面那个猜词练习，叫预训练；在这之后还有一步叫后训练，用大量题目继续调整它。事实类错误的两类原因，正好分别出在这两个阶段。

**第一类：有些事实本身就没有规律可循。** 一个人的生日、一份文件的具体编号、某篇冷门文章里出现过一次的细节，这些信息没有留下“可以推出来”的模式。看到“某某出生于”这个上文，模型没法从上文算出后面的日期。但它必须输出一个词，于是它输出的就是“在这个位置上看起来最像”的那个词：格式正确、语气自然，很可能恰好是错的。OpenAI 在 2025 年讨论这个问题的文章里用了一个类比：用大量猫狗照片训练识别猫狗很可靠，但如果让人给每张宠物照片标上它的生日，这个任务无论算法多好都会一直出错，因为生日是随机的。那些无规律的冷门事实，对模型就是这类“宠物生日”[1][2]。这种“听起来合理却不属实”的答案，通常就叫幻觉。

有研究进一步说明，这类错误不是数据脏或模型小造成的偶发现象：即便训练数据本身没有错误，对于那些在数据里只出现一两次的任意事实，一个“校准良好”的模型也必然会在一定比例上编出错误内容[3]。注意是“一定比例”，不是“每个冷门事实都错”：出现次数多的信息、或者上文里已经给出的信息，它答对的概率会明显更高。

**第二类：它没有被训练成“不会就闭嘴”。** 后训练里常用的做法是拿大量题目（选择题、问答、人与模型答案的对比）继续调整模型。这些评测大多按对错二值打分：答对得分，答错不得分，写“我不确定”同样不得分。在这个规则下，“猜一下”的期望得分永远不低于“承认不知道”。于是模型被推向了“考试模式”：宁可给一个具体而自信的答案，也不肯空着。这就是为什么它答错时语气常常比答对时还肯定——它不是有意骗你，它是被训练成了一个在考场上从不留空的学生[1][2]。

## 一条能用的判断规则

遇到一个问题，先问自己：**答案是已经在我给的文字里，还是能从这些文字的规律里推出来？**

推得出来，就放心用：改写、总结、翻译、按格式整理、基于你粘贴的材料提问，都是它最稳的场合。

推不出来，尤其是答案落在具体的名字、日期、数字、编号、出处、引文上，就把它当成一个“写得很好看的猜测”，一定要另找来源核对。把资料直接贴给它并不能保证不出错，但会把问题从“凭记忆猜”变成“照着上文说”，性质完全不同。

还有两点边界值得记住。同一件事问两遍答案不一样，是因为它每一步都在候选中挑一个、带一点随机；但把生成时的随机性调到最低，并不会让事实变对——在信息不存在的地方，最“确定”的答案也只是一个猜测。另外，自信不是正确率的信号：语气是学来的文体，不是贴在答案上的“确定度标签”。

## 术语表

- 下一个词预测：模型每一步只根据已经出现的文字，估计下一个词是什么，再把这个词接上去继续下一步。
- 候选与可能性：每一步给众多候选各估一个可能性大小，再按这个大小挑一个，所以同一个问题问两遍答案可能不同。
- 任意事实：没有规律可循、也无法从上下文推出的具体信息，例如某人的生日、某个编号、某篇冷门文章里的细节。
- 幻觉：模型给出的听起来合理、格式正确，但并非真实事实的答案。
- 预训练与后训练：预训练是在海量文本上反复做猜词练习；后训练是用大量按对错打分的题目继续调整模型。
- 上下文：你这次一起交给模型的文字（问题、粘贴的文档等），它回答时能直接使用的材料。

## 来源

1. [OpenAI: Why language models hallucinate — 含“宠物生日”类比与评测激励分析](https://openai.com/index/why-language-models-hallucinate/)
2. [Why Language Models Hallucinate（论文原文）— 预训练错误来源与后训练“猜比承认不知道得分更高”](https://cdn.openai.com/pdf/d04913be-3f6f-4d2b-b283-ff432ef4aaa5/why-language-models-hallucinate.pdf)
3. [Calibrated Language Models Must Hallucinate — 只出现一次的任意事实会带来不可避免的错误率](https://arxiv.org/abs/2311.14648)

---

原文：https://pangzhengboyin.com/articles/why-llms-guess-next-token-and-hallucinate-a2cda104

> **庞征博引** · 想学的，慢慢都会
>
> 庞征博引是把想学的东西写成连载的 AI 学习工具。说出想学什么，它会先了解你的基础，再把主题写成一篇篇 5–10 分钟能读完的文章；边读边问，接下来学什么跟着你走。这篇就是这样写出来的。
>
> 开始你自己的连载 → https://pangzhengboyin.com
