图解Transformer技术总结 | AI生成和翻译
问题: 对 Alammar 的 Illustrated Transformer 博文给出全面的技术总结。
回答
Illustrated Transformer 是对《Attention Is All You Need》中 Transformer 架构的可视化拆解,但除了教学性的图示外,理解这一架构为何成为你今天工作中一切的基础同样重要。
核心创新:通过自注意力实现并行化
Transformer 利用注意力机制提升训练速度,并且天然适合并行化——这是它与 RNN/LSTM 的关键区别。在 LSTM 中,每个时间步依赖前一个时间步的隐状态,因此只能顺序计算。Transformer 则通过矩阵运算同时对所有位置计算注意力,打破了这一限制。
该架构分为三个部分:
- 编码器堆栈 —— 将输入标记转换为上下文表示
- 解码器堆栈 —— 利用编码器上下文自回归生成输出标记
- 交叉注意力桥接 —— 解码器查询编码器输出以获得相关上下文
每个编码器/解码器层包含两个子层:
- 自注意力(位置相关,可并行计算)
- 前馈 MLP(每个位置独立,极易并行化)
自注意力:机制原理
数学上很简单,但含义深远。对于每个位置:
- 通过学习的线性变换将输入映射为查询(Q)、键(K)、值(V)
- 计算相关性得分:
scores = Q @ K^T / sqrt(d_k)(点积相似度) - 归一化:
attention_weights = softmax(scores) - 输出:
context = attention_weights @ V
在矩阵形式下,对所有位置的计算为:
Attention(Q, K, V) = softmax(Q @ K^T / sqrt(d_k)) @ V
关键洞察:
1/sqrt(d_k)缩放稳定了梯度(防止点积过大导致 softmax 值极端)- 模型学习哪些位置相互相关——无需位置归纳偏置
- 每个词在自注意力中拥有独立的处理路径,路径之间的依赖仅存在于自注意力中,这使得前馈网络层能够完全并行化
多头注意力:多种表示空间
不是使用单一的注意力操作,而是使用通常 8 个独立的注意力头,每个头有独立的 Q/K/V 参数。每个头学习不同的投影子空间。
为什么这很重要:
- 扩展了模型关注不同位置的能力,并为注意力层提供了多个表示子空间
- 一个头可能关注语法(相邻词),另一个头关注语义(远处的指代关系,如“it” → “animal”)等
- 拼接输出:
concat(head_1, ..., head_h) @ W_o
实现细节:每个头的维度为 d_model / num_heads = 512 / 8 = 64,以保持计算量恒定。
位置编码:注入顺序信息
Transformer 通过对每个输入嵌入添加一个向量来注入位置信息,该向量使用正弦和余弦函数按照特定模式生成。公式(论文第 3.5 节):
PE(pos, 2i) = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))
这有两个优点:
- 可外推到未出现的序列长度——正弦函数能泛化到超出训练长度的序列
- 相对位置可学习——对位置编码进行线性变换可编码相对距离
(现代方法如 RoPE 通过旋转查询/键嵌入改进了这一思路,但核心概念不变。)
解码器:带因果掩码的自回归生成
在解码器中,自注意力层通过掩码(mask)只允许关注前面的位置:在 softmax 之前将未来位置设为 -inf,使得它们的 softmax 概率变为 0。
解码器每个堆栈层包含三个注意力子层:
- 掩码自注意力(不能向前看)
- 交叉注意力(关注编码器输出)
- 前馈网络
推理时,模型自回归解码:每一步将前一步的输出作为下一步的输入。
残差连接与层归一化
每个子层周围都有一个残差连接,随后进行层归一化。这至关重要:
- 残差连接:允许深层堆叠(梯度通过跳跃路径流动)
- 层归一化:稳定各维度的激活值
这对你的工作为何重要
-
并行化:这就是你能在 TPU/GPU 上训练大规模批次的原因。没有 RNN 那样的顺序依赖。
-
可扩展性:
O(n^2)的注意力复杂度成为瓶颈,但该架构可扩展到数十亿参数(模型大小线性增长,仅在序列长度上平方增长)。 -
所有现代 LLM:GPT、Claude、DeepSeek —— 都是这一核心的变体。改进是渐进式的:更好的位置编码(RoPE、ALiBi)、高效注意力(Flash Attention、滑动窗口)和架构调整(如 v4 中的稀疏 MoE)。
-
真正的洞见:Transformer 没有对序列结构的归纳偏置——这是特性,不是缺陷。模型完全通过注意力权重学习什么模式重要。这就是为什么它能跨模态泛化(视觉、音频、代码)。
这篇博文出于教学目的,Alammar 有意进行了过度简化,以逐步介绍各个概念。但该架构本身简洁优雅:仅仅注意力 + 投影 + 残差 + 归一化。其余都是规模化和优化的问题。
参考文献
- The Illustrated Transformer - Jay Alammar
- Attention is All You Need - Vaswani 等人
- Harvard NLP 注释版 Transformer(PyTorch 实现)