← 3Blue1Brown 合集
3Blue1Brown · 深度学习系列 · 进阶篇

Transformer,看得见的解释

GPT 里的「T」。一个 2017 年提出、如今支撑起几乎所有大模型的架构。这一页用可交互的动画,把它从「一团黑箱」拆成你能亲手拨弄的零件。

改编自 Grant Sanderson(3Blue1Brown)深度学习系列第 5、6 章 · 中文整理 · 所有插图均为实时动画,可点击、可拖动
▶ 观看原视频

30 秒速览

  1. Transformer 是 GPT、Claude、Gemini 等模型的共同骨架,2017 年由论文《Attention Is All You Need》提出。
  2. 它先把每个词变成一串数字(词嵌入),这串数字是空间里的一个方向,相近含义指向相近方向。
  3. 核心是注意力机制:让每个词「看一眼」句子里其他词,按相关程度把信息搬过来,从而把死板的词义改写成带上下文的含义
  4. 注意力和前馈网络交替堆叠几十层,含义被一轮轮打磨,最后一个位置的向量被用来预测下一个词。
  5. 它最大的优势是并行:整句话所有词同时处理,而不像旧架构那样一个一个读——这正是大模型能被高效训练的关键。

这一页你会亲手拨弄的零件

01整体流水线:词怎么变成下一个词(可逐步播放) 02词嵌入:含义是空间里的「方向」 03位置编码:让模型知道谁先谁后(可打乱) 04注意力机制:点哪个词,看它在「看」谁 05QKV:注意力到底在算什么 06多头注意力:几十双眼睛各看一处(可切换) 07堆叠与残差:为什么要叠几十层(可关掉残差对比) 08长上下文的代价:注意力为什么是「平方级」(可拖滑块)

01 整体流水线:一句话怎么变成下一个词

先看全景。Transformer 不是魔法,它是一条流水线:文字进去,每一站都对它做一点确定的数学运算,最后吐出「下一个词」的概率。

下面这张图把整条流水线画了出来。别急着看懂每一站——先点 下一步,让数据一站一站地往前流,每一步右下角会告诉你这一站在干什么。后面每个零件我们都会单独拆开。

引导式 · 可逐步播放
点「下一步」开始,看一句话如何穿过整个 Transformer。
图 1 · 端到端流水线:词 → 嵌入 → (注意力 + 前馈) ×N 层 → 预测下一个词

02 词嵌入:含义是空间里的「方向」

流水线第一站:每个词被换成一长串数字,几百到上万个。把这串数字想成高维空间里的一个箭头——一个方向。

神奇之处在于:训练之后,含义相近的词,方向也相近。「猫」和「狗」挨得近,「国王」减去「男人」再加上「女人」,竟然会落在「女王」附近。模型并不知道字典,它只是把意义编码成了几何。

下面是把高维压到二维的示意。把鼠标移到任意词上(手机上点一下),看它和谁是「邻居」——连线越亮,方向越接近。

可悬停 / 可点击
把指针放到某个词上,看看它在意义空间里的近邻是谁。
图 2 · 词嵌入:每个词是一个方向,方向相近 ≈ 含义相近(二维投影示意)
一句话记住:嵌入把「词」变成「向量」,把「意义」变成「几何距离」。后面所有运算,操作的都是这些箭头,而不是文字本身。

03 位置编码:让模型知道谁先谁后

这里有个麻烦:Transformer 为了能并行,是一次性看到所有词的,它本身分不清「狗咬人」和「人咬狗」——因为词的集合一模一样。

解法很巧:给每一个位置事先准备好一串固定的数字(一个向量),叫做位置编码。第 1 个位置一串、第 2 个位置另一串……这串数字只由「第几个」决定,和是什么词无关。把它加到词向量上,「人」在第 1 位和在第 3 位,得到的向量就不一样了,模型于是「感觉」得到顺序。

下图每一列从上到下是:该位置的编码模型真正看到的向量。中间那排小柱子就是位置编码——每根柱子是向量里的一个数(正值朝上、青色;负值朝下、粉色)。点 打乱顺序:词会换位,但每个槽位的编码柱子纹丝不动,所以词一旦换了位置,加出来的结果就变了。这就是模型区分语序的全部秘密。

可点击 · 打乱
中间那排彩色柱子就是位置编码——它锁定在「槽位」上,只看第几个,不看是什么词。
图 3 · 词向量 + 该槽位的位置编码 = 带顺序信息的向量。柱子高度=向量里的数;打乱时编码锁死在槽位上,词换位结果就变

04 注意力机制:每个词在「看」谁?

这是 Transformer 的心脏。一个词的含义往往依赖别的词:「它」指谁?「苹果」是水果还是公司?注意力机制让每个词主动去看一眼其他词,按相关度把信息搬过来。

下面这句话里,点任意一个词,从它射出的连线就是它的「注意力」——线越粗、越亮,说明它越关注那个词。注意「它」会强烈地指向它真正指代的对象。

点击任意词试试
点上面句子里的任意一个词,看它把注意力分给了谁。试试点「它」。
图 4 · 自注意力:每个词向所有词分配权重,把相关的信息加权汇聚回自己身上
关键直觉:注意力让「苹果」这个词,在「我吃了一个苹果」里偏向水果,在「苹果发布新手机」里偏向公司——同一个词,被上下文改写成了不同的含义

05 QKV:注意力到底在算什么

上一张图的连线是怎么算出来的?靠三个角色:查询 Query键 Key值 Value。一个老掉牙但极好用的比喻——查资料。

🔎 Query 查询:我(这个词)想找什么? 🏷️ Key 键:每个词「我能提供什么」的标签 📦 Value 值:真正被搬运的信息内容

每个词都生成自己的 Q、K、V(由三个权重矩阵乘出来)。某个词的 Query 去和所有词的 Key 做点积——点积越大越「匹配」,匹配度经 softmax 变成权重,再用这些权重去加权所有词的 Value。下面把这个过程逐步拆开播放。

引导式 · 逐步
以「它」为例,看它如何用 Query 去匹配每个词的 Key,再取回 Value。
图 5 · 注意力 = softmax(Q·Kᵀ / √d) · V。匹配 → 归一化 → 加权取值

06 多头注意力:几十双眼睛,各看一处

一种关注还不够。一句话里,语法关系、指代关系、修饰关系……要同时捕捉。于是 Transformer 并排放很多个注意力,每个叫一个头(head),各自学会关注一种模式。

下面切换不同的「头」:同样一句话,不同的头连出的关注完全不同——有的盯着主谓,有的盯着形容词修饰谁。它们的结果最后被拼接、融合。

可切换 · 多个头
点不同的「头」,看每个头各自关注的是哪种关系。
图 6 · 多头注意力:并行的多组 Q/K/V,每个头捕捉一种不同的关系

07 堆叠与残差:为什么要叠几十层

一层注意力 + 一层前馈网络,组成一个「块」。Transformer 把这种块叠几十次。含义就像被一轮轮抛光:第一层也许只搞清楚语法,越往上越能整合出抽象、全局的意义。

关键在于每个块不是「重写」向量,而是在原向量上「加一笔修改」

输出 = 输入 + 这一层算出的改动量
那条「+输入」就是残差连接(图中绕过块的旁路)。它带来三件事: 某层没学到东西时,改动量≈0,信息原样穿过去,加层「最坏也无害」; 反向传播时梯度有一条不打折的高速路直达底层,避免深层「梯度消失」——这才是几十上百层能训得动的根本; 形成一条贯穿全网的「残差流」,像一条传送带,每层只往上面添信息。

加一层 看向量被逐层精炼;再点 关闭残差 对比——没有旁路时,每层都强行重写,信号会一层层糊掉、衰减,这就是深层网络「学不动」的样子。

可点击 · 残差开关
当前:0 层 · 残差:开
每加一层,向量都被「注意力 + 前馈」精炼一次,残差旁路保证信息不丢。试试关掉残差看对比。
图 7 · 残差开:信号稳定地层层精炼;残差关:信号逐层衰减/糊掉,深层学不动
全部串起来:词 → 嵌入成向量 → 叠上位置编码 → 经过几十个 (多头注意力 + 前馈 + 残差) 块层层精炼 → 取最后一个位置的向量 → 映射成全词表的概率 → 采样出下一个词。把这一步重复成千上万次,就是你在用的聊天机器人。

08 长上下文的代价:注意力为什么是「平方级」

一个常被问到的问题:上下文很长时,QKV 要把每个词都算一遍吗?要——而且这正是长上下文又慢又贵的根本原因。

生成 Q/K/V 本身很便宜:每个词各自乘三个矩阵,n 个词就是 n 次,线性增长。真正的开销在「两两匹配」:每个词的 Query 要和所有词的 Key 做点积(图 4 里那一束连线)。n 个词就是 n × n 个点积——这就是著名的 O(n²) 平方瓶颈。拖下面的滑块感受一下它涨得有多快:

拖滑块 · 实时
上下文长度
拖滑块加词:看「两两配对」的连线数按平方暴涨。再切到 KV 缓存模式看生成时怎么省。
图 8 · 全注意力:每个词连向所有词,配对数 = n²;KV 缓存:生成新词时只需它对全部历史,单步线性
两个缓和点:KV 缓存——逐词生成时,历史词的 K、V 算过一次就存起来复用,每生成一个新词只算这一个词的 Q 去比对全部历史,单步是线性的,代价转移到「显存要存住全部历史 K/V」。② 工程上有 FlashAttention、滑动窗口、稀疏注意力等办法绕开 n²。但原版 Transformer 就是老老实实每个词看每个词——这就是「超长上下文」最烧钱的地方。

再用三句话收个尾

  1. 注意力负责「词与词之间交换上下文」,前馈网络负责「在每个词内部做更深的加工」,两者交替。
  2. Transformer 真正的护城河是并行 + 可堆叠:整句同时算、层数随便加,所以能吃下海量数据、越做越大。
  3. 从 GPT 到 Claude 到几乎所有现代大模型,骨架都是它。理解了这一页,你就理解了这一代 AI 的地基。

内容改编自 Grant Sanderson(3Blue1Brown)《But what is a GPT?》与《Attention in transformers》。
所有动画为本页用 Canvas 实时绘制,仅作教学示意,数值经过简化。
← 返回 3Blue1Brown 合集 · 先看《大语言模型,简明解释》