⚡ Transformer 架构详解

2017 年 Google "Attention Is All You Need" 论文提出的 Transformer 架构,彻底改变了 NLP 乃至整个 AI 领域。理解 Transformer 是理解一切现代大模型的基础。

1. 核心思想:自注意力机制(Self-Attention)

Transformer 的核心创新是完全摒弃 RNN/CNN,仅使用注意力机制处理序列。自注意力允许序列中的每个位置直接"关注"其他所有位置,计算关联权重。

Attention(Q, K, V) = softmax(QKT / √dk) · V
其中:Q = 查询矩阵, K = 键矩阵, V = 值矩阵, dk = 键维度

缩放因子 √dk 防止点积值过大,导致 softmax 梯度消失。当 dk=64 时,√dk≈8,将点积值缩放到合理区间。

与 RNN 的 O(n) 顺序依赖不同,自注意力的所有位置可并行计算,这是 Transformer 训练速度远超 RNN 的根本原因。代价是 O(n²) 的计算复杂度和内存消耗。

2. 多头注意力(Multi-Head Attention)

单头注意力只能学习一种关联模式。Transformer 将注意力拆分为多个"头",每个头关注不同的语义关系:

MultiHead(Q, K, V) = Concat(head1, ..., headh) · WO
headi = Attention(QWiQ, KWiK, VWiV)

原始 Transformer 使用 h=8 个头,dmodel=512,每个头 dk=dv=64。研究发现不同头确实学习了不同模式:有的关注语法结构,有的关注指代关系,有的关注位置邻近性。

模型dmodel头数 h层数 N参数量
Transformer Base5128665M
Transformer Big1024166213M
GPT-3122889696175B
Llama 3.1 405B16384128126405B

3. 编码器—解码器架构

原始 Transformer 采用编码器—解码器结构,后来演化出三大架构范式:

Encoder-Only(BERT)

使用双向注意力,每个 token 可关注所有其他 token。擅长理解任务(分类、NER、问答抽取)。代表:BERT、RoBERTa、ELECTRA。

Decoder-Only(GPT)

使用因果掩码注意力(causal mask),每个 token 只能关注之前的 token。擅长生成任务。代表:GPT 系列、Llama、Claude。

Encoder-Decoder(T5)

编码器双向编码输入,解码器自回归生成输出。两部分通过交叉注意力连接。代表:T5、BART、mBART。

趋势:Decoder-Only 架构在 GPT-3 之后成为绝对主流。OpenAI 的实践证明,足够大的 Decoder-Only 模型可以同时胜任理解和生成任务。

4. 位置编码(Positional Encoding)

自注意力是"位置无关"的——打乱输入顺序不影响输出。Transformer 必须额外注入位置信息:

正弦位置编码(原始论文):
PE(pos, 2i) = sin(pos / 100002i/d)
PE(pos, 2i+1) = cos(pos / 100002i/d)
方案说明代表模型
正弦/余弦固定函数,天然支持外推原始 Transformer
可学习绝对位置可训练 embedding 向量GPT-1/2, BERT
RoPE(旋转位置编码)通过旋转矩阵编码相对位置Llama, GPT-NeoX, Claude
ALiBi线性偏置代替位置嵌入BLOOM, MPT

RoPE 已成为当前主流选择——它在注意力计算中自然编码了相对位置关系,且通过 NTK-aware 缩放可扩展到训练长度的 4-8 倍。

5. 关键训练技巧与优化

残差连接 + 层归一化:每个子层(注意力 / FFN)的输出 = LayerNorm(x + Sublayer(x))。残差连接缓解深层退化,层归一化稳定训练。

Pre-LN vs Post-LN:原始 Transformer 使用 Post-LN(先残差后归一化),GPT-2+ 使用 Pre-LN(先归一化后子层),训练更稳定。现代模型多采用 RMSNorm(均方根归一化),计算更高效。

FFN(前馈网络):每层包含两层全连接 FFN(x) = max(0, xW₁+b₁)W₂+b₂。FFN 隐藏层通常 4× dmodel。现代模型常用 SwiGLU 激活 + 8/3× 扩展比。

Flash Attention(Tri Dao, 2022):通过分块计算和重计算策略,将注意力内存从 O(n²) 降至 O(n),速度提升 2-4 倍。已成为所有现代 LLM 训练的标配。

MoE(混合专家):将 FFN 拆分为多个"专家"网络,每个 token 仅由 Top-K 个专家处理。GPT-4(传闻 8×220B MoE)、Mixtral 8×7B 均采用此架构,以较低推理成本获得更大模型容量。

6. 从 Transformer 到大模型:规模定律

Kaplan et al.(OpenAI, 2020)发现 Scaling Laws:模型性能(loss)与参数量 N、数据量 D、计算量 C 呈幂律关系:

L(N) ∝ N-0.076
L(D) ∝ D-0.095
L(C) ∝ C-0.050

这意味着只要持续增加模型规模和训练数据,性能就会可预测地提升——这一发现直接推动了 GPT-3/4、PaLM、Llama 等超大规模模型的开发。

Chinchilla 修正(Hoffmann et al., 2022):最优训练应保持参数量与训练 token 数近似 1:20 比例。70B 模型最优训练需 1.4T tokens。这一发现改变了"做大模型"的策略——从堆参数转向参数×数据的平衡优化。