Transformer
Transformer 是 Vaswani et al. (2017) 提出的序列建模架构,完全基于注意力机制(Attention Mechanism),摒弃了循环(RNN)和卷积(CNN)。它是当前几乎所有大语言模型的基础架构。
本页先描述原始论文的设计,再逐项对比现代 Transformer 架构(以 GPT、LLaMA、DeepSeek 等为代表)的演变。
原始架构
整体结构:Encoder-Decoder
原始 Transformer 采用 编码器-解码器(Encoder-Decoder) 结构,用于序列到序列任务(机器翻译):
- Encoder: 层,每层包含 (1) multi-head self-attention + (2) position-wise FFN
- Decoder: 层,每层包含 (1) masked multi-head self-attention + (2) encoder-decoder cross-attention + (3) position-wise FFN
- 每个子层都有残差连接(Residual Connection) + 层归一化(Layer Normalization):
Scaled Dot-Product Attention
- (Query)、(Key)、(Value)分别由输入经线性投影得到
- 除以 防止点积过大导致 softmax 进入梯度饱和区
- 复杂度 ,其中 为序列长度, 为维度
Multi-Head Attention
将 Q/K/V 分别投影到 个子空间(,),各头独立做 attention,最后拼接并投影。多头使模型能同时关注不同位置的不同表示子空间。
Position-wise FFN
内部维度 。逐位置独立应用,等价于两个 卷积。
位置编码
加到输入 embedding 上。由于 self-attention 本身是置换不变的(不区分 token 顺序),位置编码是引入序列顺序信息的唯一途径。
参数共享
输入 embedding、输出 embedding 和 pre-softmax 线性层共享同一权重矩阵。
训练配置(Base 模型)
,,,65M 参数,8× P100 训练 12 小时。
原始架构 vs 现代架构
现代大语言模型在原始 Transformer 基础上做了大量修改。以下按组件逐项对比。
1. 整体结构:Encoder-Decoder → Decoder-Only
| 原始 Transformer | 现代 LLM | |
|---|---|---|
| 结构 | Encoder-Decoder | Decoder-Only |
| 用途 | 序列到序列(翻译) | 自回归语言建模 |
| Cross-attention | 有(decoder 对 encoder) | 无 |
GPT 系列确立了 Decoder-Only 范式:去掉 encoder 和 cross-attention,只保留 decoder 的 masked self-attention + FFN。所有输入(prompt + response)拼成一个序列做自回归生成。这种简化使得训练和推理流程统一,且更适合大规模无监督预训练。
极少数现代模型仍用 Encoder-Decoder(如 T5、BART),但在大语言模型领域 Decoder-Only 已成主流。
2. 归一化:Post-Norm → Pre-Norm (RMSNorm)
| 原始 | 现代 | |
|---|---|---|
| 位置 | Post-Norm: | Pre-Norm: |
| 归一化类型 | Layer Normalization | RMSNorm |
原始架构在子层之后做 LayerNorm(Post-Norm)。现代架构几乎都改为在子层之前做归一化(Pre-Norm),因为 Pre-Norm 的梯度流更稳定,深层模型训练更容易收敛。
RMSNorm(Root Mean Square Normalization) 进一步简化了 LayerNorm——去掉均值中心化,只做方差归一化:
计算更快,效果相当。LLaMA、GPT-NeoX、DeepSeek 等均采用 RMSNorm。
3. 激活函数:ReLU → SwiGLU
| 原始 | 现代 | |
|---|---|---|
| FFN 激活 | ReLU | SwiGLU / GeGLU |
| FFN 结构 | 两层线性 | 三层线性(gate 机制) |
原始 FFN 用 ReLU 激活:。
现代架构广泛采用 SwiGLU(Shazeer, 2020),引入门控机制:
其中 。SwiGLU 引入了第三个权重矩阵(gate),需要更多参数,但在同等计算量下效果显著更好。为保持参数量一致, 通常相应调小(如从 调到 )。
4. 位置编码:正弦 → RoPE
| 原始 | 现代 | |
|---|---|---|
| 方式 | 绝对正弦编码(加到 embedding) | RoPE(旋转位置编码,作用在 Q/K) |
| 外推能力 | 有限 | 更好(结合 NTK 等扩展) |
原始正弦位置编码是绝对的——每个位置有一个固定向量加到 embedding 上。
RoPE(Rotary Position Embedding)(Su et al., 2021)把位置信息编码为 Q 和 K 向量的旋转角度:
RoPE 的核心优势是位置信息隐含在 的内积中,使得注意力分数只依赖相对位置(),而非绝对位置。结合 NTK-aware scaling 等方法,RoPE 对训练长度之外的序列有更好的外推能力。LLaMA、Qwen、DeepSeek 等主流模型均采用 RoPE。详细推导见 rope。
5. 注意力机制:MHA → GQA / MLA
| 原始 | 现代 | |
|---|---|---|
| 注意力 | MHA(每头独立 Q/K/V) | GQA 或 MLA |
| KV heads 数量 | (与 Q heads 相同) | 远少于 |
| 推理 KV Cache | 大 | 显著减小 |
原始 MHA(Multi-Head Attention) 中, 个头各有独立的 K 和 V 投影。推理时,每个头的 K/V 都要缓存(即 kv-cache),显存占用与头数成正比。
GQA(Grouped Query Attention)(Ainslie et al., 2023)让多个 Q 头共享同一组 K/V 头。例如 LLaMA 2 70B 用 8 个 KV 头服务 64 个 Q 头,KV Cache 缩小到 MHA 的 ,推理效率大幅提升,质量损失很小。
MQA(Multi-Query Attention) 是 GQA 的极端情况:所有 Q 头共享 1 组 K/V。
MLA(Multi-head Latent Attention)(DeepSeek V2)更进一步:将 K/V 压缩到一个低秩潜在向量中,kv-cache 仅需存储一个 KV head 的量。
6. FFN 层:Dense → MoE
| 原始 | 部分现代架构 | |
|---|---|---|
| FFN 结构 | Dense(全参数参与) | MoE(稀疏激活) |
| 计算量 | 固定 | 与激活专家数 成正比 |
原始 FFN 是 Dense 的——每个 token 经过完整的两层(或三层 SwiGLU)线性变换。
MoE(Mixture of Experts) 将 FFN 拆成多个小专家,每个 token 通过 Gate 选择 Top- 个专家计算。参数总量极大但单 token 计算量可控。
DeepSeek V3 采用 256 个细粒度专家()+ shared experts。MoE 涉及专门的 EP 策略。并非所有现代模型都用 MoE——LLaMA、GPT-4o 等仍为 Dense。
7. 规模
| 原始 | 现代 | |
|---|---|---|
| 参数量 | 65M (base) / 213M (big) | 7B ~ 700B+ |
| 层数 | 6 | 32 ~ 126 |
| 512 / 1024 | 4096 ~ 18432 | |
| 训练数据 | 4.5M 句对 | 数万亿 token |
规模增长了三到四个数量级。这使得许多原始论文中无关紧要的设计选择(如归一化位置、激活函数)变得关键——在超大规模下,训练稳定性和效率的边际差异会被放大。
总结对比表
| 组件 | 原始 Transformer (2017) | 现代 LLM (2024-2025) |
|---|---|---|
| 整体结构 | Encoder-Decoder | Decoder-Only |
| 归一化 | Post-LN | Pre-RMSNorm |
| FFN 激活 | ReLU | SwiGLU |
| FFN 结构 | Dense | Dense 或 MoE |
| 位置编码 | 绝对正弦 | RoPE |
| 注意力 | MHA | GQA / MLA |
| 参数量 | 65M-213M | 7B-700B+ |
这些改动并非凭空出现,而是在规模扩大过程中逐步被验证的:Pre-Norm 解决了深层训练不稳定,SwiGLU 在同等算力下提升表达能力,RoPE 改善长序列建模,GQA/MLA 降低推理成本,MoE 在参数量和计算量之间找到新的平衡点。
不变的核心
尽管有这些修改,Transformer 的核心设计至今未变:
- Self-attention 仍是序列建模的基础算子—— 复杂度的根本结构没有改变
- 残差连接 + 归一化 仍是层间连接的标准方式
- 自回归生成(逐 token 生成,masked attention)仍是主流 LLM 的推理范式
- FFN 层 仍占据模型参数的绝大部分
相关页面
- KV Cache 与推理优化见 kv-cache
- MoE 与专家并行见 expert-parallelism
- LLM 并行训练策略见 llm-parallelism
- SGLang 推理系统见 sglang
Comments