阅读指南
前面几节,我们了解了文字接龙、概率分布和自回归机制。 但还有两个重要的概念需要补充: ChatGPT预测的最小单位是什么?为什么每次回答都不一样? 在这一节,我们将解答这些问题。
7.1 Token和Tokenization:文字接龙的"最小单位"
这里我需要稍微技术性地补充一点:
ChatGPT预测的,准确说不是"词",而是Token。
什么是Tokenization(分词)?
在文本输入到ChatGPT之前,会先被切分成一个个Token。这个过程叫做Tokenization(分词)。
为什么需要这样做?
首先,你要理解一个关键约束:计算机需要一个固定大小的词表。
什么意思?就是ChatGPT必须事先定好一个"词汇表",比如包含20万个词。在预测下一个词时,只能从这20万个词里选,不能临时增加新词。但问题来了:
如果直接用"词"作为基本单位: - 中文常用词就有几万个,加上专业术语、人名地名,轻松上百万 - 英文单词更多,几十万个,加上各种变形(walk, walking, walked...) - 还有不断涌现的新词:"元宇宙"、"Vibe-Coding"、"直播带货"...
如果把所有词都放进词表:
- 词表会非常大(几百万个)
- 计算成本会爆炸(每次预测要算几百万个概率)
- 还是会遇到新词(永远有没见过的词)
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
Token的解决方案
不用"词"作为基本单位,而是用更小的"token": - 把常用词保留为一个token(如"今天"、"the") - 把不常用的词切分成几个token(如"人工智能" → "人工"+"智能") - 把生僻词切得更碎(如"ChatGPT" → "Chat"+"G"+"PT")
这样,用20万个token,可以组合出无限种词汇。
Token是什么?
一个token可能是: - 一个完整的中文词(如"今天") - 一个字(如"真") - 一个英文单词的一部分(如"Tokenization"可能被切成"Token" + "ization") - 一个标点符号(如"," 或 ".")
具体例子
中文:
"今天天气真好" → 切分成:["今天", "天气", "真", "好"] → 这是4个token
而英文可能是这样:
"Tokenization is important" → 切分成:["Token", "ization", " is", " important"]
→ 这是4个token(注意空格也算在token里)
Token与中英文词汇的换算大致关系: - 中文: 1个token ≈ 1个字 - 英文: 1个token ≈ 0.75个单词
词表大小随版本增长: 从 GPT-2/3 的 5万多个,到 GPT-4 的 10万多个,再到 GPT-4o 的 20万多个。
更大的词表意味着: - 更精细的表示:能把常用词整个存储,不用切碎 - 更高的效率:减少需要处理的token数量
这就是token的智慧之处。
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
7.2 为什么每次回答都不一样?
因为ChatGPT引入了随机性。它不是每次都选概率最高的词,而是按照概率分布随机抽样。
为什么要这样设计?
-
更像人类:人类即使回答同一个问题,也会有不同的表达方式。随机性让AI的表达更生动、更自然。
-
创造力与准确性的平衡:完全确定性的回答太僵化,完全随机又太混乱。通过概率采样,在两者之间找到平衡。
这个话题非常深刻,涉及到创造力的本质、智能与随机性的关系等问题。我们会在后续专门详细讨论Temperature和另一个重要参数Top-p,以及它们如何控制AI的"创造力"。
想象下,如果ChatGPT对于同样的问题,每次回答都一字不差,那她就不配称为人工智能,她只是一个MySQL数据库。你只是在查询数据。
7.3 冷知识与趣闻
冷知识: ChatGPT其实不懂数学
很多人以为ChatGPT很擅长数学,毕竟它能解方程、算概率。
但其实它不是在"算",而是在"猜"。
问:"23 + 47 = ?"
ChatGPT的思路: - 训练数据里见过很多"23 + 47 = 70" - 预测:下一个词最可能是"70"
它不是真的在计算,只是记住了答案。
它可能连简单的计数都会错:
问:"strawberry这个单词里有几个r?"
ChatGPT可能答错。
因为它不是在"数字母",而是在预测。
类似一个学生把所有题目和答案都背下来了,但并不理解数学原理——考试能过,换个题型就懵了。
不过,OpenAI很早就发现了这个问题,并找到了一个巧妙的解决方案:让ChatGPT学会“请外援”。
从GPT-4开始,ChatGPT可以调用外部工具——一个真正的计算器或Python代码执行环境。当遇到数学题时:
- 识别出这是个数学问题
- 调用Python执行真正的计算
- 把计算结果包装成自然语言返回
所以2024年你用ChatGPT算数学题,大概率不会出错——不是因为它“学会”了数学,而是因为它学会了调用工具。
2026年的新一代大模型(如GPT-5.5、Qwen3-Max、Gemini 3.0)通过强化学习和推理增强,它们已经具备了较强的原生数学计算能力,不再完全依赖调用外部工具,而是能够在模型内部进行多步骤的逻辑推导和自我纠错。
但核心原理没有变——它们仍然是在“预测”,只是通过更深的推理能力,让这种预测更加准确。对于特别复杂的数学问题,模型仍然会调用专业工具来保证100%的准确性。
7.4 下一节预告
现在你知道了ChatGPT是如何玩文字接龙游戏的:一个词一个词地预测,每次选概率最高的。
但这里有个核心问题:什么是"语言模型"?为什么ChatGPT被称为"大语言模型"?
下一节我们将正式介绍:语言模型的概念和本质。
7.5 ■ 学点英语
| 中文 | English | 音标 | 说明 |
|---|---|---|---|
| 词元 | Token | /ˈtoʊkən/ | 模型预测的最小文本单位,可以是词、词的一部分或标点 |
| 分词 | Tokenization | /ˌtoʊkənaɪˈzeɪʃən/ | 将原始文本切分为Token序列的过程 |
| 词表 | Vocabulary | /vəˈkæbjʊleri/ | 模型能识别的所有Token的集合,GPT-4o约20万个 |
| 子词 | Subword | /ˈsʌbwɜːd/ | 比完整词更小的文本单元,通过组合子词Token可用固定词表表示无限词汇 |
| 温度参数 | Temperature | /ˈtemprətʃər/ | 控制采样随机性的超参数,温度越高输出越多样、越具创造性 |
| 嵌入 | Embedding | /ɪmˈbedɪŋ/ | 将离散的Token映射到连续向量空间的技术,使语义相近的词在空间中靠近 |
| 自回归 | Autoregressive | /ɔːtoʊrɪˈɡresɪv/ | 模型依赖自身之前的输出作为后续输入、逐个预测下一个Token的生成方式 |
| 随机采样 | Random Sampling | /ˈrændəm ˈsæmplɪŋ/ | 按照概率分布随机选择下一个Token而不是每次都选最高概率者 |
7.6 ■ 思考帧
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。