← 返回首页
彩蛋 01 · 前世今生
Transformer 的前世今生:一篇翻译论文,怎么变成全 AI 的地基
—— 你学的这条线(bigram → 注意力 → GPT)到底打哪儿来。
它本来只是想把翻译做快一点
2017 年,Google 一帮人发了篇
《Attention Is All You Need》。
当时的痛点很"工程":做翻译用的
RNN/LSTM
必须一个词一个词顺着算 —— 慢、没法并行、还记不住长句。他们想要个能并行、又能抓长距离的东西。
注意力机制本身 2014 年就有人用了。他们真正"狠"的一招是:
干脆把循环结构整个删掉,只留注意力 —— 论文标题
Attention Is All You Need(你只需要注意力)还带着点调皮的炫耀。
实验跑的就是英→德、英→法翻译,压根没想着"统一全 AI"。
🎯 会心一笑点:你在 02_attention.py 里写的那个"只看过去、不许偷看未来"的因果掩码,
正是这篇论文为了"预测下一个词"埋下的种子;而你 Step 2 那"一次矩阵乘法搞定一整句",
就是它取代 RNN"逐词顺算"的并行威力。
署名 8 个人,后来几乎全部"飞升"
论文署名 8 位作者,全在 Google,还特意加了个著名脚注:"贡献均等,排名随机"。
如今这 8 人几乎个个开公司或进顶级团队 —— AI 圈最豪华的一次"师门散叶":
| 作者 | 后来去了哪(大致) |
| Ashish Vaswani | 创办 Adept → 再创 Essential AI |
| Noam Shazeer ★ | 创办 Character.AI → 2024 被 Google 重金请回,联合领导 Gemini |
| Niki Parmar | Adept → Essential AI(和 Vaswani 一路) |
| Jakob Uszkoreit | 创办 Inceptive(用 AI 设计 mRNA / 生物药) |
| Llion Jones | 创办 Sakana AI(东京) |
| Aidan N. Gomez | Cohere CEO(头部大模型公司;当年他还是实习生) |
| Łukasz Kaiser | 进 OpenAI(做推理模型 o 系列那条线) |
| Illia Polosukhin | 创办 NEAR Protocol(区块链) |
光这 8 人后来创立/主导的公司,估值加起来好几百亿美金,方向还五花八门:大模型、生物、区块链、日本 AI……
无心插柳,还是本该如此?——两个都沾边
无心插柳的一半:他们解的是个很具体的"翻译提速"问题,没预见它会变成全 AI 的地基 ——
连作者后来都公开说"没想到能到这规模"。真正引爆威力的,是后来 GPT 把它往大了 scale。
本该如此的一半:这也不是瞎猫碰死耗子。他们是一线顶尖研究员,踩在一个真实的核心瓶颈上
(并行 + 长距离依赖),给的答案又足够干净通用 —— 好的抽象往往如此:为翻译而造,却能解一切。
所以那句"活该他们当大牛",算实至名归。
一张家谱:你学的是哪一栋楼
关键一句:Transformer 是架构(地基);BERT 和 GPT 是盖在上面的两栋楼。
不是"Transformer vs BERT" —— BERT 的全名里就带着 Transformer。
🏛 理解楼 · BERT 系
2018, Google. 用 Transformer 编码器那半边;完形填空式训练(能看左右两边)。
擅长理解 / 搜索 / 打标签,不擅长生成。2018–2021 统治 NLP,Google 搜索就用它。
百度 文心 ERNIE 1.0(2019)也站这栋(知识增强的编码器)。
🏗 生成楼 · GPT 系
2018, OpenAI. 用 Transformer 解码器那半边;预测下一个词(只看过去,带因果掩码)。
擅长生成 / 续写 / 对话。ChatGPT 这波爆发就在这栋 —— 也是你这套教程走的路线
(bigram → 注意力,一直在强调"只看过去")。
- ~2017前RNN / LSTM 时代:逐词顺算,慢、记不住长句。
- 2017Transformer 诞生(本是翻译论文)—— 地基。
- 2018分叉:GPT-1(生成楼)与 BERT(理解楼)同年现身,都建在 Transformer 上。
- 2019百度 文心 ERNIE 1.0(理解楼,知识增强);BERT 进 Google 搜索。
- 2020–22Diffusion(扩散)崛起做图像 —— 本是另一套生成范式(从噪声一步步去噪),
早期骨干是卷积 U-Net。
- 2022→ChatGPT 引爆生成楼;Diffusion 也改用 Transformer 当骨干(DiT:Sora、SD3、FLUX)。
- 2023百度 文心一言(ERNIE Bot)切到生成楼,对标 ChatGPT。
🧩 连 Diffusion 都来借它:扩散是"怎么生成"的配方,Transformer 是"用什么网络干活"的骨架,
两者本是正交的两层。早期 Diffusion 配卷积(U-Net),如今主流配 Transformer(DiT)——
强到别的范式都来拿它当钢筋,这就是它为什么是这个时代的地基。
彩蛋 02 · 真实训练日志
别人的训练日志:12.75T token 那一年,到底出过什么岔子
—— 你在第 6 章看到的 loss 曲线是一条平滑的余弦。真实的大规模训练不长这样。
先对一下量级
| 本仓库(第 6 章) | Marin 8B |
| 参数量 | 124M | 8B(约 65 倍) |
| 训练数据 | FineWeb-Edu 10B token | 12.75T token(约 1275 倍) |
| 硬件 | 单卡 RTX 4090 | TPU v5e-256 ×2 起步,中途换到 v4-2048 |
| 训练过程 | 19073 步,一条余弦退火跑到底 | 五个阶段:中途换数据、换硬件、把学习率降下去又烧回来 |
数据量差着 1000 倍,零件却是同一套:你手搓过的
RoPE、
AdamW、
warmup + 退火,在 8B 上一个不多一个不少。差别在于:规模一上来,
每个零件都会以小模型上看不到的方式出问题。
日志里才有、教程不写的三件事
① 位置编码的配置默默错了很久。训练跑出去一大截之后才发现,用的还是 Llama 2 那一版的旋转位置编码设置,
中途才换成 Llama 3 式。你在第 12 章能一键开关的那个零件,在真实项目里是个会静默错下去的配置项:
loss 照常下降,不会有任何报错提醒你。
② 学习率降到很低,loss 反而开始往上爬。退火阶段本该是最稳的时候,训练 loss 却慢慢抬头。
查下去,原因是输出层 lm_head 的权重范数在膨胀,加了一项系数 1e-4 的 z-loss 才压住。
"学习率越小越安全"这个直觉在这里不成立。
③ 换硬件之后学习率怎么跟着改。batch size 变大 k 倍,学习率乘 √k。
这是那种不会写进任何教程、但每次扩机器都要用一次的经验公式。
真实预训练是分阶段的,不是填好超参按回车
它们给每个阶段起了动物名,一条曲线被切成五段:
- Kestrel0 → 2.7T token。DCLM 数据配方,学习率 1e-3。
- Ocelot2.7T → 3.78T。换到 v4-2048,学习率提到 1.7e-3。
- Jellyfish3.78T → 4.78T。第一次冷却,学习率退到 1.7e-4。
- Phoenix4.78T → 11.1T。学习率重新烧回 1.7e-3,数据换成 Nemotron-CC。切换那一刻 loss 短暂尖峰,随后回落到比之前更低。
- Starling11.1T → 12.75T。第二次冷却到 1.7e-5,batch 提到 16Mi token/步。
本仓库那组"300M vs 10B、唯一变量是数据量"的对照,在这里被拉长成一年:数据配方、学习率、批大小、硬件,
全都是跑的过程中改的。看完这份日志再回头看自己那条平滑的余弦曲线,你会知道它平滑是因为规模小,
不是因为训练本该如此。
🔭
这份日志出自哪:Marin,2024 年在斯坦福发起、现由 Open Athena 主导的开放训练项目,
把代码、权重、数据来源和实验记录(包括没跑通的方向)全部公开,目前在训一个 535B 的
MoE
(
激活参数 23B,18T token)。
它用 JAX + TPU,不是本仓库的 PyTorch,所以
值得看的是过程,不是代码。
彩蛋 03 · 拆两颗新模型
两颗 2026 年的模型,拆开对照本仓库第几章
Qwen3.8-Flash-Next(2026-08-26 发布)与 DeepSeek-V4-Flash(2026 preview 报告)。每个零件标出出处,再标出本仓库哪一章讲过它。
零件对照表
两颗都是 MoE,
表里逐行列出 MoE 之外的注意力、记忆表、残差、优化器等零件。灰色小字是出处:「报告」指各自的技术报告,「HF 卡」指 Hugging Face 模型卡。
| 零件 | Qwen3.8-Flash-Next | DeepSeek-V4-Flash | 本仓库 |
| MoE 专家配置 |
总参 125B,每 token
激活 6B
报告
512 个专家,每 token 选 10 个,另有 1 个共享专家 config.json |
总参 284B,激活 13B;256 个 routed 专家 + 1 个共享专家,每 token 选 6 个;前 3 个 MoE 层用 Hash routing
报告 §4.2.1 |
第 11 章 · MoE 路由器 + top-k;共享专家在该页折叠段 |
| 注意力 |
48 层 = 12 × (3 层 Gated DeltaNet + 1 层 QSA),每层后接 MoE HF 卡
QSA 在持续预训练阶段替换原来的全注意力层:key 每 r=4 个 token 平均池化成一块,每个 query 在 K=2048 token 预算内选最多 512 块;索引器是 MQA,4 个 query 头共享 1 个 key 头
报告 §2.1.2 |
CSA:每 m=4 个 token 的 KV 压成一条,再做 DeepSeek Sparse Attention,Flash 的 top-k=512;HCA:每 m′=128 个 token 压成一条,对压缩条目做稠密注意力;另有 128 token 滑窗和 attention sink
报告 §2.3、§4.2.1
Flash 前两层只用滑窗,之后 CSA / HCA 交替 config.json
索引器注意力用 FP4 计算 报告 §2.3;KV 中带
RoPE
的维度存 BF16,其余维度存 FP8 报告 |
第 13 章 · 线性注意力(Gated DeltaNet、3:1 混合)
第 14 章 · 稀疏注意力(NSA / DSA / CSA / QSA)
第 12 章(MQA 是 GQA 的极端情况;RoPE)
第 17 章 · 量化(FP4 / FP8) |
| 额外记忆表 |
N-gram Embedding,只有 1 层,放在第 2 层;以每个 token 结尾的 bigram / trigram 作 key 查表;表参数 51B,放在主机内存,异步预取
报告摘要、§2.3;HF 卡 |
V4 报告全文没有出现 Engram 或 n-gram 记忆表;前 3 个 MoE 层用的 Hash routing 是专家路由方式,与记忆表是两回事
报告 §4.2.1 |
第 15 章 · N-gram 查表 |
| 多 token 预测 |
附带 4B 参数的 MTP 模块 HF 卡 |
MTP depth = 1 报告 §4.2.1 |
第 16 章 · MTP 与投机解码 |
| 残差 |
Gated Residual:残差流拓宽成 4 支,读出走逐元素门控,去掉分支混合矩阵 Hres;Tab.5 与 mHC 静态、动态两版做了对照
报告 |
mHC,nhc = 4,tmax = 20 报告 §4.2.1
mHC 用 Sinkhorn-Knopp 迭代 20 次,把 Hres 投影成双随机矩阵(非负,行和、列和都为 1)
mHC §4.1–4.2 |
本仓库未手搓 本仓库用的是单支
残差
x + 子层(x),见 第 3 章 |
| 优化器 |
Muon:注意力 q/k/v/o、GDN 输入输出投影、专家 fc1/fc2、n-gram 层 k/v 投影
AdamW:输入 embedding、输出头、router、GR 低秩投影;n-gram 表用 Adam,不加 weight decay
Newton-Schulz 8 步 报告 §3.1 |
Muon:大多数参数;AdamW:embedding、预测头、RMSNorm 权重
Newton-Schulz 共 10 次:前 8 次系数 (3.4445, −4.7750, 2.0315),后 2 次 (2, −1.5, 0.5)
报告 §2.4、§4.2.2 |
本仓库未手搓 Muon 全称 MomentUm Orthogonalized by Newton-Schulz:用 Newton-Schulz 迭代把动量矩阵近似正交化后再更新。本仓库只用
AdamW,见 第 6 章 |
| 上下文 |
报告在 1M 上下文下测 QSA:kernel 级 prefill 7.6×、decode 4.9× 报告 §2.1.2
max_position_embeddings = 262,144 config.json |
1M 报告摘要
同报告:V4-Pro 单 token 推理 FLOPs 为 V3.2 的 27%,KV cache 为 V3.2 的 10% |
第 5 章(KV-cache 的来历)
第 13、14 章(长上下文下的注意力代价) |
表里的 QSA 层在 config.json 里是 24 个 query 头配 2 个 KV 头(head_dim 256),
也就是第 12 章的
GQA。
两家都把「每 token 算多少」和「一共存多少」分开了
第一层拆分是 MoE,两家相同。Qwen3.8-Flash-Next 每 token 激活 6B / 125B,约 4.8%;
DeepSeek-V4-Flash 激活 13B / 284B,约 4.6%。没被选中的专家仍占存储,只是不参与这个 token 的计算。
Qwen 另外把一部分参数挪出加速器,并减少全注意力层。51B 的 n-gram 表放在主机内存,每个 token 只按自己结尾的短 n-gram 取表项。
报告 Tab.8 在固定总参数下扫分配比例:n-gram 占 25% 时 loss 最低,下游指标没有随之改善。
注意力这边,48 层里 36 层是 Gated DeltaNet,状态矩阵的形状固定,不随上下文变长;
剩下 12 层 QSA 每个 query 最多看 2048 个 token。
DeepSeek 没有挂记忆表,压缩做在 KV 上。每层都保留注意力,但 CSA 把 4 个 token 的 KV 合成 1 条、HCA 把 128 个合成 1 条,
CSA 再只取 top-512;位宽方面,索引器用 FP4,KV 里不带 RoPE 的维度用 FP8。
报告给出的 Pro 版对比是 KV cache 为 V3.2 的 10%。
DeepSeek 在 Engram 论文里做过 n-gram 记忆表(Engram-27B 插在第 2、15 层),V4 报告里没有出现这个模块。
📚
出处:表中「报告」对 Qwen 指其技术报告
On the Design of Qwen3.8-Next Architecture,
对 DeepSeek 指 V4 报告(arXiv 2606.19348,2026 preview 版本);节号、表号取自原文。
第 13–17 章页面讲这些零件的机制。