Transformer 架构:LLM 的引擎
"Transformer 是第一个完全依赖注意力机制的序列转导模型。" — Vaswani 等人 (2017)
要通过 LLM 面试,仅仅知道"它使用了注意力机制"是不够的。你必须理解为什么做出特定的设计选择(Pre-Norm vs Post-Norm、SwiGLU vs ReLU、GQA vs MHA、MoE vs Dense)以及块内部的数学运算。
1. 整体架构 概览
现代的 Decoder-Only Transformer(如 GPT-4 或 Llama 3)由一堆相同的块组成。每个块有两个主要子层:
- 多头自注意力(MHA):在 token 之间混合信息。
- 前馈网络(FFN):在每个 token 内独立处理信息。
关键是,它们被残差连接和层归一化包裹。
2025 年演进:
- FFN → MoE:许多模型现在在前馈层使用混合专家(Mixture-of-Experts)
- MHA → GQA:分组查询注意力减少 KV 缓存内存
- 标准 → 混合:一些模型混合使用 Transformer 和状态空间模型(Mamba)
2. Self-Attention: "路由"层
注意力机制允许 token 之间相互"对话"。它提出特定的问题来构建上下文。
Query、Key、Value 直觉
每个 token 产生三个向量:
- Query (Q):"我在寻找什么?"(例如,一个名词在寻找它的形容词)。
- Key (K):"我包含什么?"(例如,我是一个形 容词)。
- Value (V):"如果你关注我,这是我的信息。"
工程视角
自注意力通过以下步骤计算 token 之间的关系:
- 相似度:计算每对 token 的分数(QK^T)
- 缩放:防止点积爆炸,否则会导致梯度消失
- 归一化:将分数转换为概率(softmax)
- 聚合:值向量的加权和
为什么需要多头?
一个头可能关注语法(名词-动词一致性)。另一个可能关注语义(同义词)。还有一个可能关注位置(前一个词)。
| 模型 | 头数 | 头维度 | 总维度 |
|---|---|---|---|
| Llama 3 8B | 32 | 128 | 4,096 |
| Llama 3 70B | 64 | 128 | 8,192 |
| GPT-4 | 96+(估计) | 128 | 12,288 |
3. 分组查询注意力(GQA)- 2025 年标准
随着 上下文窗口的增长(8k → 128k → 1M+),KV 缓存成为内存瓶颈。为每个头存储 Key 和 Value 矩阵代价高昂。
谱系:MHA → GQA → MQA
| 机制 | Query 头数 | KV 头数 | KV 缓存大小 | 质量 | 速度 |
|---|---|---|---|---|---|
| MHA(多头) | H | H | 100% | 最佳 | 最慢 |
| GQA(分组查询) | H | G(其中 G < H) | ~1/G | 接近最佳 | 更快 |
| MQA(多查询) | H | 1 | 1/H | 较低 | 最快 |
GQA 如何工作
不再每个头有自己的 K/V 投影,而是查询头组共享 K/V:
# MHA: 32 个头,32 个 KV 对
q_heads = 32
kv_heads = 32
# GQA: 32 个查询头,8 个 KV 对(4 个一组)
q_heads = 32
kv_heads = 8 # 每个 KV 对服务 4 个查询头
优势:
- 内存减少:GQA-8 减少 8 倍 KV 缓存
- 带宽减少:推理时减少内存传输
- 质量保持:GQA-8 达到 MHA 质量的约 98-99%
采用情况:
- Llama 3 70B:使用 GQA 进行高效推理
- T5-XXL:GQA-8 用于生产部署
- Gemini 2.5:使用 GQA 变体处理长上下文
2025:加权 GQA(WGQA)
创新:每个 K/V 头的可学习参数在微调期间实现加权平均。
优势:
- 比标准 GQA 平均提升 0.53%
- 在无推理开销的情况下收敛到 MHA 质量
- 模型在训练期间学习最优分组
4. 混合专家(MoE)- 扩展革命
MoE 不使用一个庞大的前馈网络,而是使用多个专门的"专家"网络。每个 token 被路由到最相关的专家。
架构
关键组件
- Router(路由器):为每个 token 选择 top-k 专家的门控网络
- Experts(专家):专门的 FFN 网络(通常每层 8-64 个)
- 负载均衡:辅助损失确保所有专家都被利用