Transformer 与扩散模型
机制、推导与可交互实验

前言
本书讲的是机制,不是用法。
市面上讲 Transformer 与扩散模型的材料大致分两类:一类告诉你”这是什么、怎么调 API”, 另一类直接给你论文与公式。中间缺了一层——为什么这个式子长这样、哪一项在解决什么问题、 把它拿掉会具体怎么坏。这一层恰恰是想自己动手改模型的人最需要的。
本书面向已具备微积分、线性代数与概率论基础、会写一点 Python,但尚未系统学过深度学习的读者。 每一章从一个真实的技术困境切入,把核心推导在正文里一步步推完, 并用可在浏览器里改参数的交互实验把机制变成能看见、能拨动的东西。
全书地图
这本书讲两条技术线。它们共享同一套零件,但走的是相反的方向。
- 上篇(第 1–4 章)· Transformer:文本进,下一个 token 的概率出。
- 下篇(第 5–8 章)· 扩散模型:噪声进,数据出。
两条线各自在讲什么
上篇把一个 Transformer 拆开看:注意力怎么算(第 1 章)、 一个 Block 里还有什么(第 2 章)、它是怎么训出来和怎么推理的(第 3 章)、 训练完之后能不能从里面读出东西(第 4 章)。
下篇换一个生成范式:先定义一条”把数据逐步破坏成噪声”的前向过程, 再学它的逆过程(第 5 章);然后处理”怎么用更少的步数采样”(第 6 章)、 “怎么让生成听条件的话”(第 7 章)、“文字是怎么进入图像的”(第 8 章)。
两篇的交界在图的底部:第 1 章的多头注意力, 在第 8 章会以交叉注意力的形式再出现一次—— 那时它的 K、V 来自文本,Q 来自图像。 同一个运算,两种用法。 这也是把两篇放进同一本书的理由。
章节依赖
| 章 | 主题 | 需要先读 |
|---|---|---|
| 1 | 注意力:从加权平均到缩放点积 | — |
| 2 | 一个 Transformer Block 的解剖 | 1 |
| 3 | 训练与推理的两副面孔 | 1、2 |
| 4 | 注意力里能读出什么 | 1、2 |
| 5 | 从加噪到去噪:扩散的数学骨架 | 1、2(第 3、4 章不必读) |
| 6 | 训练目标与采样器 | 5 |
| 7 | 条件生成:CFG 到底是什么 | 5、6 |
| 8 | 文字如何进入图像 | 5、6、7;以及第 1 章的注意力 |
第 4 章是旁支:它不依赖第 3 章,第 5 章也不需要它。 想尽快进下篇,读完第 1、2 章就可以跳过去。
三条阅读路线
只关心大语言模型:第 1 → 2 → 3 → 4 章,读完附录 B(术语表)即可。 这条路线回答的是”一个 GPT 到底在做什么”。
只关心图像生成:第 1 → 2 → 5 → 6 → 7 → 8 章。 第 1、2 章不能跳——第 8 章的交叉注意力就是第 1 章的多头注意力, 而第 7 章的 CFG 要用第 5、6 章的采样公式。 只读下篇会卡住,这不是保守说法。
完整读一遍:按顺序 1 → 8。 第 4 章读起来最轻松,可以放在任何位置当作休息。
每一章开头都有一张”本章地图”
从这一版起,每一章的第一段都是一个四行的定位块:
你在这里 · 本章解决 · 前置 · 读完能做
它的作用是让你在任何一个地方翻开书,都知道自己站在整张图的哪一格。 如果你只记得住一件事,记住这个:这本书的每一节,都能在这张图上找到位置。
怎么用这本书
- 交互实验:每章 2–3 个,是独立的 HTML 文件(
experiments/目录), 可单独打开、全屏投影。HTML 版书里已内嵌;PDF 版里是同一实验的静态快照 + 本地文件路径。 - 配套 notebook:
notebooks/目录。书里给出可运行的最小实现, notebook 里是可改、可跑的完整版本,全部能在纯 CPU 的笔记本上跑完。 - 推导的分工:正文推完关键结论;冗长的完整展开(ELBO 逐项、重参数化证明、 score matching 的等价性)放在附录 A,正文只给路标。
一点约定
书里的每一个量化断言都应当是可复现的。凡是给出具体数值的地方, 都注明了它的来源(实测、论文、还是本机预计算)。 如果发现哪一处对不上,那是错误,请以你的复现结果为准。