Chapter 01

大语言模型的本质

核心问题 ChatGPT这类AI到底在做什么? 阅读收获 理解AI"预测下一个词"的本质,不再神秘化AI

本章概览

本章包含5个知识点,它们之间的关系如下:

下一个词预测(本章核心) │ ├──→ Token(AI处理文字的基本单位) │ └──→ 上下文窗口(Token的数量上限,决定AI能"看"多远) │ ├──→ 训练过程(AI的能力从哪来:预训练 → 微调 → RLHF) │ └──→ Temperature(控制预测时的随机程度)
阅读建议:如果你只想了解AI的核心本质,读完第一节就够了。后面四节是帮助你更完整地理解这个本质的补充。

1.1 下一个词预测

这是理解所有大语言模型的钥匙。抓住这一点,后面的一切都好理解。
定义

大语言模型(LLM)的本质工作是:给定一段已有的文字,预测下一个最可能出现的词(字)。

它不是在"思考",不是在"理解",而是在做一件统计意义上的事——基于它见过的海量文本,计算接下来出现每个字的概率,然后选一个输出。

工作流程

这个过程是逐字进行的。我们用"我喜欢吃四川"来看看AI是怎么一个字一个字把文字"吐"出来的。

更关键的是:每一步选择的不同,会引向完全不同的结果。看下面三条路径——输入完全一样,但第1个字的选择不同,后面整条链路就分叉了:

路径A:
  我喜欢吃四川 → [火] → [锅] → [,] → [尤] → [其] → [是] → [麻] → [辣] → [锅] → [底]...
  最终输出 ▸ "我喜欢吃四川火锅,尤其是麻辣锅底……"

路径B:
  我喜欢吃四川 → [担] → [担] → [面] → [,] → [配] → [上] → [花] → [生] → [碎]...
  最终输出 ▸ "我喜欢吃四川担担面,配上花生碎和葱花……"

路径C:
  我喜欢吃四川 → [冒] → [菜] → [,] → [满] → [满] → [一] → [盆] → [配] → [菜]...
  最终输出 ▸ "我喜欢吃四川冒菜,满满一盆配菜……"

每个方括号 [ ] 就是AI输出的一个字。你看到的每一段流畅文字,都是这样一步步"猜"出来的——而仅仅因为第1个字选了"火"还是"担"还是"冒",后面的内容就完全不同。

那AI凭什么选"火"而不选"担"或"冒"?答案是概率——我们在下面的案例中详细说明。

类比

手机输入法 当你打"我喜欢吃",输入法会推荐"火锅"、"烧烤"、"甜食"。ChatGPT就是一个超级加强版的输入法联想:

  • 普通输入法:只看前面1-2个词
  • ChatGPT:能看前面几万甚至几十万个字,综合判断下一个字
常见误区

误区一:"AI在思考、在理解我的问题"

当你问ChatGPT"今天天气怎么样",它回答"今天天气很好"——看起来像是在"理解"你。但它实际上只是在做概率预测:在"今天天气"后面,"很好"出现的概率很高,所以它输出了"很好"。

误区二:"AI是从数据库里找到一篇现成的文章给我"

不是复制粘贴。它更像一个读过所有书的人——你问他问题,他根据读过的内容现场组织语言回答你,而不是把书里的原话念给你。

AI在训练时读了海量内容,但它并没有"记住"这些内容的原文。就像你读过很多书,记住了知识和感觉,但不能一字不差地背出原文。这就解释了三个现象:

  • 同一个问题问两次,可能得到不同答案(不是在查数据库)
  • AI能写出世界上从未存在过的内容组合(是在"生成",不是在"检索")
  • AI有时会编造不存在的东西(概率预测可能出错)
案例

下面三个案例从浅到深,帮你理解"预测下一个词"到底意味着什么。

案例一:四川美食

当你输入"我喜欢吃四川",AI会计算每个候选字的概率:

候选词概率
火锅60%
担担面15%
麻婆豆腐10%
冒菜8%
回锅肉7%

"火锅"概率最高,于是AI输出"火锅",接着继续预测后面的内容。整个过程没有任何"理解",只有概率。(至于那些概率较低的"担担面"、"冒菜"什么时候有机会被选中——我们在1.5节Temperature部分会讲到。)

案例二:中文诗歌

当你读到"床前明月",你几乎能100%确定下一个字是"光"。读到"春眠不觉",你自然会想到"晓"。你的大脑在这一刻做的事,和AI本质上完全一样——基于你过去读过的大量文本,预测最可能出现的下一个字。区别只在于:你读过几百本书,而AI"读"过整个互联网。

案例三:同声传译

经验丰富的同声传译员有一个令人惊叹的能力:他们常常在说话人还没说完一句话时,就已经开始翻译了。为什么能做到?因为他们听到前几个词后,就能预测接下来会说什么。比如听到"Ladies and gentlemen, it is my great...",他们已经知道下一个词大概率是"pleasure"或"honor",于是提前开口:"女士们先生们,我非常荣幸……"

大语言模型做的事和这一模一样——只不过翻译员的"经验"来自几十年的工作积累,而AI的"经验"来自阅读了互联网上几乎所有的文本。

权威引用

"ChatGPT做的就是一遍遍问'给定目前的文本,下一个词应该是什么'——然后每次添加一个词。"

—— Stephen Wolfram,What Is ChatGPT Doing … and Why Does It Work?

"ChatGPT不像人类记忆原始材料,而是学习概念之间的关系。就像老师大量学习后能解释概念,但不是逐字复述原始材料。"

—— MIT Sloan,How ChatGPT Works

1.2 Token

要理解AI怎么做"下一个词预测",首先要知道AI眼里的"词"是什么。
定义

Token(令牌/词元)是大语言模型处理文字的基本单位。AI不直接看文字——它先把文字切成一个个小块(Token),再把每个Token转换成数字,然后才能计算。

术语说明

Token这个英文词的原意是"令牌"或"代币"。在AI领域,它指的是文本被切分后的最小处理单元。中文有时译为"词元",但大多数场景直接使用英文"Token"。

原理

计算机只认识数字。所以AI工作的第一步,就是把文字"翻译"成数字:

文字 → 切分成Token → 每个Token对应一个数字 → AI用数字做计算
类比

把一句话想象成一条巧克力棒,Token就是掰开后的一小格一小格。AI不会一口吞下整条巧克力——它一格一格地处理。

案例

还是用我们的四川美食例子:

  • 中文 "我喜欢吃四川火锅" → ["我", "喜欢", "吃", "四川", "火锅"] → 约5个Token
  • 英文 "I love Sichuan hotpot" → ["I", " love", " Sich", "uan", " hot", "pot"] → 约6个Token

(实际切分方式因模型而异,这里只是示意。)

对比

中文 vs 英文的Token效率——一个有实际影响的差异:

语言同样的意思Token数量
英文"hamburger"1-2个Token
中文"汉堡包"3-8个Token
英文100字文章~100 Token
中文100字文章~200 Token

为什么会这样?

  1. 英文有天然的空格分隔 —— "I love you"天然分成3个词,机器很容易切分
  2. 中文没有空格 —— "我爱你"三个字连在一起,切分更复杂
  3. 训练数据的偏差 —— AI主要用英文数据训练,对英文的处理更高效

实际影响:同样内容,中文消耗的Token更多,处理更慢,费用更高。

实践

打开 OpenAI 的 Tokenizer 工具(搜索"OpenAI tokenizer"),分别输入一段中文和一段英文,观察它们被切分成了多少个Token。这比任何解释都直观。

1.3 上下文窗口

知道了Token之后,自然会有一个问题:AI能同时处理多少个Token?
定义

上下文窗口(Context Window)是大语言模型一次能处理的Token数量上限。它决定了AI能"看到"多少内容——包括你给它的输入和它自己的输出,加起来不能超过这个上限。

与Token的关系

上下文窗口的大小以Token为单位。窗口越大,AI能同时考虑的信息越多。

类比

想象你只有一张A4纸来记录对话:

  • 纸就那么大(上下文窗口)
  • 你写的问题占一部分
  • AI的回答占一部分
  • 写满了就没地方了
没有它会怎样

当对话长度超过上下文窗口,AI只能保留最近的内容,把前面的"忘掉"。就像A4纸写满后,你只能擦掉最早写的内容,腾出空间写新的。

这就是为什么和AI聊久了,它会"忘记"你之前说的事情——这就是AI的"失忆"。

数据支撑

不同模型的"纸张大小"差异很大:

模型上下文窗口大约相当于
GPT-3.54,096 Token约3,000字
GPT-4128,000 Token约一本小说
Claude 3200,000 Token约1.5本小说
Gemini 1.51,000,000 Token约7本小说
待补充 可以找用户在长对话中遇到AI"失忆"的真实分享,或测评文章中关于上下文长度对AI表现影响的实测数据。

1.4 训练过程

AI能做"下一个词预测",这个能力从哪来?答案是训练。训练分三个阶段,每个阶段解决不同的问题。
1.4.1 预训练
定义

预训练(Pre-training)是让模型阅读海量文本,学习语言规律的过程。这是AI能力的基础来源。

原理
  • 读什么:互联网上几乎所有的文字——网页、书籍、论文、代码
  • 学什么:语言的规律——什么词经常一起出现,句子怎么组织
  • 目标:给定前面的文字,能预测下一个词
类比

让一个孩子读遍图书馆所有的书。读完之后,他学会了"语言感觉"——知道什么话听起来通顺、什么搭配常见——但他还不会好好回答问题。

预训练之后的AI是什么样的?

你可能觉得:读完了整个互联网,AI应该很厉害了吧?其实远远不够。

预训练只教会了AI一件事:预测下一段文字最可能是什么。但它并没有学会"有人在跟我对话,我应该回答他"。

还是用四川美食的例子。假设你对一个只做了预训练的AI说:"四川有哪些好吃的?",它可能会输出:

❌ "广东有哪些好吃的?湖南有哪些好吃的?浙江有哪些好吃的?"
   → 因为在互联网上,问题经常成列出现,它只是在"续写问题列表"

❌ "这是一个很多游客都会问的问题。据《中国美食地图》统计..."
   → 它在续写一篇网络文章,不是在回答你

❌ "四川有哪些好吃的?\n作者:小明 | 发布时间:2023-05-12"
   → 它在补全一个网页模板

注意:它知道四川火锅、担担面这些知识(因为它全都读过),但它不知道你在期待一个回答。它只是在做"下一段文本最可能是什么"的预测——而在它读过的互联网上,一个问句后面跟的不一定是答案。

所以这个阶段的AI:

  • 有知识,但不知道怎么用知识来回答你
  • 能续写句子,但经常答非所问
  • 可能输出有害内容(因为互联网上什么内容都有)
  • 像一个读了很多书但不懂社交礼仪的天才——肚子里有货,但你问他话他可能自顾自地讲起别的

这就是为什么还需要下一步——微调。

数据支撑
对比项数据
GPT-3训练词数约5,000亿词
人类儿童10岁前接触词数约1亿词
GPT-3训练成本140 - 460万美元
GPT-4训练成本(估算)约1亿美元
1.4.2 微调
定义

微调(Fine-tuning)是在预训练的基础上,用特定领域或任务的数据继续训练模型,让它学会完成特定任务。

怎么做

微调就是拿大量的 (问题,正确回答) 配对数据来训练模型。比如:

输入:四川有哪些好吃的?
期望输出:四川有很多特色美食,最有名的包括:1. 火锅 2. 担担面 3. 麻婆豆腐...

几万条甚至几十万条这样的配对训练下来,模型学会了一个新规律:当输入看起来是一个问题时,我应该输出一个直接的、有帮助的回答——而不是续写一篇文章或补全一个网页。

类比

一个读遍百科全书的人,肚子里有货,但你问他话他可能自顾自地讲起别的。微调就是教他"别人问你话的时候,要针对性地回答"——上完这个"补习班",他就变成了一个能正常对话的人。

1.4.3 RLHF
定义

RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)是通过人类评分来指导模型调整输出偏好的训练方法。这是让AI变得"好用"和"安全"的关键一步。

工作流程
  1. 生成多个答案:AI对同一个问题生成多个回答
  2. 人类打分:标注员对这些回答排序——哪个更好,哪个更差
  3. AI学习:模型根据这些排名调整自己,学会什么样的回答更受偏好
没有它会怎样

假设你问AI:"怎么做炸弹?"

  • 预训练后的AI:可能真的告诉你(因为它从书里学过这些内容)
  • RLHF后的AI:会拒绝回答(因为人类标注员教它"这种回答是差的")

RLHF让AI学会了:拒绝有害请求、承认自己不知道、用更友好的语气、给出更有帮助的回答。

类比

教练指导运动员。运动员(AI)有基本能力,教练(人类反馈)帮他纠正动作、优化策略,让他从"能打比赛"变成"打得好"。

数据支撑
指标GPT-3(无RLHF)InstructGPT(有RLHF)
参数量1,750亿13亿(小得多)
用户偏好基准显著更高
拒绝有害请求率~40%~96%

一个关键发现:13亿参数的InstructGPT(有RLHF)被人类评价为优于1,750亿参数的GPT-3(无RLHF)。参数少100多倍,但因为学会了"做人",反而更受用户喜欢。

待补充 可以找早期ChatGPT(或其他模型)因为RLHF不足而产生不当输出的公开事件,与改进后的表现做对比。

1.5 Temperature

最后一个知识点回到"下一个词预测"本身:AI在预测时,不一定总选概率最高的那个词。Temperature就是控制这个选择策略的参数。
定义

Temperature(温度)是控制大语言模型输出随机性的参数。温度越低,AI越倾向于选概率最高的词,输出越稳定;温度越高,AI越愿意尝试概率较低的词,输出越多样。

原理

还记得1.1的四川美食案例吗?当你输入"我喜欢吃四川",AI算出了这些候选词的概率:

火锅:60%   担担面:15%   麻婆豆腐:10%   冒菜:8%   回锅肉:7%

Temperature决定了AI怎么从中选择:

  • Temperature 接近 0:几乎总是选"火锅"。你问十次,十次都是"四川火锅"——稳定、可预测,但永远没有新花样。
  • Temperature = 1:按原始概率随机选。"火锅"被选中的机会最大,但"担担面"、"麻婆豆腐"也有机会冒出来——每次回答可能不一样。
  • Temperature > 1:进一步拉平概率差距。"冒菜"、"回锅肉"这些本来概率较低的选项也可能被选中——输出更多样,但也更不可控。
对比
任务类型建议温度理由
查找事实信息0 - 0.3需要准确,不要编造
翻译/总结0.3 - 0.5需要稳定,但保持通顺
日常对话0.5 - 0.7平衡准确和自然
创意写作0.7 - 0.9需要多样性和创造力
头脑风暴0.8 - 1.0越发散越好
实践

如果你使用的工具支持调整温度(如OpenAI Playground、部分API调用工具),尝试:

  1. 用温度=0,问一个问题,记录答案
  2. 用温度=1,问同一个问题,记录答案
  3. 重复几次,比较输出的差异

你会直观感受到"温度"如何影响AI的"性格"。

本章小结

知识点一句话总结
下一个词预测LLM的本质是预测下一个最可能出现的词,不是真正的"理解"
TokenAI把文字切成小块(Token)再处理,中文比英文消耗更多Token
上下文窗口AI一次能处理的Token有上限,超过就会"失忆"
训练过程预训练学语言规律,微调学特定任务,RLHF学"做人"
Temperature温度越低输出越稳定,越高越有创意但也越不可控

本章的核心认知:AI不是万能的"超级智能",它是一个非常强大的"文字预测器"。理解这一点,你就能更合理地使用AI——知道什么时候该信任它,什么时候要核实它的输出。

全流程图:把所有知识点串起来

下面这张图展示了从你提问到AI回答的完整数据流——本章的每个知识点都对应其中一个步骤。虚线框内的步骤(编码、Transformer)将在第2课详细讲解。

从提问到回答:LLM 工作全流程 步骤旁标注了对应的课程章节 用户输入 "我喜欢吃四川" ① 分词 Tokenization ["我", "喜欢", "吃", "四川"] ← 1.2 Token ② 编码 Encoding 每个 Token → 数字向量 [371, 8642, 1563, 9027] ← 第2课预告 ③ Transformer 模型 在上下文窗口内处理所有 Token ▸ 第2课详讲 ← 1.3 上下文窗口 ④ 输出概率分布 火:60% 担:15% 麻:10% 冒:8% 回:7% ← 1.1 下一个词预测 ⑤ Temperature 采样 温度低 → 总选"火"  温度高 → 可能选"担" ← 1.5 Temperature ⑥ 解码并拼接到输入末尾 "我喜欢吃四川" + "火" → "我喜欢吃四川火" 循环 预测下一个字 循环多次后 最终输出 "我喜欢吃四川火锅,尤其是麻辣锅底……"

看完这张图,你可以回顾一下:

  • Token(步骤①):你的文字首先被切成小块
  • 编码(步骤②)和 Transformer(步骤③):模型内部的处理过程,第2课的主角
  • 下一个词预测(步骤④):模型输出每个候选字的概率
  • Temperature(步骤⑤):决定从概率分布中怎么选
  • 循环:选中一个字后拼接到末尾,再重新走一遍流程,直到生成完整回答

练习

动手练习1

观察Token差异:用ChatGPT分别输入 "我喜欢吃四川火锅" 和 "I love Sichuan hotpot",让它计算各自的Token数量,体会中英文的差异。

动手练习2

体验"下一个词预测":在ChatGPT中分别输入以下内容(不要加任何其他指令,直接发送),观察AI续写了什么:

  • "我喜欢吃四川"
  • "床前明月"
  • "Ladies and gentlemen, it is my great"

想一想:AI续写的结果和你的预期一样吗?为什么?

动手练习3

体验Temperature:如果你的工具支持调整温度参数(如OpenAI Playground),用不同温度反复输入"我喜欢吃四川",观察输出的变化。低温度时是不是总出现"火锅"?高温度时是不是开始出现"担担面"、"冒菜"等不同答案?

思考题

现在你知道AI是"预测下一个词"的,那么——为什么AI有时候会"一本正经地胡说八道"?

提示:想想概率预测可能出错的情况。这个问题会在第三章详细讨论。

参考资料