本文解读的是Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan N. Gomez、Łukasz Kaiser和Illia Polosukhin于2017年发表的里程碑论文《Attention Is All You Need》,该论文提出了Transformer架构,完全基于注意力机制,摒弃了循环和卷积结构,在机器翻译任务上取得了最先进的性能,同时训练速度更快、可并行性更强。这一突破不仅彻底改变了序列建模的范式,更为后续GPT、BERT等大语言模型奠定了架构基础,开启了现代AI的新时代。
“注意力即一切。"——这是Transformer论文的核心宣言。在Transformer之前,序列建模主要依赖RNN和CNN。RNN虽然能够处理序列,但难以并行化;CNN虽然可以并行化,但难以捕捉长距离依赖。Transformer通过完全基于注意力机制的架构,同时解决了这两个问题,实现了并行化和长距离依赖的完美结合。
Transformer的核心创新是自注意力机制(Self-Attention):每个位置都可以直接关注序列中的所有位置,无需通过循环或卷积逐步传播信息。这种设计使得Transformer能够:
- 并行计算:所有位置可以同时计算,训练速度大幅提升
- 长距离依赖:直接建模任意距离的依赖关系
- 可解释性:注意力权重提供了模型决策的可解释性
在当今大语言模型时代,Transformer已经成为AI的基础架构:GPT、BERT、T5、PaLM等所有大模型都基于Transformer。理解Transformer,就是理解现代AI的基石。
本文将从问题根源、核心机制、解决方案、实践评估四个维度深度解读Transformer,包含完整的数学推导、架构分析和实验评估,并在文末提供阅读研究论文的时间线计划。
序列建模的传统局限
问题一:RNN的序列化计算瓶颈
传统RNN需要按顺序处理序列,无法并行化:
序列化计算的局限:
- 每个时间步依赖前一时间步的输出
- 计算必须串行进行,无法并行
- 训练时间长,难以处理大规模数据
数学表述:对于序列 $x_1, x_2, \ldots, x_n$,RNN的计算为: $$ h_t = f(h_{t-1}, x_t) $$ 其中 $h_t$ 的计算必须等待 $h_{t-1}$ 完成,无法并行。
问题二:CNN的感受野限制
CNN虽然可以并行化,但感受野受限:
感受野的局限:
- 需要多层卷积才能扩大感受野
- 感受野的增长是线性的,需要 $O(n)$ 层才能覆盖长度为 $n$ 的序列
- 难以捕捉长距离依赖
数学分析:对于 $k \times k$ 卷积核,经过 $L$ 层后,感受野为 $L(k-1) + 1$。要覆盖长度为 $n$ 的序列,需要 $L \geq \frac{n-1}{k-1}$ 层。
问题三:注意力机制的潜力
注意力机制在RNN中已经证明有效,但受限于RNN的架构:
注意力机制的潜力:
- 能够直接建模任意距离的依赖关系
- 提供了可解释性(通过注意力权重)
- 但受限于RNN的序列化计算
关键问题:能否完全基于注意力机制构建序列模型,摒弃RNN和CNN?
Transformer的核心架构
自注意力机制
Transformer的核心是自注意力机制(Self-Attention):
$$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$
其中 $Q$(Query)、$K$(Key)、$V$(Value)都是输入序列的线性变换:
$$ Q = XW_Q, \quad K = XW_K, \quad V = XW_V $$
关键特性:
- 并行计算:所有位置的注意力可以同时计算
- 长距离依赖:每个位置可以直接关注所有位置
- 可解释性:注意力权重 $\text{softmax}(QK^T/\sqrt{d_k})$ 提供了可解释性
缩放点积注意力
缩放因子 $\sqrt{d_k}$ 的作用:
- 防止点积值过大导致softmax饱和
- 保持梯度的稳定性
- 提高训练效率
数学分析:当 $d_k$ 很大时,$QK^T$ 的值可能很大,导致softmax的梯度很小。除以 $\sqrt{d_k}$ 可以缓解这个问题。
多头注意力
多头注意力(Multi-Head Attention)使用多个注意力头:
$$ \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)W^O $$
其中 $\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)$。
多头的作用:
- 允许模型关注不同类型的信息
- 提高模型的表达能力
- 每个头可以学习不同的表示子空间
位置编码
由于Transformer没有循环或卷积结构,需要显式编码位置信息:
正弦位置编码: $$ PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d_{model}}) $$
$$ PE_{(pos, 2i+1)} = \cos(pos / 10000^{2i/d_{model}}) $$
位置编码的作用:
- 为序列中的每个位置提供唯一的位置表示
- 使模型能够理解序列的顺序
- 支持不同长度的序列
Transformer的完整架构
编码器
编码器由 $N$ 个相同的层堆叠而成,每层包含:
- 多头自注意力:$\text{MultiHead}(X, X, X)$
- 残差连接和层归一化:$\text{LayerNorm}(X + \text{MultiHead}(X))$
- 前馈网络:$\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2$
- 残差连接和层归一化:$\text{LayerNorm}(X + \text{FFN}(X))$
数学表述: $$ \text{EncoderLayer}(X) = \text{LayerNorm}(\text{FFN}(\text{LayerNorm}(X + \text{MultiHead}(X, X, X))) + \text{LayerNorm}(X + \text{MultiHead}(X, X, X))) $$
解码器
解码器也由 $N$ 个相同的层堆叠而成,每层包含:
- 掩码多头自注意力:防止关注未来位置
- 编码器-解码器注意力:关注编码器的输出
- 前馈网络
- 残差连接和层归一化
掩码机制:在解码器的自注意力中,使用掩码防止位置 $i$ 关注位置 $j > i$:
$$ M_{ij} = \begin{cases} 0 & \text{if } j \leq i \ -\infty & \text{if } j > i \end{cases} $$
整体架构
Transformer的完整流程:
- 输入嵌入 + 位置编码
- 编码器处理源序列
- 解码器生成目标序列
- 输出层生成概率分布
Transformer的实验评估
WMT数据集
数据集:WMT 2014英德翻译(4.5M句对)、英法翻译(36M句对)
评估指标:BLEU分数
实验结果
主要结果:
- 英德翻译:BLEU 28.4(比最佳模型高2.0)
- 英法翻译:BLEU 41.8(比最佳模型高0.5)
- 训练速度:比最佳模型快3.5倍
关键发现:
- Transformer在性能上达到或超越最佳模型
- 训练速度显著提升(得益于并行化)
- 模型更简单(无循环、无卷积)
消融实验
实验发现:
- 多头注意力比单头效果好
- 位置编码对性能至关重要
- 残差连接和层归一化提高训练稳定性
Transformer与现代AI的关系
对大语言模型的影响
Transformer开启了大语言模型时代:
- GPT系列:基于Transformer解码器
- BERT:基于Transformer编码器
- T5:基于完整Transformer架构
对AI架构的影响
Transformer确立了现代AI的架构范式:
- 注意力机制:成为AI的核心组件
- 并行计算:使大规模训练成为可能
- 可扩展性:支持模型规模的持续增长
阅读研究论文的时间线计划
本文在技术时间线中的位置
Word2Vec(2013) → Seq2Seq(2014) → Attention(2015) → 【当前位置】Transformer(2017)
→ GPT-1(2018) → GPT-2(2019) → Scaling Laws(2020) → GPT-3(2020) → InstructGPT(2022) → ChatGPT
前置知识
在阅读本文之前,建议了解:
- 【ChatGPT时刻02】Seq2Seq:编码器-解码器架构
- 【ChatGPT时刻03】注意力机制:软对齐与动态上下文
- 矩阵运算与并行计算基础
后续论文推荐
完成本文后,建议按顺序阅读:
- 【ChatGPT时刻05】Transformer代码解析(下一篇):逐行理解实现细节
- 【ChatGPT时刻06】GPT-1:生成式预训练的开创之作
- 【ChatGPT时刻07】GPT-2:零样本学习能力的发现
完整技术路线图
Transformer革命
│
Transformer ──────────► GPT-1 ──────────► GPT-2 ──────────► GPT-3 ──────────► ChatGPT
(2017) (2018) (2019) (2020) (2022)
│ │ │ │ │
└── 自注意力 └── 预训练+微调 └── 零样本学习 └── 上下文学习 └── RLHF
并行计算 任务特定输入 规模效应 涌现能力 对话优化
位置编码 few-shot
参考文献
- Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., … & Polosukhin, I. (2017). Attention is all you need. Advances in neural information processing systems, 30.
- Bahdanau, D., Cho, K., & Bengio, Y. (2014). Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473.
- Rush, A. (2018). The Annotated Transformer. Harvard NLP Blog.
- Transformer Paper
- The Annotated Transformer