跳到主要内容

3.5 拼装一个 GPT:token 的完整旅程

清点零件箱​

走到这里,造一台 GPT 需要的零件你已经全部见过:

  • 分词器和 embedding(第 1 章):把文字变成编号,再变成向量;
  • 神经网络(第 2 章):能拟合任意规律的前馈网络,以及训练它的三件套;
  • 多头注意力 + 位置编码(3.2、3.3 节):让词与词交换信息,并知道彼此的先后;
  • 残差 + 层归一化(3.4 节):保证几十上百层叠起来不塌。

这一节只干一件事:把零件拼成整机,然后跟着一个 token 走完全程。

🎮 动手实验
一个 token 的完整旅程
从「天空是」进去,到「蓝」出来,中间到底发生了什么?点「下一步」跟着数据走完全程(数值为示意)。
输入文字→分词→向量化→Transformer 块 ×N→打分 logits→变概率 softmax→采样 & 循环
「天空是」
第 1/7 步 · 输入文字:一切从一段文字开始。模型的任务:接着「天空是」往下写。
💡 要点:整条流水线里没有任何一步是「理解中文」——只有查表、矩阵乘法、加权平均和掷骰子。但把它重复几十层、乘上千亿参数,「理解」就从纯计算里涌现了出来。最后那个循环箭头值得多看一眼:大模型一次只算一个 token,长回答就是这个循环转了几百圈。

一步步点「下一步 →」,走完 7 步。有两站值得放慢脚步:

第 4 站「Transformer 块 ×N」。一个块 = 多头注意力(token 之间交换信息)+ 前馈网络(每个位置各自深加工),两者都套着 3.4 节的残差和归一化。然后——就没有然后了:把这个块原样叠 N 遍,就是 GPT 的全部主干。GPT-2 叠了 12 层,2025 年的旗舰模型叠上百层。

第 7 站的循环虚线箭头。整趟流水线跑完,模型只产出一个 token(动画里 77% 概率的「蓝」),拼回句尾,回到第 1 站再来一圈——这就是 1.1 节埋下的自回归循环。你收到的几百字回答,就是这条流水线转了几百圈的产物。

GPT 的全部秘密​

把 7 站拉成一条直线:

分词查表(1.3)→ 领向量、贴位置工牌(1.4、3.3)→ N 层「注意力交换信息 + 前馈各自加工」→ 对词表打分(logits)→ softmax 变概率 → 掷骰子(0.3 的语言骰子)。

请注意一个略微惊悚的事实:流水线里没有任何一步在「理解中文」。有的只是查表、矩阵乘法、加权平均和掷骰子。所谓「理解」,是把这些简单运算叠到千亿参数、喂上十几万亿词之后,从规模里涌现出来的现象——第 4 章讲预训练时你会再次撞见这个主题。

七年没大变的骨架​

更惊人的是这副骨架的稳定性:从 GPT-2(2019 年)到 2026 年的旗舰模型,主干结构几乎没变。变的是规模(层数、维度、数据量翻了成百上千倍)和细节(激活函数换了、归一化挪了位置、位置编码换成 RoPE)。原因不复杂:这个「注意力 + 前馈」的积木对 GPU 极端友好,而且随规模变大稳定变强(第 4 章的 Scaling Laws)——工程上找到了就不轻易换。

参数都花在哪​

以 GPT-2 小号(1.24 亿参数,2019 年)为例:embedding 占了约三成(1.4 节深入层算过这笔账——小模型词表相对显大);剩下的 12 层里,注意力约占四分之一,前馈网络约占一半。模型做大之后 embedding 占比骤降到几个百分点,剩余参数大约三分之一在注意力、三分之二在前馈——低调的前馈网络才是参数大户。

动画在哪里简化了?

数值全是示意的:真实模型的 logits 是对整个词表(几万到二十几万个 token)逐一打分,不止 5 个候选;向量是几千维,不是 4 维。「embedding + 位置」画成了简单相加,现代模型多在注意力内部用 RoPE(3.3 节)。真实模型推理时还有 KV 头共享 / 分组查询注意力(GQA)等优化——那是第 6 章的故事。

小结​

本节要点
  • 一个 Transformer 块 = 多头注意力(交换信息)+ 前馈网络(各自加工),残差与归一化保驾;GPT 主干 = 这个块 × N。
  • 自回归循环:一整趟前向只产一个 token,长回答就是流水线转几百圈。
  • 参数大头在前馈网络(非 embedding 参数的约三分之二)。
  • 骨架自 2019 年以来基本未变,变的是规模与细节——规模才是主角(下一章见)。
📝 动手自测0/3
1. 一个标准的 Transformer 块由哪两大部件组成?
2. GPT 生成一段 100 个 token 的回答,大约要把整条流水线跑多少遍?
3. 大模型的参数大头花在哪里?

延伸阅读​