← 返回
技术论文解读

注意力就是你所需要的一切

Attention Is All You Need
Authors
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin
Institutions
Google Brain · Google Research · University of Toronto
Venue
NeurIPS 2017 · 2017-06-12
Links
TL;DR

这篇论文提出了 Transformer——一种完全基于注意力机制的序列转换架构,彻底抛弃了循环和卷积。它在机器翻译上用 8 块 GPU 训 3.5 天 就刷新了当时的 SOTA(英德 28.4 BLEU、英法 41.0 BLEU),训练成本只有前代最优模型的零头。更重要的是,这篇论文成为了整个现代 AI 的架构基石:GPT、BERT、Claude、Gemini、LLaMA——全部建立在 Transformer 之上。它是过去十年被引用最多的 AI 论文,没有之一。

30 秒速览
核心创新
Transformer:用多头自注意力 + 前馈网络堆叠替代 RNN/CNN,实现序列建模
关键洞察
注意力不需要循环就能捕获任意距离的依赖关系,且天然可并行
关键数字
EN-DE 28.4 BLEU(+2 over 集成模型)· EN-FR 41.0 BLEU(单模型 SOTA)· 8 GPU × 3.5 天 · 65M 参数(base)/ 213M(big)
核心组件
Scaled Dot-Product Attention → Multi-Head Attention → 编码器-解码器堆叠 + 位置编码 + 残差连接 + 层归一化
验证任务
WMT 2014 英德/英法机器翻译 + 英语成分句法分析
最大保留
自注意力的 O(n²·d) 复杂度随序列长度二次增长;论文只在翻译和句法分析上验证
谁该读
所有想理解现代 AI 底层架构的人——这是 GPT/BERT/Claude/Gemini 的共同祖先
01

它要解决什么问题

2017 年之前,序列建模的主流是 RNN(循环神经网络,逐步处理序列,天然顺序执行) 及其变体 LSTM(长短期记忆网络,RNN 的改进版,缓解梯度消失)。它们有一个根本问题:计算必须一步步串行执行——处理位置 t 的输出依赖于位置 t-1 的隐状态,无法并行。这在长序列上成为瓶颈:训练慢、显存受限、难以捕捉长距离依赖。

当时已有的注意力机制(如 Bahdanau attention)能帮助模型跨越距离关注相关位置,但它们始终是 RNN 的附属品——需要和循环层联合使用。卷积模型(ByteNet、ConvS2S)解决了部分并行化问题,但连接两个距离为 n 的位置需要 O(log n) 层,路径仍然不够短。

论文的核心问题是:能不能完全抛弃循环和卷积,只用注意力机制来做序列转换?

02

核心发现

1
纯注意力架构可行且更优
Transformer 在英德翻译上达到 28.4 BLEU,比当时最好的集成模型(ConvS2S ensemble 26.36)高出 2 分以上;在英法翻译上达到 41.0 BLEU(单模型 SOTA)。这证明完全不用 RNN/CNN 不仅可行,而且效果更好。
2
训练效率数量级提升
Transformer big 模型训练成本为 2.3×1019 FLOPs(8 块 P100 × 3.5 天);而前代 SOTA 集成模型 GNMT+RL 需要 1.1×1021 FLOPs——差了近 50 倍。base 模型更是只需 12 小时即可超越所有已发表模型。
3
多头注意力优于单头
消融实验显示 h=1(单头)比最佳设置(h=8)低 0.9 BLEU;但头数过多(h=32, dk=16)也会下降。8 头是甜区——让模型同时在不同的表示子空间中关注不同模式。
4
模型尺寸、dropout、标签平滑都很关键
增大 dmodel 和 dff 持续提升性能(从 dmodel=256 的 24.5 BLEU 到 dmodel=1024 的 26.0);dropout=0.1 vs 0.0 差 0.9 BLEU;标签平滑(εls=0.1)降低困惑度但提升 BLEU。
5
跨任务泛化能力强
4 层 Transformer 在英语成分句法分析上达到 91.3 F1(WSJ only),半监督设置下达到 92.7 F1——超过除 RNN Grammar 外的所有模型,且没做任何任务特化调参。
模型EN-DE BLEUEN-FR BLEU训练 FLOPs
GNMT+RL Ensemble26.3041.161.8×10²⁰ / 1.1×10²¹
ConvS2S Ensemble26.3641.297.7×10¹⁹ / 1.2×10²¹
MoE26.0340.562.0×10¹⁹ / 1.2×10²⁰
Transformer (base)27.338.13.3×10¹⁸
Transformer (big)28.441.02.3×10¹⁹
03

Transformer 架构详解

Transformer 保留了编码器-解码器的整体结构,但内部构件全部换成了注意力和前馈网络。
Transformer 架构概览编码器 ×NMulti-Head Self-AttentionAdd & LayerNormFeed-Forward (d_ff=2048)Add & LayerNorm↑ 残差连接贯穿Input Embedding + PE解码器 ×NMasked Self-AttentionEncoder-Decoder AttentionK, VFeed-ForwardAdd & LayerNorm ×3Linear + SoftmaxOutput Embedding + PEd_model=512 · h=8 · N=6base: 65M · big: 213M params
Transformer 架构:编码器由 N 层自注意力+前馈网络堆叠,解码器额外加一层编码器-解码器注意力(K、V 来自编码器输出)。所有子层都有残差连接和层归一化。
Scaled Dot-Product Attention 计算流程QKT·÷ √dkSoftmaxV×OutputAttention(Q, K, V) = softmax(QKT / √dk) · VMulti-Head: 将 Q/K/V 线性投影到 h 个子空间,并行计算注意力后拼接h=8, d_k=d_v=64, 总计算量 ≈ 单头全维度注意力
Scaled Dot-Product Attention 的计算流程:Q 和 K 的转置做点积,除以 √d_k 防止梯度消失,经 softmax 得到权重,最后与 V 加权求和。Multi-Head 将此过程在 h 个子空间中并行执行。

Scaled Dot-Product Attention 是 Transformer 的原子操作。给定查询 Q、键 K、值 V,计算公式极为简洁:softmax(QKT/√dk)V。除以 √dk 是关键——作者发现当 dk 较大时,点积的绝对值会变大,导致 softmax 进入梯度极小的饱和区。这个看似微小的 缩放因子(除以维度的平方根,防止大维度下点积过大) 是模型能训练起来的关键。

Multi-Head Attention 将 Q/K/V 用不同的线性投影映射到 h 个低维子空间(论文中 h=8, dk=dv=64),每个子空间独立计算注意力后拼接。这让模型能同时关注来自不同位置的不同类型的信息。论文发现不同注意力头确实学到了不同的模式——有的关注句法结构,有的追踪长距离指代关系。

位置编码(Positional Encoding) 解决了一个根本问题:纯注意力对位置顺序完全无感。论文采用正弦和余弦函数的组合:PE(pos,2i) = sin(pos/100002i/d),PE(pos,2i+1) = cos(pos/100002i/d)。这种设计的妙处在于:对任意固定偏移 k,PEpos+k 可以表示为 PEpos 的线性函数——模型因此能学会关注相对位置

为什么自注意力优于 RNN 和 CNN? 论文从三个维度对比:(1) 计算复杂度——自注意力 O(n²·d) vs RNN O(n·d²),当 n < d 时(大多数翻译场景)自注意力更快;(2) 并行度——自注意力所有位置同时计算(O(1) 最少顺序操作),RNN 必须串行 O(n);(3) 最大路径长度——自注意力中任意两个位置直接相连(O(1)),RNN 需要 O(n) 步传播。

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
Scaled Dot-Product Attention:Transformer 的核心计算单元。缩放因子 √d_k 防止大维度下点积过大导致 softmax 饱和。
04

实验设置与训练细节

论文在两个标准机器翻译基准上验证 Transformer,并额外在英语成分句法分析上测试泛化能力。
4.5M
英德句对
36M
英法句对
8×P100
训练硬件
3.5 天
Big 模型训练时长

训练数据:WMT 2014 英德(约 450 万句对,BPE(字节对编码,把单词拆成高频子词片段) 词表 37K)和英法(3600 万句对,word-piece 词表 32K)。

训练配置:Adam 优化器(β₁=0.9, β₂=0.98),使用 warmup 学习率调度——先线性增长 4000 步,然后按步数的平方根倒数衰减。Base 模型每步约 0.4 秒,100K 步(12 小时);Big 模型每步 1.0 秒,300K 步(3.5 天)。

正则化:三重防过拟合——(1) 残差 dropout Pdrop=0.1;(2) 注意力 dropout(对注意力权重做 dropout);(3) 标签平滑(Label Smoothing,训练时把 one-hot 标签变成软分布) εls=0.1,牺牲困惑度换取更好的 BLEU。

推理:对 base 模型取最后 5 个检查点的参数平均,big 模型取最后 20 个。使用 beam search(beam=4, 长度惩罚 α=0.6)。

05

消融实验:每个设计选择都有据可查

论文在英德开发集上做了系统消融(Table 3),逐一验证每个设计选择的必要性。
变量配置BLEU(dev)要点
注意力头数 h1 / 4 / 8 / 16 / 3224.9 / 25.5 / 25.8 / 25.8 / 25.4h=8 是甜区;单头差 0.9;过多头也退化
d_k 大小16 / 3225.1 / 25.4缩小 d_k 降低性能,说明兼容性计算不简单
d_model 大小256→102424.5→26.0模型越大越好(可预见的)
Dropout0.0 / 0.1 / 0.224.6 / 25.8 / 25.5不用 dropout 掉 1.2 BLEU
Big 模型d=1024, h=16, 213M26.4最大配置在 dev 上最优
06

实践建议

1. 先从 base 配置开始——dmodel=512, h=8, N=6, dff=2048 是经过充分验证的基线,在当年只需 12 小时就能超越所有已发表模型。 2. 缩放因子不可省略——不除 √dk 的 dot-product attention 在 dk 较大时会崩。 3. Warmup 学习率必不可少——线性预热 + 平方根衰减的调度策略后来成为了训练 Transformer 的标准做法。 4. Label smoothing 对生成质量有帮助——虽然困惑度变差,但 BLEU 提升,说明评价指标之间存在张力。 5. 注意力头的可解释性——论文附录展示不同头自动学会了长距离依赖追踪、指代消解、句法结构等不同功能。这为后来的 mechanistic interpretability 研究埋下了伏笔。 6. 权重共享是隐藏宝藏——编码器嵌入、解码器嵌入和输出线性层共享同一权重矩阵(乘以 √dmodel),大幅减少参数量。
07

适用边界

- O(n²) 复杂度——自注意力对序列长度二次增长,论文自己承认「对涉及非常长序列的任务,可以将自注意力限制在局部窗口内」。这个限制催生了后来 Longformer、Flash Attention、Ring Attention 等一系列工作。 - 仅验证了翻译和句法分析——论文没有在语言建模、文本分类、问答等任务上实验。Transformer 的通用性是后来 BERT(2018)和 GPT(2018)证明的,不是本文。 - 位置编码是权宜之计——正弦位置编码是固定的、绝对的,后来的工作(RoPE、ALiBi)表明相对位置编码效果更好、外推能力更强。 - 编码器-解码器结构非必需——论文用的是完整的编码器-解码器;后来 GPT 系列证明只用解码器就够了,BERT 证明只用编码器也行。Transformer 的核心贡献是注意力机制本身,而非具体的编码器-解码器组合方式。 - 没有 scaling 视角——论文的 big 模型只有 213M 参数。Transformer 的真正威力要到 GPT-3(175B)和后续模型才被完全释放。
08

时效性评估

本文发表于 2017 年 6 月,到 2026 年 5 月已过去九年。它是 Google Scholar 上被引用次数最多的 AI 论文之一(超过 15 万次引用),其核心结论不仅完全成立,而且 远远超出了原作者的预期

仍然成立的结论: - 纯注意力架构可行且高效——这已被几万亿参数级别的模型反复验证。 - Multi-Head Attention 的设计至今仍是主流。 - Warmup + 衰减学习率调度成为行业标准。 - 注意力头的功能分化(可解释性)被 mechanistic interpretability 领域持续研究。

已被超越或修正的方面: - 位置编码:正弦固定编码已被 RoPE(Rotary Position Embedding, 2021)和 ALiBi 取代,后者支持更好的长度外推。 - O(n²) 复杂度:Flash Attention(Dao, 2022)通过 IO-aware 算法将实际训练速度提升 2-4 倍且内存减半,但算法复杂度不变。Ring Attention(2023)实现跨设备分布式长序列注意力。 - 架构变体:只用解码器(GPT 系列)已成为语言模型的主流选择;编码器-解码器(T5)和只用编码器(BERT)各有其适用场景。 - 替代架构探索:Mamba(状态空间模型, 2023)和 RWKV 试图以 O(n) 复杂度替代 Transformer,但截至 2026 年仍未在最前沿的大模型中取代 Transformer。主流趋势是混合架构(如 Jamba),而非完全替代。

最终判断: 这篇论文的核心架构发明——Multi-Head Self-Attention 加前馈网络的堆叠——仍然是 2026 年所有主流大语言模型(GPT-4o、Claude 4、Gemini 2、LLaMA 4)的架构基础。可以说它是 深度学习历史上影响最深远的单篇论文

09

术语表

Transformer
本文提出的序列转换架构,完全基于注意力机制,不含循环或卷积。由编码器和解码器两部分组成,每部分是 N 层相同结构的堆叠。
Self-Attention(自注意力)
让序列中的每个位置都能「看到」所有其他位置的注意力机制。Query、Key、Value 全部来自同一个序列。是 Transformer 的核心计算原语。
Multi-Head Attention(多头注意力)
将 Q/K/V 用不同线性投影映射到 h 个低维子空间,各自独立计算注意力后拼接。让模型能在不同表示子空间中同时关注不同类型的信息。
Scaled Dot-Product Attention
Transformer 使用的注意力计算方式:softmax(QK^T / √d_k) · V。缩放因子 √d_k 防止大维度下点积过大导致梯度消失。
RNN(循环神经网络)
按时间步顺序处理序列的神经网络。位置 t 的计算依赖于 t-1 的隐状态,天然串行,是 Transformer 要替代的对象。
LSTM(长短期记忆网络)
RNN 的改进版本,通过门控机制缓解梯度消失问题。2017 年之前是序列建模的主流架构。
BPE(Byte-Pair Encoding)
字节对编码,一种子词分词算法。通过反复合并最高频字符对来构建词表,在开放词汇和压缩率之间取得平衡。
BLEU
机器翻译的标准评测指标,衡量生成文本与参考翻译之间的 n-gram 重叠度。数值越高越好,通常满分 100 但实际很少超过 50。
位置编码(Positional Encoding)
注入位置信息的机制。本文使用正弦/余弦函数组合,使模型能通过线性变换感知相对位置。后来被 RoPE、ALiBi 等方案取代。
Label Smoothing(标签平滑)
训练技巧:将 one-hot 标签替换为带噪声的软分布(如 0.9/0.1),降低模型过度自信,提升泛化。代价是困惑度变差。
缩放因子
除以维度的平方根 √d_k,防止高维度下 Q·K 的点积绝对值过大导致 softmax 进入饱和区、梯度接近于零。
10

延伸阅读