很多读者第一次接触 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 把同样的机制推广到「序列内部的每一个位置之间」时,「注意力」这个名字就变得抽象——你很难再说一个词「在注意」另一个词。
真正发生的事情,剥到最底,是这样三件:
- 把每一个 token 用一个向量表示;
- 用「点积」衡量任意两个向量之间的相关性;
- 把所有相关性归一化成权重,对值向量做加权求和。
这三件事里,每一件都是高中数学水平就能完全理解的。「注意力」之所以让人觉得神秘,是因为读者不熟悉前两件事。你只要把「向量」「点积」「加权求和」这三个东西熟练到不需要任何思考的程度,回头看 attention 公式,就只剩一个工程问题:怎么把这三件事写成 GPU 友好的矩阵乘法。
所以前八篇的策略是:先把这三件事和它们的延伸(矩阵乘法、softmax、概率分布、梯度)打到能「肌肉记忆」的程度。等你看到 attention 公式时,每一个符号都不再是新东西。
三、这套系列的结构
整个系列共 58 篇,分八部分。
下面把每一部分的「目的」和「学完之后你能干什么」讲清楚。
3.1 第一部分(01–08):数学与神经网络基础
这是你正在读的部分。它的目的是让一个没有任何深度学习背景的读者,能够在不查资料的情况下读懂第二部分的注意力公式。具体来说:
- 01:你正在读的这一篇,讲清楚为什么要从这里开始;
- 02:向量与点积的几何直觉,回答「为什么注意力用点积衡量相似度」;
- 03:矩阵乘法,回答「为什么神经网络的核心运算是矩阵乘法」;
- 04:从函数到神经网络,回答「神经网络究竟是个什么东西」;
- 05:激活函数与非线性,回答「ReLU、GELU、Swish 各自的故事」;
- 06:Softmax 与概率分布;
- 07:交叉熵与对数似然;
- 08:梯度下降的直觉。
读完这八篇,你不会成为算法工程师,但你会有一个牢固的、可以挂载新概念的脑内框架。后面再读 attention 时,你会发现「噢这就是 03 篇里那个矩阵乘法 + 06 篇里那个 softmax + 02 篇里那个点积」。
3.2 第二部分(09–18):从 RNN 到注意力
这部分讲清楚 Transformer 之前的世界长什么样、为什么不够好,以及注意力机制是怎么一步步从「朴素相似度加权」推到 multi-head self-attention 的。
- 09–10:RNN、LSTM、GRU 的核心思想与三个根本局限(并行性、长程依赖、梯度);
- 11:朴素的「相似度加权求和」,没有 Q/K/V 的版本;
- 12:为什么需要 Q、K、V 三个不同的投影矩阵,每一个解决什么问题;
- 13:缩放点积注意力 scaled dot-product attention,重点讲为什么除以 \(\sqrt{d_k}\);
- 14:Softmax 在 attention 里的角色与边界;
- 15:自注意力(self-attention)vs 交叉注意力(cross-attention);
- 16:多头注意力 multi-head attention,为什么是「多头」而不是「一个大头」;
- 17:注意力的复杂度分析,\(O(n^2)\) 究竟出在哪里;
- 18:注意力的局限性预告,为后面 41–42(FlashAttention、KV Cache)和 55–58(Mamba 等)埋伏笔。
读完这一部分,你能在脑子里独立推导出 attention 公式,并能向一个完全不懂的人讲清楚每一步的动机。
3.3 第三部分(19–28):《Attention Is All You Need》逐段精读
这是整个系列里最「学术」的一部分。我们把 Vaswani 等人在 2017 年发表的原论文从摘要到结论一段一段读下来,每一段都对应到第二部分讲过的某个概念上。这一部分的读法是「论文 + 我的注释」交替进行,读完你会真切地理解一篇影响最大的论文是怎么写的、哪些设计后来被证实是关键、哪些设计后来被替代。
- 19:摘要 + 引言;
- 20:模型整体结构(图 1);
- 21:encoder 与 decoder 的区别;
- 22:注意力子层;
- 23:FFN 子层(position-wise feed-forward);
- 24:残差连接与 LayerNorm;
- 25:位置编码 positional encoding,正弦余弦的几何动机;
- 26:训练设置(Adam、warmup、label smoothing);
- 27:实验结果分析;
- 28:「我们将在未来工作中……」回看作者预测,哪些已被实现、哪些被超越。
3.4 第四部分(29–36):训练范式
光有架构不够,模型怎么从「会算矩阵」变成「会聊天」需要训练范式。
- 29:预训练(pretraining)的本质是什么;
- 30:自回归(autoregressive)vs 自编码(autoencoding);
- 31:监督微调 SFT;
- 32:人类反馈强化学习 RLHF;
- 33:直接偏好优化 DPO 与近期的简化方案;
- 34:Scaling Laws,2020 年 Kaplan 论文与 2022 年 Chinchilla 论文;
- 35:参数高效微调 LoRA、QLoRA;
- 36:从基础模型到对话模型的全流程。
3.5 第五部分(37–47):模型变体
同一个 Transformer 骨架,在不同方向上分叉出来:
- 37:BERT 与 encoder-only 模型;
- 38:GPT 系列与 decoder-only 模型,重点放 GPT-2、3、4 的架构演进;
- 39:T5、BART 与 encoder-decoder;
- 40:LLaMA 系列的工程选择(RoPE、SwiGLU、GQA、RMSNorm);
- 41:Mixture of Experts(MoE)与稀疏化;
- 42:Vision Transformer(ViT);
- 43:CLIP 与对比学习;
- 44:Diffusion Transformer(DiT);
- 45:多模态融合的几种主流路径;
- 46:长上下文模型(Long Context)的工程权衡;
- 47:代码模型与代理模型的特殊设计。
3.6 第六部分(48–51):推理工程
模型训好之后,怎么把它跑起来:
- 48:从 forward pass 到 logits 到 sample,一个 token 怎么生成出来;
- 49:KV Cache 的原理与工程实现;
- 50:FlashAttention 的核心 trick;
- 51:量化(INT8、INT4、FP8)与投机解码 speculative decoding。
这部分会和 llm-infra 系列有一些重叠,原则是:本系列讲原理,工程细节引用 llm-infra。
3.7 第七部分(52–54):可解释性
打开盒子看里面:
- 52:注意力可视化的有效性与边界;
- 53:Probing 与 representation analysis;
- 54:Anthropic 的 mechanistic interpretability 与「电路」的概念。
3.8 第八部分(55–58):反思与未来
- 55:\(O(n^2)\) 是不是绕不开的;
- 56:Mamba、RWKV、RetNet 的核心思路对比;
- 57:混合架构(hybrid);
- 58:Transformer 之后会是什么。
四、谁该读这套系列,谁不该读
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 读完之后你仍然不能做的事
我必须诚实地说,不是:
- 你不能直接在工业界训练一个 GPT-4 级别的模型。这件事需要的是几千张 H100、几十 PB 数据、几个月时间和几十个工程师的协作,本系列教不会你这种规模的工程;
- 你不能在不写代码、不跑实验的前提下就掌握深度学习。本系列是「读」的内容,但你必须在读的过程中至少把第三部分末尾的最小实现自己跑一遍;
- 你不能用本系列代替 CUDA 编程、代替分布式训练、代替推理服务化的学习。这些是 llm-infra 的范畴;
- 你不能用本系列预测下一篇旗舰论文是什么。它给你的是地基,不是水晶球;
- 你不能期待这套系列把所有变体都讲完。比如 Vision-Language Model 的具体训练细节、强化学习里 PPO 的算法细节、扩散模型的 score-based 推导,本系列只会讲到「关键直觉」,更深的部分需要你按线索去查别的资料。
把上面两份清单合在一起看:这套系列要做的事是「把 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 Softmax 与 48 推理过程 里展开。
第六步,自回归循环(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
或更新版本。推荐使用 conda 或 uv
管理虚拟环境。基础包:
numpy:所有数值计算的底座;matplotlib:画图,方便理解函数、向量、概率分布;torch(PyTorch):从第 19 篇开始用,CPU 版本就行;tiktoken:从第 29 篇开始用;transformers(Hugging Face):从第 37 篇开始用,主要为了下载预训练模型。
整个环境安装大概占 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 篇。每一篇发布后会进入「公开修订期」,根据读者反馈持续修正。重大修改会在篇末加「修订记录」。
我对这套系列的承诺是:
- 不删帖。一旦发布,文章不会被悄悄删除或整体替换。需要修改时会保留修改记录。
- 不软文。本系列不接受任何形式的赞助,不会在内容里推荐任何收费课程或产品(除非那是被引用的客观工具,例如 PyTorch、Hugging Face 这种事实上的开源标准)。
- 不付费墙。所有内容免费阅读,源文件(markdown + svg)也开源在仓库里。
- 响应反馈。你提出的问题,能回答的会在评论区回答;指出的错误,会修正并致谢;提出的改进建议,能采纳的会采纳。
这些承诺不是道德高地,是我自己作为读者希望从「教学性内容」里得到的东西。把它写出来是给自己一个外部约束。
如果某一天本系列因为不可抗力暂停或终止,我会在系列首页明确公告。读者投入了时间,不应该被悄悄丢下。
关于授权。本系列采用 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 篇等着你。
参考文献
论文
- Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin. “Attention Is All You Need.” NeurIPS, 2017. 整个系列围绕的核心论文。
- Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio. “Neural Machine Translation by Jointly Learning to Align and Translate.” ICLR, 2015. 「注意力机制」第一次出现的论文。
- Ilya Sutskever, Oriol Vinyals, Quoc V. Le. “Sequence to Sequence Learning with Neural Networks.” NeurIPS, 2014. seq2seq 的原始论文,理解为什么需要 attention 的前置。
- Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.” NAACL, 2019. encoder-only 路线的代表作。
- Alec Radford et al. “Improving Language Understanding by Generative Pre-Training.” OpenAI Tech Report, 2018. GPT-1 的原始报告。
- Tom B. Brown et al. “Language Models are Few-Shot Learners.” NeurIPS, 2020. GPT-3 论文,第一次系统讨论 in-context learning。
- Jared Kaplan et al. “Scaling Laws for Neural Language Models.” arXiv:2001.08361, 2020. 第一篇系统讨论参数、数据、算力关系的论文。
- Jordan Hoffmann et al. “Training Compute-Optimal Large Language Models.” (Chinchilla) arXiv:2203.15556, 2022. 修正了 Kaplan 论文里关于参数与数据配比的结论。
- Long Ouyang et al. “Training language models to follow instructions with human feedback.” NeurIPS, 2022. (InstructGPT) RLHF 的代表论文。
- Albert Gu, Tri Dao. “Mamba: Linear-Time Sequence Modeling with Selective State Spaces.” arXiv:2312.00752, 2023. 「Transformer 之外」的代表工作之一。
- Rylan Schaeffer, Brando Miranda, Sanmi Koyejo. “Are Emergent Abilities of Large Language Models a Mirage?” NeurIPS, 2023. 对涌现能力的批判性讨论。
书籍
- Christopher Olah 在 distill.pub 上的系列博客,特别是 “Attention and Augmented Recurrent Neural Networks”(2016)。注意力机制的最早期可视化解读。
- Sebastian Raschka. Build a Large Language Model (From Scratch). Manning, 2024. 工程视角的 nanoGPT 级实现教科书。
- Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning. MIT Press, 2016. 经典深度学习教科书,前几章可作为本系列前八篇的扩展阅读。
- Aurélien Géron. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. O’Reilly, 3rd ed., 2022. 工程师友好的机器学习入门,第二部分覆盖深度学习。
- Yoav Goldberg. Neural Network Methods for Natural Language Processing. Morgan & Claypool, 2017. Transformer 之前一代 NLP 教材,对理解「祖先」有用。
博客与教程
- Jay Alammar. “The Illustrated Transformer.” 2018. https://jalammar.github.io/illustrated-transformer/。可视化 Transformer 的代表作之一。
- Andrej Karpathy. “Let’s build GPT: from scratch, in code, spelled out.” YouTube/karpathy.ai。从零写 nanoGPT 的视频,强烈推荐。
- Andrej Karpathy. “Neural Networks: Zero to Hero” 系列。从感知机到 GPT 的完整教学。
- Lilian Weng. “The Transformer Family.” https://lilianweng.github.io。Transformer 变体的英文综述。
- Lilian Weng. “Attention? Attention!” 2018. 注意力机制的英文系统综述。
- 苏剑林. 「科学空间」博客 https://kexue.fm。中文社区里关于 attention、位置编码的高质量分析。
- 3Blue1Brown. “Neural networks” YouTube 系列。可视化角度理解神经网络。
系列相关
- 本博客 llm-infra 系列:Transformer 训练与推理工程。
- 本博客 量化交易系列:本系列在写作风格上的参考之一。
- 本博客 分布式系统系列:理解大规模训练时绕不开的工程基础。
工具
- PyTorch https://pytorch.org。本系列默认使用的深度学习框架。
- NumPy https://numpy.org。前 8 篇所有数值例子用 NumPy 都能跑。
- Hugging Face Transformers https://huggingface.co。事实上的 Transformer 模型库。
- nanoGPT https://github.com/karpathy/nanoGPT。Karpathy 维护的最小可读 GPT 实现。
- tiktoken https://github.com/openai/tiktoken。OpenAI 的分词器。
- llm.c https://github.com/karpathy/llm.c。Karpathy 用 C 实现 GPT 训练的项目,理解底层很有帮助。
- vLLM https://github.com/vllm-project/vllm。主流开源推理引擎,本系列后期会引用其工程实现。
额外的扩展资源
- Stanford CS224N: Natural Language Processing with Deep Learning(公开课)。每年都有更新版的视频在 YouTube。
- Stanford CS336: Language Modeling from Scratch(2025 春季新课)。Percy Liang 主讲,是目前最系统的 LLM 课程之一。
- Stanford CS25: Transformers United(系列讲座)。每学期请最前沿的研究者讲一节,跨度从 2021 到现在。
- The Annotated Transformer http://nlp.seas.harvard.edu/annotated-transformer/。一份非常有名的「论文 + 代码 + 注释」三合一资料。
- Anthropic Transformer Circuits https://transformer-circuits.pub。可解释性方向最重要的资源之一。
- 苏剑林「科学空间」https://kexue.fm。中文社区里 Transformer 相关公式推导写得最好的博客之一。
- Sebastian Raschka 的「Ahead of AI」https://magazine.sebastianraschka.com。英文长文形式的 LLM 进展综述,可读性极佳。
- Lilian Weng 的 Lil’Log https://lilianweng.github.io。OpenAI 研究者的个人博客,每篇都接近综述质量。
致谢
这套系列的写作过程中,我直接或间接参考了非常多前人的工作,无法一一列举。但有几个对本篇影响最大的来源必须感谢:Karpathy 的「Neural Networks: Zero to Hero」系列视频塑造了我讲「从零开始」的方式;Sebastian Raschka 的多篇 Transformer 综述影响了我对历史脉络的整理;苏剑林的博客提供了大量中文表达上的参考;Anthropic 的 Circuits 系列影响了我对「机制可解释性」的态度。我在每一篇引用具体技术细节的地方都会再标注,这里只做总致谢。
如果你是从某个朋友、某个公众号、某个搜索结果点进来的,也欢迎在反馈里告诉我「你是怎么找到这一系列的」——这对我后续的内容分发判断很有帮助。
上一篇:系列首页 下一篇:02 向量与点积的几何直觉
写完这一篇我自己看了一下字数,意识到「序章」写到这个体量是有点反常的——大部分技术博客的开篇页面只有一两千字。但对这一系列我有一种偏执的执念:第一篇必须把所有的「为什么读这一系列」「读完会怎样」「我作为作者是谁」「你作为读者应该有什么期待」全部讲透,让真正合适的读者认领自己,让不合适的读者及时退出。这件事在第一篇做完,后面 57 篇就可以专注讲技术。
如果你看到这里,恭喜你通过了「序章筛选」。从下一篇开始,我们正式进入数学和神经网络基础。下一篇会从一个看似无关紧要的问题开始:两个向量怎么衡量「相似」?——这个问题的答案,最终会变成 Transformer 公式里那个 \(QK^{\top}\)。
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【Transformer 与注意力机制】系列总览
从《Attention Is All You Need》出发,把注意力机制、Transformer 架构、训练范式、模型变体、推理工程、可解释性与未来架构串成一条 58 篇的深度博客线。
【Transformer 与注意力机制】03 矩阵乘法的两种视角
把矩阵乘法掰开成两种等价但风格不同的视角——『行 × 列』的点积视角和『列的线性组合』视角,最终落到 QK^T 的形状分析。
【Transformer 与注意力机制】10 RNN 的根本局限:为什么需要 Transformer
RNN 三难(长程依赖、梯度稳定、训练并行)的系统分析;attention 如何作为补丁逐步把 RNN 推向极限;Vaswani 2017 抛弃循环的范式革命
15|Scaled Dot-Product:那个 √d_k 是怎么来的
很多人第一次读 Vaswani 2017 的公式时,都会卡在那一个 √dk 上。