💡提示

阅读指南

前面几节,我们了解了文字接龙、概率分布和自回归机制。 但还有两个重要的概念需要补充: ChatGPT预测的最小单位是什么?为什么每次回答都不一样? 在这一节,我们将解答这些问题。

7.1 Token和Tokenization:文字接龙的"最小单位"

这里我需要稍微技术性地补充一点:

ChatGPT预测的,准确说不是"词",而是Token

什么是Tokenization(分词)?

在文本输入到ChatGPT之前,会先被切分成一个个Token。这个过程叫做Tokenization(分词)。

为什么需要这样做?

首先,你要理解一个关键约束:计算机需要一个固定大小的词表

什么意思?就是ChatGPT必须事先定好一个"词汇表",比如包含20万个词。在预测下一个词时,只能从这20万个词里选,不能临时增加新词。但问题来了:

如果直接用"词"作为基本单位: - 中文常用词就有几万个,加上专业术语、人名地名,轻松上百万 - 英文单词更多,几十万个,加上各种变形(walk, walking, walked...) - 还有不断涌现的新词:"元宇宙"、"Vibe-Coding"、"直播带货"...

如果把所有词都放进词表:

  • 词表会非常大(几百万个)
  • 计算成本会爆炸(每次预测要算几百万个概率)
  • 还是会遇到新词(永远有没见过的词)
💬
本节包含互动练习 #42

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

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的智慧之处。

💬
本节包含互动练习 #43

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

7.2 为什么每次回答都不一样?

因为ChatGPT引入了随机性。它不是每次都选概率最高的词,而是按照概率分布随机抽样。

为什么要这样设计?

  1. 更像人类:人类即使回答同一个问题,也会有不同的表达方式。随机性让AI的表达更生动、更自然。

  2. 创造力与准确性的平衡:完全确定性的回答太僵化,完全随机又太混乱。通过概率采样,在两者之间找到平衡。

这个话题非常深刻,涉及到创造力的本质智能与随机性的关系等问题。我们会在后续专门详细讨论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代码执行环境。当遇到数学题时:

  1. 识别出这是个数学问题
  2. 调用Python执行真正的计算
  3. 把计算结果包装成自然语言返回

所以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 ■ 思考帧

💬
本节包含互动练习 #44

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

💬
本节包含互动练习 #45

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

💬
本节包含互动练习 #46

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。

💬
本节包含互动练习 #47

该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。