土法炼钢兴趣小组的算法知识备份

【Transformer 与注意力机制】01|为什么要从这里开始

文章导航

分类入口
transformer
标签入口
#transformer#attention#llm#deep-learning#ai#intro

目录

很多读者第一次接触 Transformer 是在 2022 年底。那一年 ChatGPT 上线之后的几个月里,「大语言模型」这个词从研究圈漏到了普通人的日常话题里:写邮件、写代码、改简历、做客服、做翻译、做总结,几乎每一项都能被一个对话框接住。再往后两年,Stable Diffusion、Sora、Claude、Gemini、LLaMA、Qwen、DeepSeek 一个接一个出现,背后都站着同一个看起来不太复杂的架构:一沓 attention 块、几沓 MLP 块、外加位置编码和归一化。从某种角度看,过去十年 AI 工程的所有新东西,几乎都是在这个架构上做加法。

但只要你试着去搞懂它,第一道门就能挡住一大半人。打开《Attention Is All You Need》原文,从第三页开始就是 Q、K、V、softmax、scaled dot-product、multi-head、positional encoding、层归一化、残差连接,再加一堆没解释清楚就直接用上的张量形状。你查 attention 是什么,得到的回答里有「query 和 key 做内积」「相似度加权求和」「类似数据库查询」「就是加权平均」「来自 NLP 中的对齐机制」,每一个解释都说了一点,但没有任何一个回答让人觉得「我懂了」。再往下看 paper,关键的那句 \(\text{Attention}(Q,K,V)=\text{softmax}(QK^{\top}/\sqrt{d_k})V\) 就像一个咒语,每个符号你都认识,连起来不知道在说什么。

我自己第一次读这篇 paper 是在 2018 年,那时它还没有今天这样的地位。当时的我也卡在同一个地方。后来花了大概两年的时间断断续续地补线性代数、补概率、补 RNN、补优化,再回头一段一段重读,才慢慢看明白。这个过程里我反复体会到一件事:Transformer 本身不难,难的是写它的人默认你已经会了一堆别的东西。这套系列就是想把那「一堆别的东西」一起讲完,并且尽量按照一个真正没基础的读者的思考顺序往前走。

这一篇是序言,不会出现 attention 公式,不会讲 Q/K/V 是什么。它要回答四个问题:第一,为什么 Transformer 值得花这么大力气去搞懂;第二,这套系列是怎么编排的,每一部分各自解决什么问题;第三,不同背景的读者应该按什么顺序读;第四,读完之后你会、又仍然不会做什么。如果你看完这一篇还不确定要不要往下读,那一定是我没写好;如果你看完之后觉得「好,我愿意花两个月把这条线走一遍」,那这一篇就完成了它的任务。


一、Transformer 在这个时代的位置

1.1 它不是「又一个深度学习模型」

很多人对 Transformer 的第一印象是「2017 年 Google 提出的、用来做翻译的、后来被推广到别的任务上的一个神经网络」。这个描述每一句都没错,但它把 Transformer 摆在了「众多深度学习模型之一」的位置上。从 2017 年到今天的整整八年里,几乎没有任何其他单一架构在 NLP、视觉、语音、代码、生物、机器人、检索、推荐这么多互不相邻的领域里同时成为主力。卷积神经网络(CNN)做不到,循环神经网络(RNN)做不到,图神经网络(GNN)也做不到。Transformer 的特殊之处不在于它在某一个 benchmark 上比 RNN 高几个点,而在于它是过去几十年里第一个在「形式上跨领域统一」的神经网络架构。

换一个具体一点的说法:今天你在 ChatGPT 里输入一句中文,它内部跑的是 Transformer;你打开 Google Translate 切到英汉互译,跑的也是 Transformer;你用 Cursor 让它补全一段 Python,它背后的代码模型是 Transformer 的变体;你打开 Stable Diffusion 生成一张图,里面那个负责把文字描述转成视觉特征的「文本编码器」是 Transformer,扩散过程里那个去噪网络在最近两年也越来越多地是 Transformer(DiT、SD3、FLUX 都是);你用 Sora 或者可灵生成一段视频,里面的核心生成器仍然是 Transformer;你用 Whisper 做语音识别,跑的是 encoder-decoder Transformer;你用 AlphaFold 做蛋白质结构预测,里面的 Evoformer 是 Transformer 的一个变体;你看一份推荐系统的最新工业实现,从 Meta 到字节都在把推荐塔从传统的「双塔 + DNN」迁移到 Transformer 序列建模。这种横跨度在 2017 年是任何人都不敢预测的。

更值得注意的是,Transformer 不只是「在新任务上效果更好」,它还把工程上的协作方式改了。在 Transformer 之前,做翻译的同学训练翻译模型,做图像分类的训练分类模型,做语音识别的训练语音模型,每个领域有自己的预处理、特征工程、骨干网络、损失函数,团队之间几乎不共享代码。Transformer 之后,行业默认的工作方式变成了「先训一个大的、能干很多事的基础模型(foundation model),再在上面做微调或 prompt」。换句话说,Transformer 把 AI 工程从「为每个任务写一个模型」变成了「为人类语言、图像、声音写一个底层引擎」。这不是一个模型的胜利,是一种工程范式的胜利。

1.2 不是因为它「最聪明」,而是因为它「最适合规模」

这里有个常被忽略的事实:Transformer 之所以赢,并不是因为它在小数据小模型上比 RNN 或 CNN 显著聪明。事实上 2017 年它刚出来的时候,在很多任务上的表现只是和当时最好的 RNN 持平甚至略差。它真正的优势要等到 2019 年 GPT-2、2020 年 GPT-3、2022 年 ChatGPT 才彻底显现。换句话说,Transformer 的胜利是「规模放大之后」的胜利,而不是「天生聪明」的胜利。

为什么是 Transformer 适合规模?这件事会在第三部分(《Attention Is All You Need》逐段精读)和第四部分(训练范式与 Scaling Laws)反复回到。这里只提三个最关键的工程性原因,每一个后面都会有专门的章节展开:

第一是并行性。RNN 处理一个长度为 \(n\) 的序列时,必须从第一个 token 算到最后一个 token,每一步都依赖上一步的隐状态,没有办法把整个序列的计算同时铺到 GPU 上。Transformer 的注意力机制把同样的事变成了一个矩阵乘法 \(QK^{\top}\),整个序列里所有位置之间的关系一次性算出来。这看起来只是「换了一种算法」,但它意味着你拿 1024 张 GPU 去训练时,Transformer 可以把这些 GPU 真正喂饱,RNN 不行。一旦工程上能把卡用满,模型规模和数据规模就可以一起涨。

第二是对长距离依赖的友好。RNN 把信息一格一格往后传,越往后越淡,再加上梯度的乘积特性,传到第 50 步左右基本就忘了第 1 步说了什么。LSTM 与 GRU 在这件事上做了一些缓解,但本质上都是「靠门控让信息少损失一点」,没有从根上解决。Transformer 的注意力让任何位置都可以「直接看」任何其他位置,距离不再带来信号衰减。这件事看起来只是省了几次梯度乘积,但实际效果是它把「一个段落里相隔 200 个词的两个名词指代同一个对象」这样的事情变成了模型能学的,而 RNN 做不到。

第三是架构的「可堆叠性」与「可放大性」。Transformer 一开始就被设计成「一层叠一层」的形式,每一层结构完全相同,只是参数不一样。残差连接(residual connection)和 LayerNorm 的引入,让你即便堆 96 层、堆 200 层也能稳定训练。RNN 也可以堆,但堆深之后梯度问题、状态稀释、并行性都会一起恶化。CNN 可以堆,ResNet 是这条路上的代表作,但卷积带的「局部性」假设在自然语言上显得不自然——一个词的语义不只受它周围 3 个词影响。Transformer 的「全连接 attention + 全连接 FFN」对深度堆叠几乎没有上限,工程师只要肯出 GPU、出数据、出时间就能继续推大。

这三件事合起来,让 Transformer 在「越堆越大、越练越久」这条路上几乎一骑绝尘。后来 OpenAI、DeepMind、Anthropic 这些机构发现,「只要数据够、参数够、算力够,模型在很多人类任务上的表现可以平滑地、可预测地提升」,并由此提出 Scaling Laws。这件事本身依赖于「架构允许你这样放大」,而 Transformer 恰好是这样的架构。

1.3 不要被「Transformer 即将被替代」吓到

写到这里有必要提一句:在 2024 到 2026 年这段时间,确实出现了 Mamba、RWKV、RetNet 这一类宣称「线性复杂度替代 Transformer」的新架构。每过几个月就会冒出一篇「Transformer is dead」的博客。如果你刚开始学,看到这种标题很容易动摇:花两个月学一个「即将被替代」的东西值得吗?

我的回答是:第一,这些新架构里没有一个真正在大规模上「全面替代」了 Transformer,目前所有的旗舰 LLM(GPT-4 系列、Claude 3.5/3.7、Gemini 1.5/2、LLaMA 3、Qwen2.5、DeepSeek-V3)的核心都还是 Transformer 或 Transformer 的混合体(hybrid);第二,更重要的,这些新架构里的每一个,要理解它解决了什么问题,前提都是先理解 Transformer。Mamba 的关键论点是「我们能不能用状态空间模型(SSM)做到 Transformer 的效果但没有 \(O(n^2)\)」——你不知道 \(O(n^2)\) 出在哪里,就读不懂这个论点。RWKV 的关键论点是「线性 attention + 类 RNN 重写」,你不知道 attention 长什么样,就读不懂它在重写什么。所以即便从「读懂未来」的角度,Transformer 也是必经的台阶。


二、为什么这套系列从数学讲起

2.1 大多数中文 Transformer 资料的两种失败模式

这几年中文社区里讲 Transformer 的资料不少,但绝大多数都掉进了两种极端中的一种。

第一种是「直接讲架构图」。打开就是一张 Transformer 的经典结构图:左边 encoder、右边 decoder、中间一堆箭头,然后从下到上把每一个块的名字念一遍:input embedding、positional encoding、multi-head attention、add & norm、feed forward、再 add & norm、再到下一层。每一个块讲两三句,公式直接搬过来不解释,最后用「于是模型就学会了」收尾。这种写法的问题不是错,而是「每一句话都对,但读完之后你还是不知道任何一件具体的事是怎么发生的」。它假设读者已经知道线性变换是什么、softmax 是什么、为什么要加 \(\sqrt{d_k}\)、为什么要做多头、为什么要残差。这些假设里只要有一个不成立,读者就会从那个地方开始全程脱节。

第二种是「直接调 API」。打开就是「我们用 PyTorch 写一个简单的 attention:先定义 \(W_Q\)\(W_K\)\(W_V\),然后做矩阵乘法,最后过 softmax」,配一段 30 行代码,跑起来训练一个小玩具任务,loss 下降了,宣布「你已经掌握 Transformer 了」。这种写法的问题在于,它把「会调」当成了「理解」。读完这种教程的人,可以在自己的项目里复制一段 attention 代码,但只要数据稍微变一变、维度稍微对不上、loss 不下降,他就立刻不知道该改哪里。因为他从来没有被迫去想「这条公式为什么长这个样子」。

这套系列拒绝这两种极端。我们走的是第三条路:先把每一个数学组件单独讲明白,再把它们装回到 Transformer 里。这条路前期慢,因为你要花前几篇时间讲向量、点积、矩阵乘法、概率、梯度——这些东西放在「Transformer 教程」里看似离题,但只要这一层基础不打牢,后面 attention 的每一步推导都会变成天书。前期慢,后期才能快。

2.2 「数学直觉」不等于「数学严密」

这里要明确一件事:本系列的数学不是「严密的」数学,是「足够支持你理解后面工程论证」的数学。我们不会证明任何定理(除非那条定理直接服务于某个工程结论),不会做泛函分析,不会引入测度论或者优化理论里的复杂内容。我们会做的事是:

这种写法的目标读者是「数学不熟、但愿意花时间动笔的人」。如果你高中数学没忘光,这套系列能让你看懂全部内容。如果你是数学系出身,可能会觉得前几篇过于啰嗦——你可以跳过 01–08 直接从 09 或 11 开始。

2.3 为什么不直接从「注意力」讲起

读者会问:既然系列叫「Transformer 与注意力机制」,为什么前八篇一句 attention 都不提?

因为「注意力」这个名字本身误导性极强。它来自 2014 年 Bahdanau 等人在做机器翻译时的一篇论文,那个上下文里 attention 是为了解决一个非常具体的问题:当输入句子很长时,encoder 的最后一个隐状态没办法把所有信息压进去,所以 decoder 在生成每一个词时应该「回头看一眼」原句的不同部分。在那个语境下,「注意力」的命名是合理的,因为它确实模仿了人类阅读时的视觉行为。但当 Transformer 把同样的机制推广到「序列内部的每一个位置之间」时,「注意力」这个名字就变得抽象——你很难再说一个词「在注意」另一个词。

真正发生的事情,剥到最底,是这样三件:

  1. 把每一个 token 用一个向量表示;
  2. 用「点积」衡量任意两个向量之间的相关性;
  3. 把所有相关性归一化成权重,对值向量做加权求和。

这三件事里,每一件都是高中数学水平就能完全理解的。「注意力」之所以让人觉得神秘,是因为读者不熟悉前两件事。你只要把「向量」「点积」「加权求和」这三个东西熟练到不需要任何思考的程度,回头看 attention 公式,就只剩一个工程问题:怎么把这三件事写成 GPU 友好的矩阵乘法。

所以前八篇的策略是:先把这三件事和它们的延伸(矩阵乘法、softmax、概率分布、梯度)打到能「肌肉记忆」的程度。等你看到 attention 公式时,每一个符号都不再是新东西。


三、这套系列的结构

整个系列共 58 篇,分八部分。

系列结构总图

下面把每一部分的「目的」和「学完之后你能干什么」讲清楚。

3.1 第一部分(01–08):数学与神经网络基础

这是你正在读的部分。它的目的是让一个没有任何深度学习背景的读者,能够在不查资料的情况下读懂第二部分的注意力公式。具体来说:

读完这八篇,你不会成为算法工程师,但你会有一个牢固的、可以挂载新概念的脑内框架。后面再读 attention 时,你会发现「噢这就是 03 篇里那个矩阵乘法 + 06 篇里那个 softmax + 02 篇里那个点积」。

3.2 第二部分(09–18):从 RNN 到注意力

这部分讲清楚 Transformer 之前的世界长什么样、为什么不够好,以及注意力机制是怎么一步步从「朴素相似度加权」推到 multi-head self-attention 的。

读完这一部分,你能在脑子里独立推导出 attention 公式,并能向一个完全不懂的人讲清楚每一步的动机。

3.3 第三部分(19–28):《Attention Is All You Need》逐段精读

这是整个系列里最「学术」的一部分。我们把 Vaswani 等人在 2017 年发表的原论文从摘要到结论一段一段读下来,每一段都对应到第二部分讲过的某个概念上。这一部分的读法是「论文 + 我的注释」交替进行,读完你会真切地理解一篇影响最大的论文是怎么写的、哪些设计后来被证实是关键、哪些设计后来被替代。

3.4 第四部分(29–36):训练范式

光有架构不够,模型怎么从「会算矩阵」变成「会聊天」需要训练范式。

3.5 第五部分(37–47):模型变体

同一个 Transformer 骨架,在不同方向上分叉出来:

3.6 第六部分(48–51):推理工程

模型训好之后,怎么把它跑起来:

这部分会和 llm-infra 系列有一些重叠,原则是:本系列讲原理,工程细节引用 llm-infra。

3.7 第七部分(52–54):可解释性

打开盒子看里面:

3.8 第八部分(55–58):反思与未来


四、谁该读这套系列,谁不该读

4.1 适合的读者

完全入门、但愿意花时间动笔的读者。这套系列是为你写的。前八篇有意写得啰嗦,目的是让你不要在第一个公式上掉队。每一节里出现的所有数学,都不会超过高中线性代数和高中函数的范畴。你需要的不是更多预备知识,是「愿意拿出一张草稿纸,把例子里的数算一遍」的耐心。

算法工程师转 NLP / LLM 方向。如果你已经熟悉传统机器学习(树模型、线性模型)但没系统接触过深度学习,这套系列会比一般 NLP 教科书更直接:我们不花太多篇幅讲 word2vec、GloVe、HMM、CRF 这些前 Transformer 时代的方法,因为它们对今天的工作影响已经很小。你应该从 04 篇开始,前三篇可以快速扫过。

研究者。如果你在读 paper、做实验,需要一个把「论文里默认的概念」全部串起来的参考,这套系列后半段(19–28、34–36、55–58)会比博客碎片更系统。但请注意,本系列不追最前沿的预印本,你不会在这里看到上周刚出的 arxiv 论文的解读。我们追的是「已经被证实关键、值得长期记住」的工作。

工程师做推理优化。如果你的工作是把别人训好的模型跑得更快、更省、更稳,应该走「20 → 22 → 26 → 41 → 42 → 48 → 49 → 50」这条路径,并配合 llm-infra 系列。本系列会把你需要的「为什么 KV Cache 有效」「为什么 FlashAttention 快」的原理讲清楚,工程实现细节看 llm-infra。

多模态方向。20 → 38 → 45 → 46 → 47。Transformer 在多模态里的胜利不是偶然,它的「序列建模」抽象天然适合「把任何东西都切成 token」。

关心 AI 未来的非技术读者。如果你是产品经理、做 AI 产品落地、写 AI 相关战略报告,可以读 01 → 11 → 13 → 20 → 38 → 55。这条路径不强求你看公式,但能让你对「什么是有可能的、什么是吹牛、未来三年值得押注的方向」有自己的判断。

4.2 不适合的读者

只想要「ChatGPT prompt 技巧」的读者。这套系列不是 prompt engineering 教程。我们关心的是模型内部发生了什么,不是怎么让它配合输出一个更好的答案。两种知识没有冲突,但取向不一样。

只想三天速成的读者。这套系列写完一遍要两个月以上。如果你只想花一个周末搞懂 Transformer,那市面上有很多「30 分钟讲清 Transformer」的视频和博客,那种内容能给你一个粗略的形象,但不会让你具备独立读 paper 的能力。

追最新论文的读者。本系列默认的论文截止时间是 2025 年底。再往后的预印本可能会以补遗的形式更新,但不构成主线。如果你在做最前沿研究,本系列的角色是「补基础」,不是「跟前沿」。

完全不愿意动笔的读者。如果你看到一个例子说「假设 \(a = [1, 0]\)\(b = [0.7, 0.7]\),请算 \(a \cdot b\)」,但你不愿意在纸上把它算出来,那这套系列对你没什么用。读数学和读小说不一样,眼睛过一遍不等于过脑子,能不能读懂取决于你是不是真的在动手。


五、读完之后你能做什么、不能做什么

5.1 读完之后你能做的事

独立读懂主流 LLM 论文。从 Attention Is All You Need 开始,到 GPT-1、2、3,到 BERT、T5、LLaMA、PaLM、Chinchilla、InstructGPT、DPO、LoRA、QLoRA、FlashAttention、Mamba、DeepSeek 系列、LLaMA 系列,本系列覆盖的是这条主线上的核心概念。读完 28 篇之后,你应该能拿起一篇没读过的 LLM 论文,在不查任何术语词典的前提下读懂 80% 的内容,不懂的 20% 也能定位到「它在前置知识的哪一部分」。

判断别人的 AI 报告里哪些话靠谱、哪些是吹牛。新闻里反复出现的「参数量」「上下文长度」「推理速度」「准确率」「幻觉」「对齐」「涌现能力」「思维链」这些词,你能说清楚它们的来源、定义、边界、可被滥用的方式。比如「参数量更大就一定更聪明」是错的,「长上下文就一定能记住整本书」是错的,「思维链是模型自动发明的推理能力」是过度解读。

自己写一个最小可用的 Transformer。在第三部分末尾(28 篇之后)你会有一个能跑通的 nanoGPT 级别的实现。它不能上生产,但它的每一行你都能解释为什么这样写、改成别的会怎样。

理解推理工程里 80% 的优化原理。KV Cache 为什么可以省一半算力、FlashAttention 为什么可以省内存、量化为什么可以四倍加速、投机解码为什么可以三倍提速——读完第六部分你都能讲明白。具体的 CUDA kernel 实现是 llm-infra 系列的事。

对「Transformer 之后是什么」有自己的判断。你不会人云亦云地说「Mamba 取代了 Transformer」,也不会说「Transformer 是终极架构」。你会知道目前所有的「替代品」各自做了什么权衡、在什么场景下确实更好、在什么场景下还差距明显。

5.2 读完之后你仍然不能做的事

我必须诚实地说,不是

把上面两份清单合在一起看:这套系列要做的事是「把 Transformer 这棵树的主干和粗枝长清楚」,叶子上的细节得你自己去补。


六、与 llm-infra 系列的边界

我维护了另一个系列叫 llm-infra,专讲「把 LLM 跑起来」的工程。两个系列在中后段会出现一些重叠,原则是:

主题 本系列(Transformer) llm-infra
KV Cache 讲为什么有效、为什么节省、对 attention 公式做了什么改写 讲在 vLLM / TensorRT-LLM / SGLang 里怎么实现、PagedAttention 内存布局
FlashAttention 讲它绕开了 \(O(n^2)\) 内存的什么问题、tile 化为什么有效 讲 CUDA kernel、warp 调度、不同 GPU 上的实测
量化 讲为什么 INT4 不会让模型崩、GPTQ/AWQ 的核心思路 讲怎么部署量化模型、kernel 兼容性、实际加速比
训练并行 不讲 讲 DP/TP/PP/SP/EP 几种并行策略
推理服务化 不讲 讲连续批处理、调度器、prefix cache
注意力的数学 讲全 不讲
Scaling Laws 不讲
模型变体 讲全 只在工程相关的地方提一下

如果你的目标是「读懂模型、自己做研究」,主要看本系列;如果你的目标是「把模型部署到生产环境」,本系列只是基础,主战场在 llm-infra。


七、阅读这套系列的几条建议

最后给几条非常具体的建议,是我自己读这一类材料时积累的经验。

第一,不要跳。 系列的编排顺序经过了仔细考虑,前一篇是后一篇的前置。如果你跳过了某一篇,后面看到一个看似简单的术语(「内积」「softmax」「梯度」)卡住,你不会意识到是因为自己跳了,会归因于「我数学不行」。

第二,遇到公式动手算。 每一篇里给的小例子都是设计成两分钟内能算完的。不要看一眼觉得「我大概懂了」就过。算一遍和不算一遍的区别比你想象的大。

第三,保留你的疑问。 阅读过程中你会有「为什么不这样做」「这一步是不是可以省掉」之类的问题,把它们记下来。十有八九这些问题在后面的某一篇会被回答,没回答的问题你可以单独研究——这是从「读者」走向「研究者」的关键一步。

第四,不要被 paper 吓到。 第三部分会带你逐段读 Attention Is All You Need,那是为了让你建立「我读得懂论文」的自信。论文不是写给天才看的,它就是一种工程文档,按照特定模板写而已。

第五,做笔记。 这套系列的篇幅决定了你不可能记住所有细节。在你自己的笔记里把每一篇的「核心问题」「核心结论」「我自己的理解」写下来。等你读到第 28 篇时,回头扫自己写的 1–28 篇笔记,你会发现一条非常清楚的脉络。

第六,允许自己慢。 我自己第一次读懂 attention 公式花了大概一个月。第一次能从零写出 nanoGPT 花了大概三个月。不要看到「30 分钟搞懂 Transformer」之类的标题就焦虑。理解是渐进的,不是顿悟的。


八、一段历史:注意力机制的来路

写这套系列的过程中,我反复体会到一件事:理解一个工程对象,最快的方式之一是看它的来路。任何一个今天看起来「天经地义」的设计,在它被提出来的那一刻几乎都是反常识的。Transformer 的注意力机制不是凭空出现的,它是一系列具体技术问题的解。把这条解的路线讲清楚,比直接讲它现在长什么样要更容易理解。这一节先做一个粗描,把整个时间线串起来,后面对应的篇章会展开每一段。

故事大致从 2010 年代前半段说起。在 2014 年之前,机器翻译的主流是「统计机器翻译(Statistical Machine Translation, SMT)」,工程上由短语对齐表、语言模型、再加一组人工设计的特征拼起来,是一个庞大的、零件多、调参复杂的系统。Google Translate 在那个时代是这种统计系统的代表作。它的效果在英法、英德这种数据丰富的语言对上勉强可用,但任何一个用过 2014 年 Google Translate 的人都记得那种「能猜出大意但语法离谱」的体验。

2014 年是一个关键的转折点。Sutskever 等人在 NeurIPS 上发表了 Sequence to Sequence Learning with Neural Networks,提出用一个循环神经网络(RNN)把源语言句子读成一个固定长度的向量,再用另一个 RNN 从这个向量解码出目标语言。这个想法极其干净:所有翻译过程压成一次「编码—解码」。但它有一个非常致命的问题:源句子越长,那个固定长度的向量就越要把太多信息塞在一起,效果越差。当时的实验里,句子长度过 30 词,BLEU 就开始明显掉。

同一年的 Bahdanau、Cho、Bengio 三人在做同一件事时意识到:与其让编码器把所有信息压成一个向量,不如让解码器在生成每一个目标词时「回头看一眼」原句的不同部分。具体的做法是:编码器为原句的每一个词都保留一个隐状态向量,解码器在生成第 \(t\) 个目标词时,对所有编码器状态做一次加权求和,权重由「当前 decoder 状态和每一个 encoder 状态的相似度」给出。这个加权机制就是「注意力」一词第一次出现的地方。这篇文章是 2015 ICLR 的 Neural Machine Translation by Jointly Learning to Align and Translate。从工程效果上,它一举把长句翻译的问题缓解了大半,BLEU 提升明显。

2015 到 2017 年之间,注意力机制变成了 NLP 领域的「标配组件」。在文档分类、问答、摘要等任务上,研究者们发现给 RNN 加上注意力几乎总是能涨点。但有一个问题始终没解决:注意力是加在 RNN 之上的,所以底层那个 RNN 仍然要按时间步顺序跑,并行性还是上不去;同时,attention 的引入让 RNN 在长程依赖上的劣势相对地变得没那么致命,于是有人开始问:既然注意力本身就能让任意两个位置直接连起来,我们为什么还要 RNN?

这个问题在 2017 年被 Vaswani 等人正面回答了。他们的论文标题就叫 Attention Is All You Need——「光靠注意力就够了」。他们做的事是:完全去掉 RNN 和 CNN,只保留 attention 和前馈网络(feed-forward network),加上残差连接和 LayerNorm 让深堆稳定,加上正弦余弦位置编码弥补「不再有时序」带来的位置信息缺失。这个架构在英德、英法翻译任务上不仅效果更好,训练速度还快了一个数量级,因为整个序列可以并行计算。

paper 在 2017 年 6 月放上 arxiv 时,圈子里反应并没有特别夸张。NeurIPS 接收,给了 oral,但当时没人觉得这是一篇会改变历史的论文。真正的引爆要等到一年以后。2018 年 6 月,OpenAI 发表了 Improving Language Understanding by Generative Pre-Training,也就是后来被称为 GPT-1 的工作。它的核心思想是把 Transformer decoder 单独拿出来,用海量无标注文本预训练一个「下一个词预测」模型,再在下游任务上微调。同年 10 月,Google 发表了 BERT,把 Transformer encoder 拿出来用「掩码词预测」预训练,在 11 个 NLP 任务上同时刷榜。至此 Transformer 才从「翻译用的小工具」变成了 NLP 领域无人不知的事情

2019 年 2 月 GPT-2 发布,参数量 15 亿,OpenAI 发了一个长文宣称模型「太危险」暂不全量开源,引发了一波关注(事后大家觉得这个营销有点过)。2020 年 5 月 GPT-3 发布,参数量 1750 亿,第一次让人看到「在大规模上 Transformer 能做出非常多 emergent 的事」——它能写代码、能做翻译、能仿写风格、能在没见过的任务上 few-shot。这是 Transformer 第一次让圈外人感到震撼的时刻。

2022 年 11 月 ChatGPT 发布。这件事的工程内核没有 GPT-3 那么夸张——它本质上是 GPT-3.5 加上 SFT 加上 RLHF 加上一个对话界面。但它的产品形态彻底改变了公众感知。两个月一亿月活,是当时所有消费应用里增长最快的。从这一刻起,「Transformer」不再是一个 NLP 圈的术语,它进入了主流话语。

2023 到 2025 年,故事变得很拥挤:GPT-4、Claude 1/2/3、Gemini 1/1.5/2、LLaMA 1/2/3、Mistral、Mixtral、Qwen 系列、DeepSeek 系列、Llama 3、Llama 4、长上下文模型、多模态模型、Agent、推理优化、对齐研究、可解释性研究——所有这些都建立在 Transformer 这个底座上。后续四个部分(变体、训练、推理、解释)讨论的就是这条繁茂时间线里的具体片段。

把这条时间线放在第一篇,是想让你带着这样的感觉进入后面的章节:Transformer 不是一个突然冒出来的天才架构,它是一系列具体问题(翻译里的固定向量瓶颈 → 长程依赖 → 并行性 → 规模化)被一个又一个解决之后的自然产物。每一个看起来抽象的设计,都对应一个非常具体的工程痛点。后面我们读 paper 时,会反复回到这件事:任何一个细节都不要孤立地理解,要放回它出现时的工程语境


九、一个产品级的例子:当你在 ChatGPT 里输入一句话

为了让上面所有抽象描述落地,举一个我每次给入门读者讲解时都会用的具体例子:当你在 ChatGPT 的对话框里输入「帮我写一首关于秋天的五言绝句」并按回车之后,到屏幕上开始一个字一个字蹦出诗的过程中,发生了什么。这一节会把这个过程从头到尾走一遍,每一步对应到本系列后面哪一篇会展开。

第一步,分词(tokenization)。你输入的中文字符串首先被切成一串「token」。注意 token 不一定等于汉字。OpenAI 用的 tiktoken 分词器对中文的处理大致是「1 个汉字对应 1 到 2 个 token」,对英文是「1 个常见词对应 1 个 token,长词或罕见词被切成多个」。你的输入「帮我写一首关于秋天的五言绝句」可能被切成 14 到 20 个 token。这一步有它自己的论文与工程史,从 BPE(Byte Pair Encoding)到 SentencePiece 再到现代的 tiktoken。本系列在 29 预训练 篇会展开。

第二步,词嵌入(embedding)。每一个 token 被映射成一个高维向量,比如对 GPT-3 来说是 12288 维。这个映射来自一张超大的查表(embedding matrix),它是在预训练里学出来的。两个语义相近的 token 在这个 12288 维空间里的方向接近,两个不相关的 token 几乎正交。这件事就是为什么 02 向量与点积 是这套系列的第二篇——你必须先理解「向量的方向编码语义」这件事。

第三步,加位置编码(positional encoding)。Transformer 本身对「token 出现在第几位」是无感的,必须靠位置编码把位置信息注入进去。原始 Transformer 用的是正弦余弦位置编码,现代 LLM(LLaMA、Qwen 等)大都用 RoPE(Rotary Position Embedding)。这部分在 25 位置编码40 LLaMA 里展开。

第四步,前向传播(forward pass)。这一串带位置信息的向量进入 Transformer 的第一层。在每一层里,它会经过两个核心子层:自注意力(self-attention)和前馈网络(feed-forward network)。自注意力子层做的事是:对每一个位置的向量,让它「看一眼」整个序列里所有其他位置,根据相似度加权聚合信息,输出一个被「上下文化」过的新向量。前馈子层做的事是:对每一个位置的向量独立地做一次非线性变换,把它「想一想」之后再传出去。这两个子层之间有残差连接和 LayerNorm 保证稳定。GPT-4 大概有 80 到 120 层(确切数字 OpenAI 没公开),每一层都把上一层的输出当输入,反复抽象。这部分是本系列第二、三部分的核心。

第五步,输出层与采样(output and sampling)。最后一层的输出是每一个位置的一个 12288 维向量。要预测「下一个 token」,模型会把最后一个位置的向量乘以一个「输出矩阵」(通常和输入 embedding 矩阵共享或近似共享,叫 weight tying),得到一个长度等于词表大小(GPT 系列约 50K 到 100K)的向量。这个向量叫 logits。把它过一次 softmax 就得到一个「下一个 token 是什么」的概率分布。然后我们从这个分布里采样一个 token,可以是贪心(top-1)、随机(按概率)、温度采样、top-k、top-p 等多种策略。这部分在 06 Softmax48 推理过程 里展开。

第六步,自回归循环(autoregressive loop)。把刚刚采样出来的 token 加到原序列尾部,整个流程从第二步开始重做一遍——再算 embedding、再加位置、再过一遍所有 Transformer 层、再输出 logits、再 softmax、再 sample。这就是为什么 ChatGPT 是一个字一个字往外蹦的:模型从架构上就是「一次只产一个 token,下一个 token 依赖前面所有的 token」。如果不优化,这个循环每一步都要把整个序列从头算一遍,复杂度高到爆炸。所以工程上有 KV Cache:把每一层每一个位置的 K 和 V 存起来,下一步只算新位置的 Q 然后查老的 K/V。KV Cache 是推理工程的第一根支柱,49 KV Cache 会单独写一篇。

第七步,停止判断。模型在某一步采样出一个特殊的「end of sequence」token,或者达到设定的最大长度,循环停止。整个回答完成。

把这七步合起来看,整个 ChatGPT 一次回答的执行过程,就是「一次又一次的矩阵乘法 + softmax + 采样」。其中绝大部分时间花在矩阵乘法上,所以 GPU 友好。整个回答的「智能」不是来自任何一步本身——每一步都是非常机械的数学操作——而是来自 「这个海量参数已经在万亿 token 的预训练里学会了把上下文映射成下一个 token 的概率分布」 这件事。读懂 Transformer 的真正目标,是搞清楚「这种学习是怎么发生的、为什么能发生、为什么这样设计就有效」。

如果你看完这一节有「噢原来是这样」的感觉,那你已经准备好读下一篇了。如果还觉得「我还不知道点积是什么意思」,那是预期的——这就是为什么我们要从第二篇正经讲起。


十、术语表:在你正式上路前

下面这张表把这套系列前半部分会反复出现的核心术语集中列一下。每一个术语在它对应的篇章里会被详细解释,这里只给一行直觉解释,让你在读到时不至于完全陌生。如果你对其中某个术语已经熟到能给别人讲清楚,对应的篇章就可以略读。

术语 一行直觉 详见
向量(vector) 一串实数,可以理解为高维空间里的一个箭头 02
点积(dot product) 两个向量按位相乘再相加,几何上正比于「方向接近度」 02
矩阵乘法(matmul) 一次性算很多个点积;行向量 × 列向量的二维拼盘 03
张量(tensor) 多维数组的统称;标量 0 维、向量 1 维、矩阵 2 维、再往上 03
神经网络(neural network) 「线性变换 + 非线性激活」反复堆叠形成的可调函数 04
激活函数(activation) 在线性层之间加的「弯曲」操作,让深度真的有用 05
参数(parameter) 神经网络里可以调整的所有数(W 和 b)的总称 04
Softmax 把任意实数向量归一化成概率分布的常用操作 06
概率分布(probability distribution) 每个事件的概率组成的向量,和为 1 06
交叉熵(cross entropy) 衡量「预测分布」和「真实分布」差距的常用损失 07
梯度(gradient) 多元函数对每个参数的偏导组成的向量,告诉你怎么改参数能让 loss 变小 08
反向传播(backprop) 用链式法则从输出层往输入层逐层算梯度的过程 08
token 模型处理的最小单位;不是字、不是词,是分词器切出来的片段 29
嵌入(embedding) 把离散的 token 映射成稠密向量的查表操作 11
注意力(attention) 「相似度加权聚合」的代名词;本系列核心 11–18
自注意力(self-attention) 一个序列里每个位置看同一个序列里所有其他位置 15
交叉注意力(cross-attention) 一个序列看另一个序列 15
多头(multi-head) 把 attention 在通道上分成多组并行做 16
Q/K/V Query / Key / Value,注意力机制的三个投影矩阵 12
残差连接(residual) \(y = x + f(x)\) 的写法,缓解深网络梯度问题 24
LayerNorm / RMSNorm 对每个位置的向量做归一化,稳定深网络训练 24
位置编码(positional encoding) 给 attention 注入「第几个位置」信息的机制 25
FFN(feed-forward network) Transformer 每一层里 attention 之后的两层 MLP 23
KV Cache 推理时缓存历史 K 与 V,避免重复计算 49
logits softmax 之前的原始得分向量 06
自回归(autoregressive) 从左到右一个一个生成 token 30
预训练(pretraining) 在海量无标注数据上做下一个 token 预测 29
微调(fine-tuning) 在小规模有标签数据上继续训,让模型对齐到具体任务 31
对齐(alignment) 让模型的回答符合人类偏好与安全规范 32–33
Scaling Laws 关于参数、数据、算力之间最优配比的经验律 34

这张表你不必现在背,只需知道它在哪。等读到具体篇章时回来对照一遍,会更清楚每个术语在系列里的位置。


十一、常见疑问 FAQ

下面是过去几年我反复被问到的一些问题,一并整理在这里。每一条不是简单回答,而是把背后的判断展开讲清楚。

11.1 「我数学很差,我是不是注定学不会?」

不是。这套系列前八篇的设计就是给「数学很差但愿意动笔」的读者写的。所谓「数学很差」分两种情况:一种是「高中数学忘了」,这种 90% 的人通过本系列前八篇都能补回来;另一种是「我看到任何数学符号都焦虑」,这种是心理问题不是知识问题,建议先调整心态再说。

要明确的是,本系列里出现的数学不超过这几类:向量加减、内积、矩阵乘法、函数(包括指数、对数)、求和符号、softmax、简单的概率(条件概率、独立性)、链式法则。这些每一项都属于高中或大学一年级范畴。不会出现:测度论、泛函分析、随机过程、微分几何。如果将来某一篇里我用到了上面没列出的内容,我会提前打招呼。

11.2 「我已经会写 PyTorch 了,前面的数学还要看吗?」

会写 PyTorch 不等于理解原理。我见过非常多能写 nn.MultiheadAttention(...) 但说不清「为什么是 multihead」「为什么除以 sqrt(d)」「为什么有 mask」的工程师。这套系列的目标受众里包括这种人。如果你确实对线性代数和概率非常熟,前面 03、06 你可以快速扫,但建议至少把 02、05、07、08 完整读一遍——这几篇有「直觉性」的内容,是你写代码时不会主动接触的。

11.3 「我想做 LLM 研究,这套系列够用吗?」

不够。研究需要的不是「会读原理」,是「会做实验、会读代码、会写论文」。这套系列能给你前一项,后两项需要你在自己的方向上反复练。但话说回来,如果连第一项都不扎实,后两项做起来会非常痛苦。所以这套系列对你的角色是「打地基」,不是「替代研究训练」。

11.4 「我只关心 prompt 工程,要不要读?」

如果你做 prompt 工程做到 6 个月以上,开始遇到「为什么这个 prompt 在 GPT-4 上有效,在 Claude 上完全失效」「为什么模型在长上下文里突然失忆」「为什么思维链有时候反而让效果变差」这一类问题,那你已经触到了「需要理解模型内部」的门槛。这种时候本系列的中后段(特别是 13、20、46、48)非常有用。如果你只是想知道「哪些 prompt 模板效果好」,本系列对你太重了。

11.5 「读完之后能进大厂吗?」

读完本系列对面试的帮助主要体现在「能把 attention 公式从头推一遍」「能讲清楚 BERT 和 GPT 的区别」「能讨论 RLHF 和 DPO 的差异」「能解释 KV Cache 为什么有效」。这些题目在 AI 算法岗的面试里出现频率很高,能讲清楚通常会被认为基础扎实。但「能进大厂」这件事还要叠加项目经验、刷题、运气等很多别的因素。本系列在面试里的角色是「让你不至于在基础题上掉链子」,不是「让你拿到 offer」。

11.6 「中文资料和英文资料有差别吗?」

有,但差别在缩小。十年前要学深度学习,英文资料质量碾压中文;今天差距已经小很多——中文社区里有非常多优秀的从业者写出了高质量的内容(包括但不限于 Hugging Face 中文社区、苏剑林的科学空间、机器之心的论文解读、Karpathy 视频的中文搬运)。本系列努力做到「在中文里也能找到一份足够深入的 Transformer 教程」。如果你英文 OK,可以同时读 Karpathy、Lilian Weng、Jay Alammar 的英文内容互为补充。

11.7 「Transformer 我已经懂了,能不能只看后面的篇?」

如果你能在不查任何资料的前提下: - 写出 scaled dot-product attention 的公式并解释每一项; - 解释 multi-head 为什么不是「一个大头」; - 解释 BERT 和 GPT 在训练目标上的本质区别; - 解释残差连接和 LayerNorm 各自解决什么问题; - 解释 KV Cache 为什么能省一半算力,

那你可以从第四部分(29 篇)开始。如果上面任何一条让你犹豫,建议从第二部分(11 篇)开始补。

11.8 「这套系列写完之后还会更新吗?」

会。Transformer 这条线的研究没有结束。系列的「主干」一旦完成会保持稳定,但每个篇章的「参考资料」「最新进展」等附录部分会持续更新。重要的新工作(如某个新架构在大规模上被证实显著优于 Transformer)会以补遗或新篇的形式加入。

11.9 「我已经读过 Karpathy / Jay Alammar / Lilian Weng 的内容了,本系列的差异化在哪?」

差异化在三个地方:

第一,面向中文读者的语境与例子。本系列的例子尽量用中文场景,不是把英文教程翻译过来。

第二,前八篇的数学铺垫。Karpathy 的视频默认观众已经会线性代数;Jay Alammar 用图绕过数学;本系列直接把数学讲清楚。

第三,系列的整体性。58 篇里每一篇都互相引用、互相支撑,形成一张地图。单篇博客是「点」,本系列试图给你一张「面」。

所以如果你已经读过那些资料,本系列对你的价值在于「补足你那张图里的空白」「让你看到中文语境下的另一种讲法」「把所有概念串成一条主线」。

11.10 「这套系列对学术圈有什么贡献吗?」

诚实地说,没有。它不是研究工作,是教学工作。它的目标是把已经被研究清楚的内容用一种好读的方式重新呈现。如果你是研究者,本系列对你最大的价值是「给你的学生、合作者、需要协作的工程师推荐一份系统性的参考资料」。

11.11 「我没有 GPU,能跟下来吗?」

前 30 篇完全不需要 GPU。本系列里出现的所有数值例子在 CPU 上都能秒出。从第 29 篇开始我们会跑一些预训练实验,但用的都是「玩具规模」(参数量百万级、数据量 MB 级),笔记本就够。如果你想跑稍微像样的实验(参数量 1 亿、数据量 1 GB),租一张 V100 或者 4090 几个小时就行,成本控制在百元以内。不要让「买不起 GPU」成为不开始的借口

11.12 「我读到一半发现自己不感兴趣了怎么办?」

停下来。强迫自己读完不感兴趣的内容是浪费时间。你可以从下面几个方向重新评估:(1)是不是入错了门——AI 不止 LLM,传统 ML、推荐系统、计算机视觉都是大方向;(2)是不是节奏不对——也许你应该先去做一个项目,等遇到问题再回来读;(3)是不是这个领域真的不适合你——那就接受,把时间花在更适合的方向上。不要把『学完一套系列』当成目的本身

11.13 「为什么不开个视频课?」

写文章和讲视频是两种完全不同的表达。文章可以反复回读、可以快速跳跃、可以精确复制公式、可以带链接。视频更适合「带着情绪讲故事」「演示动态过程」「和讲师建立人格连接」。本系列选择文字是因为:(1)我自己讲视频不够流畅;(2)这种规模的内容拍视频对维护负担太大——一旦概念有改动要重录;(3)已经有 Karpathy、3Blue1Brown 这些极好的英文视频教材,再做一份中文视频不一定带来 marginal value。如果将来某些篇文字效果不够好,可能会单独做配套视频,但不是主要计划。

11.14 「能不能给我一份『最少需要读哪几篇』的极简清单?」

如果你只能读 5 篇:01、02、13、20、48。这五篇能让你对 Transformer 有「基本认知」,足够你和工程师对话不犯常识错误。 如果你只能读 10 篇:上面 5 篇加 03、11、16、29、38。这 10 篇能让你独立读懂 GPT-3 论文。 如果你只能读 20 篇:再加 04、05、12、14、17、24、25、27、30、34。这 20 篇就接近系列的核心骨架。

但请记住:「最少」是一个权宜的概念,不要把它当成「读这些就够了」。它的意思是「如果你只有这么多时间,按这个优先级读」。

11.15 「有没有配套习题?」

目前没有,正在筹备中。计划是每三到五篇配一组习题,包括:概念辨析题、计算题、代码题。习题是真正巩固知识的关键——「自己能算出来」和「看老师算出来」之间差着一个数量级的理解深度。在配套习题完成之前,建议你自己设计习题:每读完一篇问自己「如果我是出题人,我会出什么题」。


十二、Transformer 改变了哪些工程实践

写完前面所有抽象的内容,最后再花一节讲一件具体的事:Transformer 的出现不只是「让某些任务效果更好」,它改变了 AI 工程的协作方式。这件事在中文资料里讨论得不多,但理解它对你判断行业很重要。

12.1 从「为每个任务训一个模型」到「先训一个模型再适配很多任务」

Transformer 之前,做 NLP 工程的基本套路是:拿到一个新任务(比如情感分析、命名实体识别、文档分类),收集这个任务的标注数据,定义一个针对这个任务的模型架构(可能是 BiLSTM + CRF,也可能是 CNN + attention),调一堆超参,训出一个「专门干这件事的模型」。每开一个新任务就要重头来一遍,团队的代码库里有几十个互不相干的 pipeline。

Transformer + 大规模预训练改变了这件事。BERT 出现之后,行业默认的工作方式变成「先训(或下载)一个 BERT,然后在小规模任务数据上微调一两层」。微调只需要几千到几万条数据,比从零训省了几个数量级。再往后到 GPT-3,连微调都不一定需要了——你写一个 prompt,模型直接给出答案。这就是「foundation model」概念的由来:先有一个能把语言/图像/视频「通用地表示」的大模型,所有具体任务都从它出发。

这件事的工程后果是:AI 团队的人员结构变了。从前每个任务有自己的「特征工程师 + 模型工程师 + 数据标注员」,现在变成「极少数人训基础模型 + 大量人做 prompt / 微调 / 数据筛选」。这就是为什么过去三年 OpenAI、Anthropic、Google 这种公司不断膨胀,而很多传统 NLP 团队(比如做单一任务的客服 NLP、舆情 NLP)在缩编或转型。

12.2 从「特征工程为王」到「数据规模为王」

传统 NLP 工程里,最值钱的人是那些「能想出好特征」的人。比如做情感分析时,发现「否定词 + 形容词」组合特征能涨 3 个点,是工程师的本事。

Transformer 时代不一样。模型大到一定程度之后,手动设计的特征几乎都被模型自己学到了。你想到的那个「否定词 + 形容词」特征,预训练里见过的负面句子比你写的多 1000 倍,模型从中学出来的表示比你的特征更细致。所以工程师的价值从「想特征」转移到了「准备数据」「设计训练流程」「管 prompt」。

这件事既是机会也是风险。机会是:很多原本「需要专业特征工程师才能做」的任务,今天一个会写 prompt 的产品经理也能做出 demo。风险是:「会写代码、会调模型」这种过去稀缺的能力,门槛被降低了,大量传统岗位会被替代或贬值。这是 2023 年开始很多 NLP 岗位招聘缩水的根本原因之一。

12.3 从「学术驱动」到「资本与算力驱动」

2010 年代的深度学习是学术驱动的:CNN(AlexNet)、ResNet、Adam 这些都是学术界先发表,工业界跟进。但 GPT-3 之后整个领域明显变成「算力驱动」——OpenAI 这样有几千张 GPU 的机构能做出几百张 GPU 做不出来的事,「能不能复现」首先是「能不能买到那么多卡」的问题。

这件事对学术界冲击很大。一些学校(如 CMU、MIT)尝试过和工业界合作训中等规模的开源模型;另一些(如 Stanford、UC Berkeley)转向「研究小模型也能做的事」,比如效率优化、可解释性、对齐。学术研究在「最大模型」上的话语权确实在下降,但在「为什么这样能 work」「怎么让它更可靠」上仍然是主战场。本系列的第七部分(可解释性)会展开这块。

12.4 从「论文 + 代码」到「论文 + 代码 + 模型权重」

过去发一篇论文,公开代码就算「可复现」。今天大模型论文里,真正决定结果的是预训练得到的那个 checkpoint,而 checkpoint 通常不公开。OpenAI 从 GPT-3 开始就不放权重,Anthropic 从来没放过,Google 在 Gemini 上也是只放小版本。LLaMA 系列是当前开源的代表(Meta 选择放权重是一个非典型的商业决定)。

这件事的副作用是:「读懂论文」和「能复现」之间出现了巨大鸿沟。你能完全理解 GPT-4 的论文(如果有的话)也复现不出来——你没有那么多算力、没有那么多数据、没有那么多对齐工程师。这就是为什么开源社区的存在变得特别重要:LLaMA、Mistral、Qwen、DeepSeek 这些开放权重的模型让研究者可以在已有 checkpoint 上做后训练实验。本系列后半段大量例子会用 LLaMA 系列,原因之一就是它们权重可以下载。

12.5 从「专门人才」到「全栈 AI 工程师」

最后一个变化,是岗位结构上的。过去 NLP 工程师、CV 工程师、推荐系统工程师是泾渭分明的三个岗位。今天因为底层都是 Transformer,懂一个领域就能很快迁移到另一个领域。一个会做 NLP 的人,学几周 ViT 就能做 CV;学几周 CLIP 就能做多模态;学几周 stable diffusion 就能做生成式视觉。底层的「Transformer + 大规模预训练 + 微调」范式是相通的。

这给了从业者一个机会:与其在一个细分领域钻研一辈子,不如把底层这一层吃透,然后在多个方向上都能做事。本系列的设计正是为这种「全栈 AI 工程师」准备的——前八篇打基础,中间二十篇讲核心,后面三十篇讲所有主要分支。读完之后你不会成为某个分支的专家,但你会有一张完整的地图。


十三、起飞前的最后清单

如果你决定要走这条路,进入下一篇之前,建议你做这几件事:

第一,确认你的目标。问自己一个问题:「我学完之后想做什么?」可能的答案有:(1)应付面试;(2)能在自己的产品里用 LLM;(3)做研究;(4)只是好奇。不同答案对应不同读法。把答案写在你笔记的第一页,每读完一篇回来对一下「这一篇离我的目标更近了吗」。

第二,检查你的数学基础。打开任何一本高中数学书,如果你能做对:「计算两个二维向量 [1, 2] 和 [3, 4] 的内积」「画出函数 \(y = x^2\) 的图像」「计算 \(f(g(x))\)\(f(x) = x + 1\)\(g(x) = 2x\) 时的表达式」,这三道题,你的数学基础就够了。如果有一道做不出来,先花一天补一下高中数学,再来读。

第三,准备工具。 - 一个 Markdown 笔记工具(Obsidian / Notion / Logseq 任选); - 草稿本和笔; - Python 3.10+ 与 NumPy(PyTorch 后面再装); - 一个浏览器收藏夹专门收 Transformer 相关资料; - 充足的、可以专注阅读的时间。

第四,调整预期。本系列的前几篇会非常基础,对一些读者来说可能「太啰嗦」。请理解这是为了让所有人都能跟上。如果你发现自己读得很轻松,不要轻视——前面打牢了,后面的爬坡才不会摔。

第五,开始读第二篇。不要拖。看完这一篇之后立刻去看 02 向量与点积的几何直觉,趁着热度往下走。如果你今天没空,至少把这一篇的「关键概念回顾」过一遍,避免冷却。

读到这里,这一篇的任务就完成了。如果你下一秒打开了 02,那这一篇就值。


十四、年表:2014–2026

为了让你在脑子里有一条时间轴,下面把 Transformer 这条线上每一年最关键的事按年罗列。我尽量克制,每一年只挑一两件「真正改变了走向」的事,不堆所有论文。这条年表会在系列后半段被反复引用。

2014:Sutskever 等人提出 seq2seq;Bahdanau 等人提出注意力机制(用在翻译上)。这两件事合起来给了「编码—注意力—解码」这个三段式骨架。同年 GANs 也被提出,但那是另一条线。

2015:注意力机制被推广到摘要、问答、对话等多个 NLP 任务。Adam 优化器(其实是 2014 年底)开始普及,让深度网络训练稳定性大幅提升。Residual Network(ResNet)发表,证明「深网络 + 残差」可以稳定训练 152 层——这件事虽然在 CV 圈,但思想后来被 Transformer 采纳。

2016:神经机器翻译大规模上线,Google Translate 在 9 月切换到 GNMT。当时所有人都在改进 RNN + attention 的细节,没人意识到一年后这条路会被绕开。

2017:6 月 Attention Is All You Need 上 arxiv,12 月在 NeurIPS 正式发表。同年 InfoGAN、PixelCNN、WaveNet 等也在各自方向上推进,但 Transformer 那篇是最被低估的。

2018:6 月 GPT-1 发布;10 月 BERT 发布。两个工作合起来证明了「Transformer + 大规模预训练」是 NLP 的主导范式。从这一刻起,几乎所有 NLP benchmark 上的 SOTA 都被 Transformer 系模型占据。

2019:2 月 GPT-2 发布;T5、XLNet、RoBERTa、ALBERT 等大量 BERT 变种涌出。这一年是「BERT 时代」的高峰,工程上的关注重心还在 encoder-only。少数人(OpenAI)押注 decoder-only。

2020:5 月 GPT-3 发布。1750 亿参数,第一次让 few-shot learning 在大规模上 work。同年 ViT(Vision Transformer)发表,Transformer 第一次在视觉上击败 CNN。Scaling Laws 论文(Kaplan 等)发表,给出第一份系统的「参数—数据—算力」关系。

2021:CLIP(OpenAI)发布,把图像和文本对齐到同一个空间,这是后来所有「文生图」「图生文」的基础。Codex(GPT-3 微调到代码)发布,演变成 GitHub Copilot。InstructGPT 的早期实验在内部进行。

2022:1 月 Chinchilla 论文(DeepMind)发表,修正了 Kaplan 的结论,指出大多数大模型「训不够久」。3 月 InstructGPT 论文发表,把 RLHF 推到台前。8 月 Stable Diffusion 开源。11 月 ChatGPT 发布。这一年是 Transformer 在公众认知里彻底爆发的一年。

2023:GPT-4 发布(3 月);LLaMA 1 与 2 发布(2 月、7 月);Claude 系列开始;多模态(GPT-4V、Gemini 1.0)登场;Mamba 论文(12 月)首次提出可与 Transformer 相提并论的非 Transformer 架构。开源社区在 LLaMA 之上爆出几十个微调版本(Alpaca、Vicuna、Wizard、Mistral)。

2024:LLaMA 3、Mixtral、Qwen 2、DeepSeek-V2、Claude 3 系列、Gemini 1.5、GPT-4o、o1(推理模型)。MoE 大规模商用;长上下文(100K、1M)成为标配;推理时 scaling(test-time compute)作为新方向被提出。

2025:DeepSeek-V3 与 R1 发布,把开源模型的能力推到接近闭源旗舰;Anthropic 推出 Claude 3.5/3.7 与扩展思考;OpenAI 的 GPT-5 与 o3 系列;Llama 4 系列。MoE、长上下文、推理模型成为主流。Mamba/RWKV 在某些细分场景显示出优势,但旗舰模型仍是 Transformer。

2026 年初:本系列写作进行中。整体格局是「Transformer 仍是主导,混合架构与稀疏化是主要工程方向,对齐与可解释性受到越来越多关注」。

把这条时间线放在脑子里,你读后面任何一篇时都可以快速定位「这件事发生在哪一年、之前是什么状态、之后引发了什么」。


十五、几个常被混淆的概念辨析

这一节为后面铺垫,把几对在初学时最容易搞混的概念分开。

15.1 Transformer vs LLM

Transformer 是一个神经网络架构。LLM(大语言模型)是「用 Transformer 训练出来的、参数量很大的、专门做语言生成的模型」。两者关系是「LLM 用 Transformer,但 Transformer 不只用于 LLM」。例如 ViT、CLIP、AlphaFold 里的 Evoformer、推荐系统里的序列模型,都是 Transformer,但不是 LLM。把 Transformer 等同于 LLM 是常见误解。

15.2 GPT vs ChatGPT

GPT 是一系列模型的家族名(GPT-1、GPT-2、GPT-3、GPT-3.5、GPT-4、GPT-4o、GPT-5)。ChatGPT 是 OpenAI 在 2022 年 11 月推出的产品,第一版基于 GPT-3.5。今天 ChatGPT 后面挂的模型可以是 GPT-4 也可以是 GPT-4o 也可以是 o 系列推理模型。把「ChatGPT」当成模型名是不严谨的。

15.3 预训练 vs 微调 vs 对齐

预训练是「在海量无标注文本上做下一个 token 预测」,目的是学语言;微调是「在小规模有标签数据上继续训」,目的是教模型干具体任务;对齐是「让模型的回答符合人类偏好与安全规范」,方法包括 SFT、RLHF、DPO 等。三件事是依次发生的:先预训练,再微调(或对齐)。一个对话模型 = 预训练模型 + 对齐。

15.4 注意力(Attention)vs 自注意力(Self-Attention)vs 多头注意力(Multi-head Attention)

注意力是一类机制的总称(「相似度加权求和」)。自注意力是「Q、K、V 都来自同一个序列」的注意力。多头注意力是把自注意力(或交叉注意力)在通道上分成多组并行做。三者的关系是层层包含:多头自注意力 ⊂ 自注意力 ⊂ 注意力。

15.5 训练 vs 推理

训练是「调整模型参数」的过程,需要前向传播+反向传播+梯度更新,算力消耗巨大。推理是「用训好的模型回答问题」,只需要前向传播。两件事在工程上完全不同:训练用 BF16/FP16/FP8,推理常用 INT8/INT4 量化;训练用大 batch,推理常用流式生成。本系列的第四部分讲训练,第六部分讲推理。

15.6 token vs 字 vs 词

token 是分词器(tokenizer)切出来的最小单位。它不是字、不是词。在中文里,一个常见汉字可能对应 1 到 2 个 token,一个生僻汉字可能对应 3 到 4 个 token;在英文里,“hello” 是 1 个 token,“unhappiness” 可能是 3 个。OpenAI 的「token 计费」是按 token 而不是按字符或词,所以理解 token 边界对成本控制很重要。

15.7 上下文窗口 vs 训练数据长度

上下文窗口(context window)是模型在推理时一次能看到的最大 token 数(LLaMA 3 默认 8K,Claude 3 是 200K,Gemini 1.5 Pro 是 1M)。训练数据长度是预训练时每个样本的最大长度(早期 GPT 大都是 1K 或 2K,后期通过 RoPE 缩放等技巧可以扩展到训练时没见过的长度)。两者经常被混淆。一个模型即便宣称「支持 1M 上下文」,也不代表它在 1M 上下文里效果好——这一点在 46 长上下文 会展开。

15.8 涌现能力(Emergence)vs 拟合(Fitting)

涌现能力指「模型规模到某个阈值之前完全不能做某件事,到了之后突然能做」,这件事在 GPT-3 论文里被强调,引发了大量讨论。但 2023 年 Are Emergent Abilities of Large Language Models a Mirage? 一文质疑了它,指出很多「涌现」是评估指标的非线性造成的假象。本系列在 34 Scaling Laws 会展开这个争论。这里只想强调:「涌现」不是被严格证明的现象,初学者不要把它当成「大模型一定有魔法」的论据

15.9 Agent vs 模型

Agent 是「围绕一个 LLM 构建的、能调用工具、能规划、能执行多步任务的系统」。模型是底层。Agent = 模型 + 提示工程 + 工具调用 + 状态管理 + 控制流。今天很多产品(Cursor、Devin、AutoGPT)都是 agent 而不是「模型」。本系列主要讲模型本身,agent 的工程问题在另一个系列里讨论。

15.10 开源 vs 开放权重

很多媒体把「开源」和「开放权重」混用。严格来说: - 开源(open source):代码 + 权重 + 训练数据 + 训练流程都公开; - 开放权重(open weight):只公开权重,训练数据和细节保留。

LLaMA 系列、Qwen 系列、DeepSeek 系列严格来说是「开放权重」,不是「完全开源」。OLMo(AI2)、Pythia(EleutherAI)这种把数据也公开的才算严格开源。这种区分在工业界很重要:开放权重模型可以商用但不能完全审查,完全开源模型可以用于学术复现。


十六、为什么 2026 年是开始学 Transformer 的最佳时机

这一节是写给犹豫者的。

第一,资料前所未有地丰富。十年前学深度学习要靠几本英文教科书加论文;今天有 Karpathy 的视频、Hugging Face 的免费课程、3Blue1Brown 的可视化、本系列这种系统性中文教程,加上 Claude 和 GPT-4 这种可以随时回答你问题的工具,门槛比以往任何时候都低。

第二,底层基本稳定。2017 到 2022 年是 Transformer 设计还在快速迭代的时期,工程细节天天变。2023 年之后核心结构(attention、FFN、残差、LayerNorm/RMSNorm、RoPE、SwiGLU 等)已经收敛,所有主流模型都用大同小异的骨架。这意味着你今天学的东西不会两年后就过时——再两年,今天这套骨架的核心 90% 仍然有效。

第三,就业市场仍然旺盛。截至 2026 年初,「能讲清楚 Transformer 原理 + 会做微调」的工程师仍是市场紧缺岗位。即便 prompt 工程师岗位在贬值,「能调底层、能改架构、能 debug 模型」的工程师依然能要到高薪。

第四,理解大模型对个人决策有用。你将来会在工作里、生活里反复遇到「这个 AI 应用靠谱吗」「这家创业公司值不值得加入」「这条新闻是不是吹牛」之类的判断。读懂底层之后,你不会被表面现象忽悠。这是「为自己」而不是「为职业」的理由。

第五,学这件事本身有趣。我自己学的过程中反复觉得「天哪原来是这样」。深度学习里的很多设计有种「美感」——一个看似抽象的数学操作,在工程上恰好解决了一个非常具体的痛点;一群人在不同时间不同地点提出的想法,最后被整合到同一个架构里。如果你对「机器为什么能学习」这件事本身好奇,这条路一定不会让你后悔。


十七、六条阅读路径详解

第二节里给过六条路径,下面把每条展开讲,让你能自己判断「我属于哪一条」。

17.1 完全入门

典型读者:高中生、文科背景、产品经理、对 AI 好奇但没学过深度学习的人。 目标:能看懂主流大模型新闻,能跟工程师讨论而不犯常识错误,能自己跑个最小 demo。 路径:01 → 02 → 03 → 07 → 11 → 12 → 13 → 20 → 38 → 48。 核心要点:这条路径上每一步都设计得「数学最浅」。02、03 是数学基础;07 是概率基础;11–13 是注意力机制的最简版本;20 是论文整体架构;38 是看一个具体的现代模型(GPT);48 是看模型怎么生成 token。跳过了所有复杂数学(LayerNorm 推导、位置编码细节、Scaling Laws)预期时间:6 到 8 周,每周 2 小时。 走完之后能做什么:能给非技术朋友解释 ChatGPT 是怎么回事;能在自己产品里基本合理地用 LLM API;能判断「Transformer 替代论」之类的新闻是真是假。 走完之后还不能做什么:自己训模型;做严肃的微调;读 paper 不查词典。

17.2 算法工程师转 NLP

典型读者:已经做过推荐系统 / 风控 / CV / 经典 ML,想转 LLM 方向的工程师。 目标:在三个月内能加入一个 LLM 团队工作,能读懂同事的代码、能 debug 训练问题。 路径:04 → 05 → 09 → 10 → 13 → 14 → 16 → 20 → 27 → 29 → 30 → 38。 核心要点:这条路径假设你已经懂梯度下降、神经网络基础,所以跳过了 02、03、07、08。从 04(神经网络)和 05(激活)开始重新校准对深度学习的理解;然后通过 09、10 看清楚 Transformer 的「祖先」RNN 为什么不够;最后进入 attention(13、14、16)和论文(20、27);29、30 是训练范式入门,38 是看 GPT 的工程实现。 预期时间:3 到 4 周,每周 4 小时。 走完之后能做什么:能在团队里独立做 LLM 微调;能看懂主流开源模型的代码(LLaMA、Mistral);能在面试里把 Transformer 推一遍。 走完之后还不能做什么:独立做大规模预训练(这需要工程经验,不是看书能解决的)。

17.3 研究者深读论文

典型读者:研究生、博士生、想做 LLM 研究方向的人。 目标:能独立提出研究问题、能 review 别人的 paper、能写自己的 paper。 路径:13 → 14 → 15 → 16 → 19 → 20 → 21 → 22 → 23 → 27 → 28(精读全部论文)→ 34 → 52。 核心要点:这条路径假设你数学基础扎实(线性代数、概率、优化都熟),跳过前八篇基础。直接从注意力机制的精细推导(13–16)进入论文逐段精读(19–28),中间会有大量「为什么这样设计而不是别的」的讨论;之后进入 Scaling Laws(34)和可解释性(52)。 预期时间:4 到 6 周,每周 6 小时。 走完之后能做什么:能在 ICLR/NeurIPS 这种会议的 reviewer 角色上工作;能找到自己的研究方向。 走完之后还不能做什么:拿到 SOTA(这需要算力 + 灵感 + 时间,不是读书能给的)。

17.4 推理工程师

典型读者:做模型部署、做推理服务的后端工程师;从 ML infra 转过来的。 目标:能优化推理速度、能 debug OOM、能在 vLLM/TensorRT-LLM 之类的框架里做改动。 路径:20 → 22 → 26 → 41 → 42 → 48 → 49 → 50(配合 llm-infra 系列)。 核心要点:这条路径不要求你懂训练,只关注「推理时模型在算什么」。20 是整体架构;22、26 是推理时最关键的两个 sublayer;41、42 是 MoE 与 ViT 这两个推理时容易踩坑的变体;48–50 是核心:自回归生成、KV Cache、FlashAttention。 预期时间:2 到 3 周,每周 4 小时(配合 llm-infra 还要再加 3 周)。 走完之后能做什么:能在 vLLM、SGLang、TGI 等推理引擎里做定制;能设计推理服务的内存与吞吐 trade-off。 走完之后还不能做什么:写 CUDA kernel(这是 llm-infra 的范畴)。

17.5 关心架构未来

典型读者:CTO、技术决策者、做技术战略的人;不一定写代码,但需要判断方向。 目标:能判断「未来 3 年应该投资什么架构方向」「Transformer 替代品的可能性」。 路径:10 → 18 → 41 → 42 → 44 → 55 → 56 → 57 → 58。 核心要点:这条路径侧重「Transformer 的局限和未来」。10 是 RNN 局限(让你看清楚 Transformer 解决了什么);18 是注意力的局限(让你看清楚 Transformer 仍然解决不了什么);41–44 是一些已经成功的变体;55–58 是替代候选。 预期时间:2 周,每周 3 小时。 走完之后能做什么:在投资 / 战略决策时不会人云亦云;能给技术团队提出靠谱的方向问题。 走完之后还不能做什么:替代「找一个真正懂行的人来做技术决策」——这条路径只能让你不犯低级错误。

17.6 多模态方向

典型读者:CV 背景想转多模态、做生成式视觉、做视频理解的人。 目标:理解 CLIP、ViT、Diffusion Transformer 等多模态架构。 路径:02 → 03 → 11 → 13 → 20 → 38 → 42 → 43 → 44 → 45 → 46 → 47。 核心要点:02、03 是基础;11–13 是注意力机制;20、38 是 LLM 主线;42 是 ViT;43 是 CLIP;44 是 Diffusion Transformer;45–47 是多模态、长上下文、代理。 预期时间:3 到 4 周。 走完之后能做什么:能跟进多模态领域的主线工作;能 debug 多模态模型的训练问题。 走完之后还不能做什么:独立训练 GPT-4o 这种多模态旗舰(同样是规模问题)。


十八、我自己踩过的坑

最后再写几条非常个人的、不一定具有普遍性的踩坑经验。

坑一:太早看代码。我自己一开始学的时候,做了很多「直接打开开源模型代码读」的尝试。打开 BERT 源码、LLaMA 源码、HuggingFace 源码。结果是非常多的术语和工程抽象(torch.nn.Module、register_buffer、attention_mask 的形状是 [B, 1, 1, T] 还是 [B, H, T, T])让人晕。后来回头才意识到:代码是「实现」,是给你「确认理解」用的,不是给你「学习概念」用的。先看概念性资料把每一步在算什么搞清楚,再去看代码确认你的理解和实现一致,是更高效的路径。

坑二:太早追新论文。有一段时间我每周都看 arxiv 新论文,发现自己脑子里堆了一大堆「Linear Attention 的 N 种变体」「Position Encoding 的 M 种改法」,但真正核心的「为什么需要 attention」反而没搞明白。追新论文是研究阶段的事,学习阶段应该聚焦经典。本系列覆盖的论文几乎全部是已经被时间证明的工作,原因正是这个。

坑三:忽略 RNN。很多新教程为了「省时间」直接跳过 RNN 讲 Transformer。结果学的人不知道 Transformer 是「为了解决什么 RNN 解决不了的问题」诞生的,于是把它当成「凭空冒出来的天才架构」。本系列的 09–10 两篇专门讲 RNN 的局限,是必读的。

坑四:把 attention 当玄学。第一次看 attention 公式 \(\text{softmax}(QK^{\top}/\sqrt{d_k})V\) 时,我把它当成「不知道为什么 work 但 work 了」的黑魔法。后来花时间一步一步推导,才发现每一项都有非常具体的工程动机:\(QK^{\top}\) 是相似度矩阵;\(/\sqrt{d_k}\) 是数值稳定;\(\text{softmax}\) 是归一化;乘 \(V\) 是加权求和。任何看起来神秘的东西,都是因为你还没找到正确的角度。本系列的 11–17 篇就是给你找这个角度。

坑五:过分依赖类比。「Q 是查询、K 是键、V 是值,就像数据库」「attention 就像聚光灯,照亮重要的部分」「LayerNorm 就像调音台」。这些类比对快速理解有用,但不要把类比当本体。当类比和实际数学冲突时,相信数学。比如「数据库」类比让人觉得 attention 是「精确匹配」,但实际上它是「软匹配」,每个 query 看每个 key 都有非零权重。

坑六:跳过位置编码。位置编码这一块在我学习时被反复跳过,因为「看起来不重要」。后来才发现现代 LLM(LLaMA、Qwen)能扩展到 100K 上下文的关键之一就是位置编码(RoPE)的设计,跳过这一块就理解不了长上下文。本系列的 25 篇专门讲,强烈不要跳。

坑七:迷信「Karpathy 一句话讲清楚」。Karpathy 是真大佬,他的视频好得不能再好,但他的目标受众是「已经懂深度学习的人」。如果你完全没基础,直接看他的视频会很多地方跟不上,然后误以为是自己笨。老师的好坏要相对于自己当前位置来判断。一个 5 年级的孩子学不会大学微积分课,不是孩子或老师的问题,是错配。

坑八:以为「学完」就够了。学完一遍只是入门。真正的「会」需要:自己写一遍代码、训一个小模型、读 5 篇相关 paper、和别人讨论几轮、回头再读一遍这套系列。我自己 attention 公式真正烂熟于心,是在写过三次 nanoGPT、读过 20 篇 attention 变种 paper 之后。不要把「读完」当成「会了」的等价

坑九:用「速通教程」替代系统学习。短视频时代里非常流行「30 分钟讲清 X」「3 分钟搞懂 Y」的内容。这些视频对建立第一印象有用,但它们的设计目标是「让你看完后觉得自己懂了」,不是「真的让你懂」。短视频里被压掉的那些「枯燥的中间步骤」,恰恰是真正决定你能不能独立解决问题的地方。如果你只看速通视频,会陷入「每个概念都听过、每个细节都不知道」的尴尬境地。

坑十:把「读懂英文 paper」当门槛。我以前一度觉得「英文 paper 读不顺是我英语不行」。后来发现不是——是中间那些被预设的概念我没掌握。一旦概念掌握了,paper 的英文反而是最简单的部分(学术英语词汇有限、句法固定)。所以如果你 paper 读不进去,别先怪英语,先检查概念基础。


十九、关于学习工具与环境配置

读这套系列不需要复杂环境,但建议你最低配一下面这些:

Python 环境。安装 Python 3.10 或更新版本。推荐使用 condauv 管理虚拟环境。基础包:

整个环境安装大概占 2 GB 磁盘。

编辑器。VSCode、Cursor、PyCharm 任选其一。如果你是 vim/emacs 用户当然可以继续用,但建议至少装一个 Jupyter Notebook 支持,因为本系列的很多例子用 notebook 跑最直观。

Markdown / 笔记工具。Obsidian、Notion、Logseq 三选一。我自己用 Obsidian,因为它本地存储、纯 markdown、支持双向链接。每读完一篇本系列,建议在你的笔记里建一页,包括:核心问题、核心结论、我的理解、我的疑问、参考资料。读到第 28 篇时回头看,你会感谢现在这个习惯。

数学排版。如果你要做数学相关的笔记或自己写博客,建议熟悉 LaTeX。本系列的所有公式都用 LaTeX 写,例如 $a \cdot b$ 渲染为 \(a \cdot b\)。VSCode 加 Markdown All in One 插件就可以预览。

画图工具。本系列的 SVG 是手写的(直接写 <rect><text> 标签)。如果你只是要画自己的笔记图,excalidraw、draw.io、figma 都可以,不用手写 SVG。

GPU 资源(可选)。前 28 篇基本不需要 GPU。从第 29 篇开始如果你想跑训练实验,可以选: - Google Colab Free(T4 GPU,每天有限); - Colab Pro(约 $10/月,A100 偶尔可用); - Kaggle(每周 30 小时 P100 / T4); - AutoDL / Vast.ai 等国内/国际租 GPU 平台(4090 大约 1.5 元/小时); - 自己买台带 4090 的台式机(约 2 万人民币起)。

学习社群。深度学习领域单打独斗很容易卡死。建议至少加入一两个活跃的中文社群,例如 Hugging Face 中文社区、PyTorch 中文社区、机器之心读者群、或者本博客的评论区。有问题问出来,对方未必会马上回答,但「问问题这件事本身就帮你想清楚了一半」。

版本控制。如果你打算自己写代码,从一开始就用 git。把每一篇对应的实现放在自己的仓库里,commit 历史会成为你最好的学习记录。


二十、给三类特定读者的话

给学生:如果你是大学生或研究生,这套系列可以作为「Transformer 与现代深度学习」的自学教材。它不能替代你学校的课程(学校的课程通常更广更系统),但可以作为「专精方向」的参考。读完之后你应该能在课堂讨论、组会汇报、实习面试中脱颖而出。如果你的学校开了 NLP 或深度学习课程,建议把本系列作为「教材的补充阅读」——课程通常给广度,本系列给某一个垂直方向上的深度。如果你打算读 PhD,特别建议把第三部分(论文精读)反复读,这是训练「论文阅读品味」的有效练习。

给在职工程师:如果你已经工作了几年,时间紧张,建议按「19.2 算法工程师转 NLP」的路径走,跳过前八篇。但周末挤出时间至少把前八篇扫一遍,看看哪些自己已经熟、哪些是知识盲区。盲区往往是后续踩坑的原因。在职转方向的难点不是学不会,是「时间被现有工作占满」。我的建议是:(1)把学习时间固定下来,比如每周二、四晚上各两小时;(2)把读到的内容立刻应用到工作里,哪怕是非常小的一个改进;(3)和同事或社群里的人讨论你正在读的篇,外部 accountability 比自我约束有效得多。

给想转 AI 的非技术背景人:欢迎你。本系列对你最友好——前八篇是数学基础,09 之后是技术内容,每一步都有直觉解释。但要做好心理准备:从「能看懂概念」到「能写代码做事」之间还有相当一段路要走,需要你额外学 Python 和工程实践。这条路的回报很高,但不要低估投入。我建议这类读者并行做两件事:一边读本系列建立概念框架,一边花相同的时间练 Python 基础与机器学习库(scikit-learn、numpy)。两条腿同时走,避免「概念懂了但代码写不出」或「代码会写了但不知道为什么」的偏科。另外一个建议:找一个具体的「我想用 AI 做的事」作为目标(比如「自动整理我读过的 paper 摘要」「给我家猫拍的照片自动分类」),让学习有抓手。


二十一、本系列的写作约定

为了让你阅读时少一些不确定,下面把本系列的写作约定集中说明。

关于符号。本系列默认使用以下符号:标量用斜体小写(\(x\)\(y\)\(d_k\));向量用粗体小写(\(\mathbf{x}\)\(\mathbf{q}\)\(\mathbf{k}\));矩阵用大写(\(X\)\(Q\)\(W\));张量(高阶)用大写花体(\(\mathcal{X}\))。维度顺序统一为 batch × sequence × hidden(B × T × D),这是 PyTorch 默认 layout。

关于公式。所有公式都用 LaTeX,但会在公式后面用一段(不是一行)自然语言解释这个公式说什么、为什么是这个形式、和前一个公式的关系。如果你觉得某个公式没解释清楚,那是写作问题,欢迎反馈。

关于代码。前 18 篇基本不会有代码。从 19 篇开始会有伪代码片段,从 28 篇开始会有可执行的 Python(基于 PyTorch)。所有代码都尽量简短,配大段文字说明每一行在做什么。

关于图。所有图用 SVG,独立文件放在每篇的 images/ 子目录。深色主题(#2d333b 背景),ui-monospace 字体。颜色编码:蓝色(#388bfd)表示数据/输入;绿色(#3fb950)表示正常流程;橙色(#f0883e)表示参数;紫色(#a371f7)表示重要分支;红色(#f85149)表示问题或限制。

关于参考文献。每一篇文末会列「参考文献」,分论文、书籍、博客、规范四类。所有引用都是真实存在的资源,标题、作者、年份、链接都可核对。我不会引用「我读过但记不清楚是哪篇」的资料。

关于内部链接。所有指向本系列内其他篇的链接用相对路径加 .html 后缀(例如 ../02-vector-dot/02-vector-dot.html)。在 markdown 源文件里用 .html 是因为本博客的构建脚本会从 .md 生成 .html

关于「我」的使用。本系列的口吻是第一人称单数。用「我」是为了让叙述自然;这个「我」是作者一个人的判断,不代表任何集体或机构观点。我会尽量在「事实」和「我的判断」之间画清楚界线——前者用客观陈述,后者会标注「我认为」「在我看来」。

关于错误。这套系列写了很多内容,难免有错。如果你发现错误,欢迎在博客评论区或 GitHub 上指出。错误一旦确认会立即修正并在篇末加修订记录。

关于风格的一致性。58 篇并非一气呵成,所以前后篇章的风格可能略有出入:早期篇章可能更注重直觉,后期篇章可能更注重精确推导。我会在二轮修订时尽量统一,但不强求绝对一致——「保持每一篇内部的清晰」比「全系列形式整齐」更重要。

关于和正文无关的话。本系列正文里不会出现「下面我们来看」「希望本文对你有帮助」「以上就是」这一类话。这是一种刻意的写作选择:好的技术写作应该让内容自己说话,不需要这种「桥段语言」。如果你在某一篇里看到这种话,那是漏网,欢迎指出。


二十二、关于本系列的版本与更新

本系列从 2026 年 4 月开始连载,按计划在 2026 年底前完成 28 篇,2027 年中完成全部 58 篇。每一篇发布后会进入「公开修订期」,根据读者反馈持续修正。重大修改会在篇末加「修订记录」。

我对这套系列的承诺是:

这些承诺不是道德高地,是我自己作为读者希望从「教学性内容」里得到的东西。把它写出来是给自己一个外部约束。

如果某一天本系列因为不可抗力暂停或终止,我会在系列首页明确公告。读者投入了时间,不应该被悄悄丢下。

关于授权。本系列采用 CC BY-NC-SA 4.0 协议(署名—非商业—相同方式共享)。简单说:你可以复制、转载、改写本系列的内容,但需要署名作者、不能用于商业用途、衍生作品也必须开放。这是中文开源教育内容里比较常见的协议。

关于翻译。如果有人想把本系列翻译成英文、日文或其他语言,欢迎,但请提前告知并保留授权信息。我自己时间有限,可能不会做翻译,但会乐意推荐译本。


关键概念回顾

这一篇没有引入任何技术概念,但有几个「读法上」的判断需要你带着进入下一篇。

第一个判断是:Transformer 的胜利是规模上的胜利,不是某个聪明 trick 的胜利。它能赢的根本原因是「在工程层面允许你把模型放大」,这件事在 2017 年是看不出来的,要到 2020 年 GPT-3 才彻底显现。所以读这套系列时,每当我们讨论一个工程决定(残差、LayerNorm、scaled dot-product、warmup),都要在脑子里多问一句「这个决定对放大有什么帮助」。这个角度会让很多看似无关的细节突然连成一条线。从这个角度看,Transformer 论文里很多被一笔带过的细节(比如 warmup 的具体形式、LayerNorm 放在残差之前还是之后),其实在大规模训练时是「能不能稳定训完」的关键。这些细节我们会在第三部分逐个回到。

第二个判断是:「注意力」这个名字带来的直觉是有限的。它对最初解决翻译对齐问题时的命名是合理的,对今天的自注意力是误导的。后面我们会看到 attention 实际上做的事就是「点积 + softmax + 加权求和」,与人类心理学意义上的注意力几乎没有关系。如果你执着于用「注意力」这个生活化概念去理解每一步,会反复卡住。把它当成一个数学操作的代号即可。再进一步:很多别的概念也面临同样的问题——「神经网络」并不真的像神经,「学习」并不真的像人学习,「记忆」也不真的是记忆。这些类比对快速建立第一印象有用,但要真正理解,必须放回数学语境里看。

第三个判断是:前置数学不能跳。这件事我已经反复强调过,因为我看到太多读者在 attention 公式上挫败、放弃,而原因从来不是 attention 本身复杂,是他没准备好读它。前八篇里的内容看起来基础,但每一个都会在后面被反复用到。你越早把它们做扎实,后面越省力。具体来说,第 02 篇的「点积」会在第 11、13、16、22 篇反复出现;第 03 篇的「矩阵乘法」会在每一篇出现;第 06 篇的「softmax」会在第 13、14、48 篇出现;第 08 篇的「梯度」会在每一篇训练相关的章节出现。把它们提前打牢相当于把后面所有篇章的阅读速度都提一倍。

第四个判断是:这套系列的目的是让你「具备读论文和读代码的能力」,不是让你「成为某个专精方向的专家」。Transformer 的世界今天分裂成了非常多的子领域:训练算法、推理工程、对齐、可解释性、多模态、agent。每一个都可以专精地写一辈子。本系列做的是「让你站到能选择走哪条岔路的那个起点」。岔路本身要靠你自己去走。换句话说,本系列是「地图」而不是「目的地」。读完之后你会知道这个领域里有哪些大问题、每个大问题的现状是什么、想深入应该去看哪些资料。具体某个方向上要做出贡献,仍然需要你在那个方向上专门投入。

第五个判断是:「Transformer 即将被替代」这件事在可见的未来还不会发生。即便发生,理解 Transformer 仍然是理解任何替代者的前提。所以投入是值得的。这件事我在第 1.3 节已经讲过,这里再强调一次,因为太多人因为「替代焦虑」放弃学习。深度学习领域的「下一代架构焦虑」从 2014 年就存在——当年很多人觉得「DNN 很快会被某种新架构替代,何必学」,结果 DNN 一路演化到 Transformer 主导今天。技术演化是连续的,新东西几乎一定建立在旧东西之上。学懂今天的主导架构,永远不会是错的投入。

第六个判断是:学习是一件需要纪律的事,不是靠灵感。我见过最多的失败案例不是「学不会」,是「半途而废」——读了 5 篇觉得「太基础」,跳到 30 篇看不懂、放弃;或者读了一个月觉得「进度太慢」,转去看 prompt 教程;或者每天「打开了文档但没真的读」。学习这件事和健身、和长期理财一样,关键在于持续。一周读两篇并坚持三个月,比一周读十篇坚持两周收益大得多。


常见误解

误解一:「Transformer 是 Google 用来做翻译的,原理上和现在的 ChatGPT 不一样。」 错。原始 Transformer 确实是为翻译设计的 encoder-decoder 架构,但 ChatGPT 用的 GPT 系列就是把 decoder 单独拿出来反复堆。底层 attention 机制完全相同,区别只在于「是不是 mask 未来位置」「有没有 cross-attention」。所以读懂 2017 年那篇 paper,对理解 2025 年的对话模型仍然 80% 直接相关。换个角度说,这八年里 Transformer 的「核心数学」基本没动过;动的是规模、训练数据、对齐方法、推理优化。理解核心数学是一切的前提。

误解二:「Transformer 之所以厉害,是因为它有『注意力机制』,模仿了人类大脑。」 错。注意力机制和人类大脑里的注意力关系非常薄弱。它只是一种数学操作(点积加权求和),名字是历史遗留。把它当成「类脑的」会让你产生很多错误的直觉。模型在 attention 层做的事和人在阅读时分配视觉焦点的事几乎没有可比性。神经科学界对此也基本是共识——尽管深度学习领域很多概念名字来自神经科学,但实际数学操作和大脑神经元的工作方式差异巨大。把模型当成数学对象去理解,比当成「类脑系统」去理解要可靠得多。

误解三:「学 Transformer 需要先读完一本深度学习教材。」 不必要。一本厚书里大部分内容(CNN 的演进、RNN 的细节、传统的优化算法、各种正则化技巧)和 Transformer 的关系并不深。本系列前八篇会把真正用得到的数学讲清楚,其他的你需要时再去查。先读你正用得着的,再回去补你将来要用的。这是一种「按需学习」的策略,比「打好全部基础再开始」更高效,也更不容易让人在打基础的过程中失去兴趣。

误解四:「Transformer 已经被 Mamba 替代了。」 这种说法在 2024 年开始流传,但截至 2026 年,所有的旗舰 LLM(OpenAI、Anthropic、Google、Meta、Mistral、阿里、字节、深度求索、月之暗面、智谱)的核心都还是 Transformer 或 Transformer 的混合体。Mamba 在某些受限场景上确实有优势,但「全面替代」远没发生。即便发生,理解 Transformer 是理解 Mamba 的前提。Mamba 论文本身的论证方式就是「我们和 Transformer 比怎样怎样」——你不懂 Transformer,连 Mamba 论文都读不懂。

误解五:「读懂 Transformer 之后我就能训自己的大模型了。」 读懂架构和训出大模型之间隔着至少三道工程鸿沟:数据获取与清洗、分布式训练系统、对齐与评测。本系列只覆盖第一道(架构与训练范式的原理),后两道是 llm-infra 与 alignment 系列的事。不要把「我看懂了 attention」误认为「我能训 GPT-4」。一个有用的类比:会画建筑图纸不等于会盖房子,盖房子还需要施工队、材料、监理、合规——这些和图纸是两套技能。

误解六:「中文资料质量不如英文,应该直接读英文。」 不完全对。十年前确实如此,但今天中文社区已有不少高质量内容(本系列、苏剑林的科学空间、机器之心的论文解读、Hugging Face 中文社区等)。中英文同时读才是最高效的策略——中文资料对你母语读者更友好,英文资料能让你跟上最新进展并阅读原 paper。不要因为「应该读英文」的优越感而放弃中文资料

误解七:「这一系列读完就能找到 AI 算法工程师的工作。」 不一定。读完只是「具备了基础」,找工作还需要项目经验、刷题、面试准备、个人作品集。这一系列的角色是「打地基」,不是「找工作的全部」。但反过来说,没有这个地基,很多 AI 岗位面试基础题答不上来,连进入面试流程都困难。把它当成「必要不充分条件」更准确。

误解八:「Transformer 是一个『端到端』的黑盒,里面发生了什么不重要。」 这种态度在「黑盒主义者」中特别常见,认为「反正它能 work,纠结内部机制是浪费时间」。这个观点在小规模工程里有时成立,但在大规模或关键场景里不成立——你不知道里面发生什么,就没法 debug 不预期的行为,没法预测它会在什么场景下失败,没法做有效的安全审查。「能用」和「能信」是两个等级。本系列的全部努力都在让你从前者升到后者。

误解九:「中国搞不出 GPT-4 是因为我们的研究者不行。」 这是一种基于过度简化的判断。事实是:能否搞出 GPT-4 级别的模型是「算力 + 数据 + 工程团队 + 时间 + 战略选择」共同决定的,单独哪一项都不构成瓶颈但合起来就难。中国头部的研究者(包括但不限于 DeepSeek、Qwen、智谱、月之暗面、字节)水平和西方头部团队是同一档次的;DeepSeek-V3 与 R1 的发布证明了这一点。差距更多是工程组织、数据采购、算力可得性方面的,不是「研究能力」。理解这一点对避免不必要的悲观或盲目自信都很重要。


下一步

如果你确认要走完这条路,下一篇是 02 向量与点积的几何直觉,它会让你彻底搞清楚为什么注意力用「点积」衡量相似度,为什么不是欧氏距离、不是绝对值差。

如果你想先看看注意力机制最终长什么样再决定要不要补基础,可以提前扫一眼 13 缩放点积注意力,看一眼那条公式,然后回到 02 开始正式爬坡。这种「先看终点再爬山」的读法对一部分人有效,因为它让你在爬坡过程中始终知道「我在为什么而爬」。

如果你只关心「Transformer 在 LLM 时代具体长什么样」,可以先跳到 38 GPT 系列与 decoder-only 模型 鸟瞰一遍,再回到第一部分补基础。

如果你已经有深度学习基础,想直接进入 attention 主线,可以从 11 朴素注意力 开始。

如果你的目标是工程实现,可以同时打开 Karpathy 的 nanoGPT 仓库作为对照,每读完一篇本系列就回去看对应的代码。这种「概念—实现」交替的读法在工程导向读者身上特别有效。

如果你读完之后还有「我应该从哪里开始我自己的实践」的困惑,给一个简单建议:先把第 02 篇里所有的小例子用 Python + NumPy 算一遍,把代码片段保存起来。这件事看似无趣,但能让你形成「我能动手」的初始信心。从第 02 篇开始,每一篇里都会有可以亲自跑的最小例子;坚持把它们都跑一遍,到第 28 篇时你会发现自己已经在不知不觉中写了一个完整的 nanoGPT 雏形。

最后一句话:不要在准备上花太多时间,开始读吧。后面有 57 篇等着你。


参考文献

论文

书籍

博客与教程

系列相关

工具

额外的扩展资源

致谢

这套系列的写作过程中,我直接或间接参考了非常多前人的工作,无法一一列举。但有几个对本篇影响最大的来源必须感谢:Karpathy 的「Neural Networks: Zero to Hero」系列视频塑造了我讲「从零开始」的方式;Sebastian Raschka 的多篇 Transformer 综述影响了我对历史脉络的整理;苏剑林的博客提供了大量中文表达上的参考;Anthropic 的 Circuits 系列影响了我对「机制可解释性」的态度。我在每一篇引用具体技术细节的地方都会再标注,这里只做总致谢。

如果你是从某个朋友、某个公众号、某个搜索结果点进来的,也欢迎在反馈里告诉我「你是怎么找到这一系列的」——这对我后续的内容分发判断很有帮助。


上一篇系列首页  下一篇02 向量与点积的几何直觉


写完这一篇我自己看了一下字数,意识到「序章」写到这个体量是有点反常的——大部分技术博客的开篇页面只有一两千字。但对这一系列我有一种偏执的执念:第一篇必须把所有的「为什么读这一系列」「读完会怎样」「我作为作者是谁」「你作为读者应该有什么期待」全部讲透,让真正合适的读者认领自己,让不合适的读者及时退出。这件事在第一篇做完,后面 57 篇就可以专注讲技术。

如果你看到这里,恭喜你通过了「序章筛选」。从下一篇开始,我们正式进入数学和神经网络基础。下一篇会从一个看似无关紧要的问题开始:两个向量怎么衡量「相似」?——这个问题的答案,最终会变成 Transformer 公式里那个 \(QK^{\top}\)

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-15 · transformer

【Transformer 与注意力机制】系列总览

从《Attention Is All You Need》出发,把注意力机制、Transformer 架构、训练范式、模型变体、推理工程、可解释性与未来架构串成一条 58 篇的深度博客线。


By .