Transformer 解剖:从 Attention 到推理系统
Transformer 解剖:从 Attention 到推理系统
一本写给工程师的 Transformer 专著:既讲数学,也讲它在 GPU 上每一秒钟在做什么。
打开任何一篇关于大语言模型的论文,最底下的 backbone 大概率都是这张图:
flowchart LR X[输入 token 序列] --> EMB[Embedding + 位置编码] EMB --> B1[Transformer Block × N] B1 --> NORM[Final LayerNorm] NORM --> HEAD[LM Head / 分类头] HEAD --> Y[输出 logits]
GPT、Llama、DeepSeek-V3、Claude、Gemini——它们的差异藏在每个 Block 内部的细节里:注意力是不是分组共享(GQA / MQA)、FFN 是不是稀疏激活(MoE)、位置编码是 RoPE 还是 ALiBi、归一化放前面还是后面(Pre-LN / Post-LN)、激活函数是 GELU 还是 SwiGLU。但「Transformer Block × N」这个骨架本身,已经九年没变过了。
九年没变过的东西,值得彻底解剖一次。
这本书在解剖什么
这本书有三条主轴,对应你看到一段大模型代码时心里会冒出来的三类问题。
第一条:Attention 到底是怎么算的。 Q、K、V 三个矩阵从哪来,缩放点积里的 √d 为什么不能省,softmax 把分布拉宽还是压窄,Multi-Head 是把同一件事做 N 遍还是把 N 件事做一遍。位置编码为什么从 sinusoidal 一路演化到 RoPE,每一次演化解决了什么具体问题。这是数学层。
第二条:Transformer 在工程上长什么样。 Encoder / Decoder / Decoder-only 各自的归宿,BERT 与 GPT 的范式之战,Tokenizer 选 BPE 还是 SentencePiece,词表多大算够用,从零写一个 mini-GPT 训练它写古诗——读者会在这部分动手把整个 Transformer 跑起来。这是工程层。
第三条:推理系统是怎么榨干这台机器的。 这是本书最厚的部分,也是大多数 Transformer 教程不讲的部分。你的显卡在跑一次推理时,时间到底花在了哪里?为什么 Prefill 阶段是计算密集、Decode 阶段是访存密集?KV Cache 凭什么能让一次推理快几百倍、又凭什么会把显存打满?PagedAttention 解决了 KV Cache 的什么病?INT4 量化为什么能省 75% 显存却几乎不掉点?投机解码是怎么用一个小模型替大模型「赌」出加速的?Flash Attention 为什么不是「更聪明的算法」而是「更懂内存层级的实现」?TP / PP / EP 三种并行各自适合多大的模型?
读完这三条主轴,你会建立一种很具体的能力:看到一段大模型代码、一段推理日志、一张 GPU 利用率曲线,能立刻在心里把它对应到 Transformer 的某个组件、某段计算、某个显存区域——而不是停留在「这是个黑盒」。
这本书面向谁
- 想入门 LLM 的工程师:你写过 PyTorch,调用过 OpenAI / Claude API,但每次面对 Attention 的代码就想跳过。本书从 RNN 的瓶颈讲起,把每一个机制都对应到一个具体的工程问题,让你能一行行读懂主流大模型的实现。
- 做 LLM 应用开发的全栈:你用 LangChain / LangGraph / vLLM 搭过应用,想理解为什么同样的 prompt 在不同模型上 latency 差几倍、为什么 KV Cache 命中率决定了 QPS、为什么 batch size 不能无脑加。本书的推理系统部分给你的不是「调参口诀」,而是「能解释每一秒去哪了」的心智模型。
- AI 推理 / MLOps 工程师:你部署过 vLLM、SGLang、TensorRT-LLM,想搞清楚这些框架内部到底差在哪、各自的瓶颈在哪、什么场景该选哪个。本书第五部分的 5 章会带你把推理系统的关键技术(KV Cache、量化、投机解码、Flash Attention、并行策略)一一打开。
- 写过 Transformer 但没读源码的人:你在 Karpathy 的 minGPT 里写过 50 行 Attention,但没看过 vLLM 的 PagedAttention CUDA kernel,没读过 Flash Attention 的论文,对 RoPE 的旋转矩阵推导半懂不懂。本书是你从「会用」到「会看」的桥。
前置知识:本书假设读者熟悉 Python、PyTorch(能看懂 nn.Linear / nn.Module / 反向传播),具备线性代数基础(矩阵乘法、向量内积、softmax),了解神经网络训练的基本概念(损失函数、优化器、梯度下降)。不要求读者读过 Attention 论文,也不要求懂 CUDA 或者并行计算——这些会在用到的章节随讲随用。
目录
第一部分 · 为什么是 Transformer
第二部分 · 注意力机制
- 第 2 章 Self-Attention:Q/K/V 三元组与缩放点积
- 第 3 章 Multi-Head Attention:分头的代数与几何意义
- 第 4 章 位置编码:从 Sinusoidal 到 RoPE
- 第 5 章 Transformer Block:FFN、LayerNorm、Residual 的角色
第三部分 · 架构家族
第四部分 · 从零实现
- 第 8 章 50 行 PyTorch 实现 Self-Attention
- 第 9 章 搭一个 mini-GPT:从零训练能写古诗的小模型
- 第 10 章 Tokenizer 工程:BPE / WordPiece / SentencePiece
第五部分 · 规模化
第六部分 · 推理系统
- 第 14 章 两阶段推理:Prefill 与 Decode 的不同性格
- 第 15 章 KV Cache 工程学:PagedAttention 解决了什么
- 第 16 章 量化实战:INT8 / INT4 / GPTQ / AWQ / FP8
- 第 17 章 投机解码:用小模型加速大模型
- 第 18 章 Flash Attention 与分布式推理:TP / PP / EP
终章
与其他书的关联
- 前置/平行:《PyTorch 源码深度解析》——本书第 8、9 章会动手写 mini-GPT,PyTorch 那本讲的是
nn.Module、autograd、CUDA 核函数派发,能让你把"这一行 PyTorch 代码到底跑了什么"看透一层。 - 强延续:《vLLM 源码深度解析》——本书第六部分(第 14–18 章)讲清楚了 KV Cache、PagedAttention、量化、投机解码、Flash Attention 的设计动机;vLLM 那本讲清楚了它们在一个真实推理引擎里如何被组装。一前一后是天然搭档。
- 强延续:《DeepSeek-V4 架构剖析》——DeepSeek 把 MoE、MLA、FP8 等多项技术拼成了真正的 frontier 模型;本书第 12 章 MoE、第 16 章 FP8 量化是它的前置。
- 平行:《RAG 系统工程》、《LangGraph 设计与实现》——这两本是「在 Transformer 之上盖房子」,本书是「房子的地基」。
- 后续:《Evals:大模型评测体系》——读完这本你会理解为什么不同位置编码、不同上下文长度、不同量化方案会导致评测分数显著漂移;evals 那本告诉你怎么测出来。
引用与版本
本书涉及的论文与代码版本(2026 年 5 月锁定):
| 来源 | 版本 / 提交 |
|---|---|
| Attention Is All You Need | arXiv:1706.03762v7(2023 修订版) |
| GPT-2 / GPT-3 / GPT-4 | OpenAI 公开技术报告 |
| Llama 1 / 2 / 3 | Meta 官方论文与 meta-llama/llama 仓库主分支 |
| DeepSeek V2 / V3 | DeepSeek 官方技术报告 |
| Flash Attention 1/2/3 | Tri Dao et al. 三代论文 |
| vLLM | v0.6.x 主分支 |
| Karpathy nanoGPT | 主分支(用于第 8、9 章实操) |
每一条引用都会在出现处给出文献编号或仓库路径,读者可逐项核对。
版权声明
本书采用 CC BY-NC 4.0 许可协议。转载或引用请署名 杨艺韬 并附原文链接,禁止商业用途。