惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
H
Help Net Security
G
Google Developers Blog
D
Docker
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
T
The Blog of Author Tim Ferriss
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
I
InfoQ
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
Google DeepMind News
Google DeepMind News

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

国密算法与国密 TLS 系列索引 【系统架构设计】架构质量属性:不只是"高可用高性能" 【系统架构设计百科】告警策略:如何避免"狼来了" 【系统架构设计】CQRS:读写分离的架构哲学 【系统架构设计】空间架构:极端扩展场景的解法 【系统架构设计】微服务架构深度审视:优势、代价与适用边界 【系统架构设计】扩展性原理:水平、垂直与对角扩展 【系统架构设计】无状态设计:扩展的第一步也是最难的一步 【系统架构设计】缓存架构:从本地到分布式的多级缓存体系 【系统架构设计】管道与过滤器:Unix 哲学的架构表达 【系统架构设计】复杂性管理:架构的核心战场 【系统架构设计】消息队列架构:异步解耦的设计与陷阱 【系统架构设计】CDN 架构:全球加速的设计原理 【系统架构设计】连接池设计:被忽视的性能杀手 【系统架构设计】弹性设计模式:熔断器、舱壁与超时 【系统架构设计】高可用设计模式:冗余、故障转移与仲裁 【系统架构设计】容量规划:从拍脑袋到数据驱动 【系统架构设计】数据库扩展:分库分表的工程实践与替代方案 【系统架构设计】SLO 工程:可靠性的量化管理 【系统架构设计】性能建模:用数学思维分析系统瓶颈 【系统架构设计】混沌工程:主动验证系统的韧性 【系统架构设计】零拷贝与内存映射:数据搬运的极致优化 【系统架构设计】线程模型:从 thread-per-request 到协程 【系统架构设计】容灾架构:多活与灾备设计 【系统架构设计】数据库性能模式:索引、查询与连接管理 【系统架构设计】数据建模:从关系范式到文档模型的真实权衡 【系统架构设计】吞吐量优化:批处理、流水线与并发模型 【系统架构设计】流处理架构:从批处理到实时的范式迁移 【系统架构设计】搜索引擎架构:倒排索引之上的系统设计 【系统架构设计】时序数据架构:监控与 IoT 的存储设计
【Transformer 与注意力机制】19|《Attention Is All You Ne...
2026-04-15 · via 土法炼钢兴趣小组的算法知识备份

〇、为什么要专门花一篇讲背景

读论文的人有两类:一类把它当成静态的知识封装,吸收完结论就行;另一类把它放回它诞生的时代里看,去理解作者当时面对的是什么问题、回避了什么问题、解决到了哪一步、又在哪些地方不知不觉走运。

《Attention Is All You Need》是后一种值得反复读的论文。它在 2017 年发表时,没有人——包括它的八位作者——预料到它会成为接下来七年里所有大语言模型、所有图像生成模型、所有多模态模型的共同祖先。它当时只是一篇做机器翻译的工程论文,标题里的「all you need」是一句带有挑衅意味的玩笑。它的实验只跑到了 BLEU 28.4 这个数字、训练时间也只是 3.5 天 8 卡 P100,规模放在今天连一篇 demo 都谈不上。

但正是这篇看似平凡的论文里,藏着今天我们所知的大模型时代的全部基因。本篇不教 attention 是什么(前面 18 篇已经说尽),也不重述论文公式,而是去做一件别的事:把这篇论文放回 2017 年的语境里,看它解决的是什么问题、它之所以那么写是因为什么压力、它哪些选择是有意为之、哪些选择是误打误撞。理解了这些,你回头再读论文时会发现自己看到的是另一篇文章。


一、2017 年 6 月:论文出现时的世界

要理解一篇论文的意义,先要理解它出现时的世界长什么样。

2017 年 6 月,整个 NLP 学术圈和工业界长这样:

  • 机器翻译是 NLP 的旗舰任务。Google Translate 在 2016 年 9 月把生产环境从短语统计 MT(PBMT)切到了神经 MT(GNMT),翻译质量肉眼可见地飞跃,全行业都被震动了。学术圈对 NMT 的热情达到顶点,每个 NLP 实验室都在做翻译。
  • LSTM 是事实标准。所有的 seq2seq、所有的对话模型、所有的语言模型,全是 LSTM。GRU 被认为是 LSTM 的轻量替代。Schmidhuber 1997 年的 LSTM 在 20 年后才真正统治了序列建模。
  • attention 是 LSTM 的「外挂」。Bahdanau 2015、Luong 2015 提出的 attention 都被定位成 RNN 的辅助机制——RNN 仍然是主体,attention 只是帮助 decoder 「看」回 encoder。
  • 训练慢是公认的痛苦。GNMT 训练要好几天到一周,因为 LSTM 的时间步必须串行。Facebook 的 ConvS2S(2017 年 5 月)开始尝试用 CNN 做 seq2seq 来并行化,引起讨论。
  • 预训练这个概念在 NLP 里基本不存在。word2vec、GloVe 是有的(词嵌入预训练),但「先用大量文本预训练一个巨大的 LM 再去 fine-tune 下游任务」的范式还没有诞生。BERT 还要再等 17 个月。
  • 大模型」在 NLP 里指的是 1B 参数以下的东西。GPT 还没出现。GPT-2 要再等 1 年半。

在这个语境里,《Attention Is All You Need》的题目意味着什么?意味着挑衅:「我们扔掉 RNN 也能做翻译,而且更快更好」。


二、八位作者与他们的背景

论文署名八人,按 arXiv 顺序:

  1. Ashish Vaswani(Google Brain)
  2. Noam Shazeer(Google Brain)
  3. Niki Parmar(Google Research)
  4. Jakob Uszkoreit(Google Research)
  5. Llion Jones(Google Research)
  6. Aidan N. Gomez(多伦多大学,实习生)
  7. Łukasz Kaiser(Google Brain)
  8. Illia Polosukhin(Google Research)

论文最后还有一行:「Equal contribution」——八人贡献相等,作者顺序是「random」的。这种排序方式在当时颇罕见,反映出这篇工作不是「老板挂名学生干活」的传统模式,而是一群高 caliber 工程师/研究员的真正合作。

几个值得关注的人物:

  • Noam Shazeer 后来去做了 MoE(Sparse MoE Transformer,2017)、然后离开 Google 创办 Character.AI(2021),2024 年又被 Google 以巨资请回。他被广泛认为是 Transformer 真正的核心作者之一。
  • Łukasz Kaiser 当时在做 Tensor2Tensor(论文里实验框架就是它),后来去了 OpenAI,是 GPT 系列工作的重要参与者。
  • Aidan Gomez 当时只是多伦多大学的本科实习生,后来创办了 Cohere。
  • Illia Polosukhin 后来离开做了 NEAR Protocol 区块链项目。
  • Jakob Uszkoreit 后来创办了 Inceptive 做生物医药 AI。

八人后续都成了 AI 领域的重要人物,几乎没人留在 Google 原岗位——这本身是 2018–2022 年「Transformer 黑帮」(被 Wired 杂志称为 Transformer Mafia)现象的一部分。


三、Google Brain 与 Google Translate:两条业务线的合流

这篇论文表面是 Google Brain 的研究成果,但背后还有一条隐藏的脉络:Google Translate 团队的工程压力

GNMT 上线后,Google 翻译团队需要在生产环境维护一个庞大的、每月迭代的翻译模型。他们面对的真实痛点不是「翻译效果不够好」,而是:

  • 训练一次新模型要 1 周以上(LSTM 串行)。
  • 实验迭代速度极慢,调一个超参要等几天。
  • LSTM 的长依赖建模在长句子上还是有问题。

Google Brain(更研究导向)和 Translate(更产品导向)一直有人员往来。Vaswani 等人做 Transformer 的初心,很大程度上就是要解决「让翻译模型训得更快」这个工程问题——这就是为什么论文里特别强调 「3.5 days on 8 P100 GPUs」 这一句的。在当时的同行眼里,这不是模型规模数字,而是一个奢侈的「快」字:当年 ConvS2S 训 GNMT 同等水平要好几天 hugely 多卡,GNMT 自己更慢,Transformer 大幅缩短了整个迭代周期。

理解这一点很重要:Transformer 在诞生时是一个为「训练效率」而生的架构,不是为「容量」而生的架构。它的并行性是优化目标,attention 的全局连接是手段。今天我们说 Transformer 因为 attention 能 model 长依赖所以强大,这种叙事是事后构造的。当年作者真正想要的,是把 N 个时间步的串行计算变成可并行的矩阵乘法。


四、自注意力的真正前身:不是 Bahdanau

很多教程把 Bahdanau 2015 称为 self-attention 的祖先。这是不准确的。Bahdanau attention 是 decoder-encoder 之间的 cross-attention,不是 self-attention。

self-attention 真正的前身有几个:

  • Cheng, Dong, Lapata 2016: “Long Short-Term Memory-Networks for Machine Reading”。在这篇文章里,他们让 LSTM 的某个 step 不仅依赖前一步隐状态,还可以「attend」到自己历史的所有隐状态。这是「让一个序列内部产生 attention」的早期想法。
  • Parikh et al. 2016: “A Decomposable Attention Model” (Google Research)。Niki Parmar 团队的工作,把 attention 用作两个文本之间相似度建模的核心而非辅助。
  • Lin et al. 2017 (March): “A Structured Self-Attentive Sentence Embedding”。专门用 self-attention 做句子表示。
  • Vaswani 等人内部前作: 论文里多次引用了 Google 内部对 self-attention 的早期实验。

Transformer 的创新不是「发明」了 self-attention,而是把 self-attention 推到了极端:整个网络都不要 RNN/CNN 了,纯靠 self-attention 堆叠。在 2017 年,「能不能完全没有 RNN」这个问题本身就是大胆的——绝大多数同行的反应是「太疯狂」。


五、ConvS2S 的压力:并行化竞赛

2017 年 5 月,Facebook 的 Gehring 等人发表了 “Convolutional Sequence to Sequence Learning”(ConvS2S),用 CNN 替代 RNN 做 seq2seq,BLEU 在 WMT’14 EN-FR 达到 40.46,超过 GNMT。这篇在当时是个大新闻。

ConvS2S 的卖点正是并行化:CNN 可以并行计算所有时间步,比 LSTM 快几倍。

Google Brain/Translate 团队一定从中嗅到了威胁。Transformer 论文的实验对照里,ConvS2S 是核心 baseline 之一。Vaswani 们要回应的问题是:能不能用 attention 同样实现并行化,而且效果更好?

答案就是论文里展示的:Transformer big 在 EN-DE 上达到 28.4(ConvS2S 是 25.16),EN-FR 上 41.8(ConvS2S 是 40.46)。用更小的模型、更短的训练时间、超过了 ConvS2S 和 GNMT。这是论文的核心 selling point,也是它能立刻被业界认可的工程基础。


论文的真正贡献可以归纳为五点:

  1. 完全去掉 RNN 和 CNN,仅用 attention 和 FFN 构造序列模型。
  2. Multi-head self-attention(第 16 篇):把 attention 拆成多个并行 head。
  3. Positional encoding(第 11 篇):用 sin/cos 给纯位置无关的 attention 加上位置信息。
  4. Encoder-decoder 架构 + cross-attention:保留 seq2seq 的整体框架但内部全用 attention。
  5. 训练速度大幅提升:8 卡 P100、3.5 天达到 SOTA。

注意这里没有预训练、没有 in-context learning、没有 chain-of-thought、没有 instruct-tuning。这些后来「让 Transformer 真正改变世界」的东西都不在原论文里。

原论文做的事情非常聚焦:机器翻译这一个任务上,证明纯 attention 架构能 work 而且训得快。它甚至没敢把模型推到很大——base 65M、big 213M,今天都属于「小到可以塞进手机」的级别。


七、论文的实验设定

论文实验非常 minimal:

  • 数据集:WMT 2014 EN-DE (4.5M 句对) 和 EN-FR (36M 句对)
  • 硬件:1 台 8×NVIDIA P100 GPU 的机器
  • 训练时间:base 12 小时(100k step),big 3.5 天(300k step)
  • 主要指标:BLEU
  • baseline:GNMT、ConvS2S、ByteNet、MoE

结果(论文 Table 2):

  • WMT’14 EN-DE:base 27.3,big 28.4(前 SOTA 26.03)
  • WMT’14 EN-FR:base 38.1,big 41.8(前 SOTA 40.46)

这些数字按今天的眼光看不算夸张,但当时是实打实的 SOTA + 训练时间数量级缩短。


八、Post-LN 的「错误」与历史的细节

论文图 1 标注的归一化位置是 Post-LN(先 Add 再 LayerNorm):LayerNorm(x + Sublayer(x))

2018–2020 年大量工程实践发现,Post-LN 在深层(L > 12)上训练极不稳定,需要非常仔细的 warmup、学习率调度。GPT-2、GPT-3 内部都改成了 Pre-LNx + Sublayer(LayerNorm(x))),稳定性大幅提升,warmup 可以省掉。

这是一个细节但有意义:原论文的「正确」配置在历史中被悄悄地修正。今天几乎所有大模型都是 Pre-LN(或它的变体 RMSNorm 在 Pre-LN 位置上)。这告诉我们:论文里写的东西不一定是后来工业界用的东西。读论文时要注意区分「2017 年的设计」和「今天的标准」。


九、warmup 的必要性

论文里设了 4000 步的学习率 warmup(lr 从 0 线性增长到 peak,再按 inverse sqrt 衰减)。

这是 Post-LN 不稳定的另一面表现。Post-LN 在训练初期梯度容易爆炸,必须 warmup 把学习率压低、让 LayerNorm 的统计量稳定下来。如果不 warmup,模型会在头几百步发散。

后来 Pre-LN 普及后,warmup 可以缩短或省掉。但 Adam 类优化器本身的二阶矩估计前期不稳定,warmup 仍是好实践。

在今天的大模型训练里,warmup 仍是标配,但原因和原论文已经不完全一样。


十、论文的接收度:当年的反应

《Attention Is All You Need》在 NeurIPS 2017 被接收为 poster(不是 oral),这在事后看是有点令人意外的。当时的 NLP 圈和 ML 圈的反应大致是:

  • 机器翻译圈:迅速接受,因为 SOTA + 训练时间优势太明显,几乎所有 NMT 系统在 2018 年内都迁移到 Transformer。
  • NLP 整体:观望。多数人认为这是「翻译领域的论文」,自己做的任务不一定适用。
  • CV 圈:完全无视。当时没人觉得 attention 能做 CV。

真正的爆发是 2018 年下半年的 BERT。Google AI 的 Devlin 等人证明了 Transformer encoder 可以预训练成通用语言表示,下游任务全面 SOTA。这才把整个 NLP 圈拉到了 Transformer 的旗帜下。

然后 2018 年 6 月 OpenAI 发了 GPT-1(Transformer decoder 预训练),2019 年 GPT-2,2020 年 GPT-3——decoder-only 路线被验证。CLIP、ViT、Stable Diffusion、ChatGPT 接连而至。

到 2024 年,《Attention Is All You Need》Google Scholar 引用数超过 13 万,是过去十年被引用最多的 ML 论文之一。


十一、论文里被忽视的细节

重读这篇论文时,我会注意几个常被忽视的细节:

1)embedding 与输出投影权重共享。论文 3.4 节明确写了 we share the same weight matrix between the two embedding layers and the pre-softmax linear transformation。这种共享在当时是 NMT 圈的常见做法,今天的大模型基本不再共享(因为词表巨大、输出层独立训练效果更好)。

2)label smoothing ε=0.1。论文用了 label smoothing,BLEU 涨 0.3。这种正则化技巧今天基本被淘汰(大模型靠 scale,不需要这种小 trick)。

3)attention dropout。Dropout 加在 attention weights 上而不只是隐藏层上。今天大模型甚至 dropout 都很少用了。

4)beam size = 4,length penalty α = 0.6。论文给的 inference 参数。今天 LLM 推理都不用 beam search 了,主要是 sampling + temperature。

5)参数量计算。base 模型 65M:6 层 × (4 × 512² + 2 × 2048 × 512) ≈ 6 × (1.05M + 2M)·参数 + embedding。具体数字与论文一致。

6)BPE 词表大小。EN-DE 用 37k joint BPE,EN-FR 用 32k word-piece。今天 LLM 词表是 32k–256k 量级。

这些细节告诉我们:Transformer 的核心思想极其简洁,但论文里的实现细节是 2017 年的产物。每隔几年,社区都会更新这些细节(位置编码改 RoPE、归一化改 RMSNorm、激活改 SwiGLU、attention 加 KV cache 优化等),但核心结构七年不变。


十二、为什么 decoder-only 最后赢了

论文展示的是 encoder-decoder 架构。但今天主流大模型(GPT、LLaMA、Claude、Gemini、Qwen)几乎全是 decoder-only。这个转向是怎么发生的?

第一次转向:BERT vs GPT(2018)。BERT 用 encoder-only 做理解类任务,GPT 用 decoder-only 做生成。两条路线并行。

第二次转向:T5 试图统一(2019)。Google 的 T5 用完整 encoder-decoder 把所有 NLP 任务都框架成「text-to-text」,效果好但工程复杂。

第三次转向:GPT-3 验证 in-context learning(2020)。OpenAI 发现纯 decoder-only 模型放大到 175B 后能 emergent 出 in-context learning 能力——给几个示例就能学新任务。这是 encoder-decoder 没有的特性。

第四次转向:ChatGPT 出圈(2022.11)。decoder-only + RLHF 一举奠定了「对话式 AI」的产品形态。从此 decoder-only 成为 LLM 的事实标准。

回看《Attention Is All You Need》,其实它已经为这个未来铺好了路:因为 decoder 是 encoder 的「带 mask 的版本」,从 encoder-decoder 简化到 decoder-only 只是去掉一半。如果 2017 年作者已经知道 decoder-only 这么强,可能根本不会在论文里讲 encoder-decoder。但他们当时面对的是机器翻译这个本质上是 seq2seq 的任务,encoder-decoder 是默认选择。


十三、那些「成不了主流」的同期工作

2017–2019 年涌现了一批 Transformer 的对手或变种,但都没能成为主流:

  • ConvS2S(FB, 2017):纯 CNN seq2seq,被 Transformer 完全取代。
  • Universal Transformer(Google, 2018):在层间循环用同一组参数,理论优雅但工业用得少。
  • Reformer(Google, 2020):用 LSH attention 降复杂度,工程过于复杂没能落地。
  • Performer / Linformer(2020):线性 attention(第 18 篇讨论过)。
  • Longformer / BigBird(2020):长上下文专用,被 FlashAttention 时代部分淘汰。
  • AlBERT(2019):参数共享版 BERT,质量打不过 RoBERTa。

这告诉我们:Transformer 的「少改动 + 多 scale + 好工程」路线,在过去七年里击败了几乎所有「精巧但小修小补」的变体。Bitter Lesson 的又一例证。


十四、关键概念回顾

  • 论文 2017 年 6 月发表,作者 8 人 equal contribution。
  • 当时背景:LSTM 主导、ConvS2S 刚出、机器翻译是旗舰任务、没有预训练范式。
  • Transformer 的核心动机是训练并行化而非容量。
  • 论文实验只在 WMT 翻译上,没有预训练、没有大模型规模。
  • Post-LN 后被 Pre-LN 取代,warmup 从必需逐步弱化。
  • BERT、GPT 等是论文的「下游应用」,把 Transformer 推向通用。
  • 论文 Google Scholar 引用 13 万+,几乎所有现代生成模型的祖先。

十五、常见误解

  • 「Transformer 的核心创新是 attention」——不准确。attention 在 2014 年就有,self-attention 也有前作。Transformer 的真正创新是「全部用 attention 不用 RNN」+ multi-head + positional encoding 的组合。
  • 「论文一发表就引爆 NLP」——错。当时只是被 NMT 圈接受,全行业转向是 BERT 之后的事。
  • 「论文展示的是 decoder-only」——错。原论文是 encoder-decoder 用于翻译。
  • 「论文里有 GPT/BERT 的雏形」——只能说有 encoder/decoder 的模块,但 pretraining-finetuning 范式当时根本没有。
  • 「Transformer 当年很大」——错。base 65M、big 213M,按今天看都是玩具。
  • 「八位作者后来都留在 Google」——错。几乎所有人都离开了,去做了 Cohere、Character.AI、NEAR、Inceptive 等创业项目。

十六、下一步

下一篇(第 20 篇)是本系列前半部分的总结:把所有零散的模块(attention、QKV、多头、mask、位置编码、FFN、残差、归一化)拼成一张完整的 Transformer 架构图,跟随一个 token 走完从输入到输出的全旅程。读完第 20 篇,你应该能闭上眼睛画出 Transformer 的全貌、解释每个箭头为什么存在。


参考文献

  • Vaswani A. et al. Attention Is All You Need. NeurIPS 2017. arXiv:1706.03762.
  • Bahdanau D., Cho K., Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate. ICLR 2015. arXiv:1409.0473.
  • Luong M., Pham H., Manning C. D. Effective Approaches to Attention-based Neural Machine Translation. EMNLP 2015. arXiv:1508.04025.
  • Cheng J., Dong L., Lapata M. Long Short-Term Memory-Networks for Machine Reading. EMNLP 2016. arXiv:1601.06733.
  • Parikh A. P., Täckström O., Das D., Uszkoreit J. A Decomposable Attention Model for Natural Language Inference. EMNLP 2016. arXiv:1606.01933.
  • Lin Z. et al. A Structured Self-Attentive Sentence Embedding. ICLR 2017. arXiv:1703.03130.
  • Gehring J. et al. Convolutional Sequence to Sequence Learning. ICML 2017. arXiv:1705.03122.
  • Wu Y. et al. Google’s Neural Machine Translation System (GNMT). 2016. arXiv:1609.08144.
  • Devlin J., Chang M., Lee K., Toutanova K. BERT. NAACL 2019. arXiv:1810.04805.
  • Radford A. et al. Improving Language Understanding by Generative Pre-Training(GPT-1). 2018.
  • Brown T. et al. Language Models are Few-Shot Learners(GPT-3). NeurIPS 2020. arXiv:2005.14165.
  • Levine A. The Inside Story of How ChatGPT Was Built. Wired, 2023.
  • 关于「Transformer Mafia」的报道,可参见 Wired、Bloomberg 2023–2024 系列文章。

← 上一篇:18. 注意力的复杂度问题 | 下一篇:20. Transformer 整体架构:一张图看懂

同主题继续阅读

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

2026-04-15 · transformer

【Transformer 与注意力机制】12|Bahdanau Attention:注意力的早期形态

把 Bahdanau, Cho, Bengio 2014 那篇「Neural Machine Translation by Jointly Learning to Align and Translate」逐项拆开。固定 context vector 的瓶颈、双向 RNN 编码、additive attention 公式 vᵀtanh(W₁s + W₂h)、与 Luong 2015 multiplicative attention 的取舍,以及为什么这是 Q/K/V 的雏形。

2026-04-15 · transformer

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

这是【Transformer 与注意力机制】系列的第一篇,承担两件事:一是把这套五十多篇文章为谁写、解决什么问题、彼此之间是什么关系交代清楚;二是为完全没基础的读者画出一条从向量、点积、矩阵乘法走到自注意力、再走到大语言模型的爬升路径,让你在投入时间之前先知道终点在哪、路上要经过哪些坎、读完之后你会、还不会做什么事。