近年的开源 LLM 在归一化、激活函数和位置编码等方面逐渐趋同。本文根据 Stanford CS336 课程讲座,整理常见选择及其原因。
来源: Stanford CS336,Tatsu 讲座
可以把这几年的关注点概括为:沿用 Llama 2 式架构、提高训练稳定性,再到降低长上下文成本。
一、架构层:已收敛的 7 件事
1. Pre-Norm(Layer Norm 挪出残差流)
原版 Transformer 把 LN 放在残差里,几乎所有现代模型都挪到外面。
原因: 保持残差路径直接,有助于稳定梯度传播。
2. RMS Norm 替代 LayerNorm
RMS Norm 省去了 LayerNorm 的减均值和 bias 操作。在所述测试中,FLOPs 减少 0.17%,运行耗时减少 25%,主要收益来自减少数据搬运。
3. 所有 bias 项全删
与简化归一化类似,去掉 bias 可以减少内存搬运。
4. 激活函数用 SwiGLU 或 GeGLU
gated linear unit 几乎被所有现代模型采用:
- Llama / Qwen / Mistral → SwiGLU
- Google 系(Gemma / T5) → GeGLU
- 两者效果通常接近,可根据实现选择
5. 位置编码用 RoPE
2024 年之后基本统一。原理:把每对维度按位置旋转一个角度,让 inner product 只依赖相对位置。
6. Transformer Block 串联(非并联)
GPT-J / Palm 试过并联,现在基本被放弃。串联的实现优化得太好了,并联省的那点系统开销不值得损失表达力。
7. 调整归一化位置
一些模型会在 Attention 前后增加归一化层,或使用 double norm,以改善训练稳定性。
二、超参数:已收敛的 5 个数
1. FFN 维度 / Hidden 维度
| 类型 | 比值 | 说明 |
|---|---|---|
| 非 GLU 模型 | 4× | 原始 Transformer |
| GLU 模型 | 8/3 ≈ 2.67× | GLU 多一组矩阵,保持总参数量 |
| Llama 系 | 3.5× | 实际取值偏大 |
| T5 1.0(较大取值) | 64× | T5 1.1 后来调回常见范围 |
2. Head 数 × Head 维度 ≈ Hidden 维度
几乎所有模型都遵守,T5 是为数不多的例外。
3. 模型纵横比(Hidden / 层数)≈ 100
- 太深 → pipeline parallel 难做
- 太宽 → 表达力受限
- 100 是系统约束 + 表达力的平衡点
4. Vocab Size
- 单语模型:~30K(早期 GPT-2)
- 多语/通用模型:100K–200K(GPT-4 / Llama 3 / Gemma 都在这个范围)
- 现代基本都是后者
5. Weight Decay
Weight Decay 仍被广泛使用。它会影响优化过程,帮助模型收敛到更好的解,作用不局限于防止过拟合。
⚠️ 不要因为「单 epoch 不会过拟合」就把它关掉。
三、提高训练稳定性的三个技巧
1. Z-loss
输出 softmax 的归一化项可能变得过大。加一个 (log Z)² 的正则项,让 Z 始终接近 1。
- DCLM / Olmo 都用
2. QK Norm
Attention 的 Q 和 K 在矩阵乘之前各加一个 LN,控制 softmax 输入的尺度。
- 先在多模态模型中采用,后来扩展到更多大模型
3. Logit Soft Cap(仅 Google 系)
用 tanh 平滑限制 Attention logit 的范围。
- Gemma 2/3/4 都在用
- 会损失一点点性能,慎用
四、Attention 两个新趋势
1. GQA(Grouped Query Attention)几乎统一
问题: 原版 multi-head 推理时 KV cache 会让算术强度崩到 1/h。
方案: 共享 K 和 V,但保留多个 Q。表达力几乎不损失,推理成本砍掉 80%。
GQA 已广泛用于需要降低 KV Cache 开销的模型。
2. 局部 + 全局 Attention 交替
处理长上下文的新范式:
- 每 4 层有 1 层 full attention,其他 3 层是 sliding window(只看附近的 token)
- Cohere Command A 起头 → Llama 4 / Gemma 4 / Olmo 3 全在用
- 比纯 SSM 更稳,比纯 full attention 便宜得多
- Qwen 3.5 做了变体:把 sliding window 那 3 层换成 SSM
总结:2026 标准模板
训练自己的模型时,可以从以下配置起步,再按任务和硬件调整:
| 维度 | 标准选择 |
|---|---|
| Norm | RMS Norm, Pre-Norm, 无 bias |
| 激活 | SwiGLU 或 GeGLU |
| 位置编码 | RoPE |
| Block | 串联 |
| FFN/Hidden | 8/3 或 3.5 |
| Vocab | 100K+ |
| Attention | GQA + 局部/全局交替 |
| 稳定 | Z-loss + QK Norm |