核心超参数
超参数 | 值
层数 L | 96
模型维度 d_model | 12,288
注意力头数 n_heads | 96
每头维度 d_head | 128
FFN 维度 d_ff | 4 × 12,288 = 49,152
词表大小 V | 50,257
逐项计算
1. Token Embedding
V × d = 50,257 × 12,288 = 617,558,016 ≈ 0.618B
2. Positional Embedding
GPT-3 的上下文长度为 2,048:
2,048 × 12,288 = 25,165,824 ≈ 0.025B
3. 每层 Transformer Block(共 96 层)
Multi-Head Attention(4 个线性投影):
W_Q: d × d = 12,288² = 150,994,944
W_K: 150,994,944
W_V: 150,994,944
W_O: 150,994,944
偏置项: 4 × 12,288 = 49,152(可忽略)
小计 ≈ 604M
Feed-Forward Network(2 层):
W_1: d × d_ff = 12,288 × 49,152 = 603,979,776
W_2: d_ff × d = 49,152 × 12,288 = 603,979,776
偏置项: ≈ 61,440(可忽略)
小计 ≈ 1,208M
LayerNorm(×2):2 × 12,288 = 24,576(可忽略)
每层合计 ≈ 1,812M = 1.812B
汇总
组件 | 参数量 | 比例
Token Embedding | ~0.618 B | 0.35%
Positional Embedding | ~0.025 B | 0.01%
96 × Attention | ~57.99 B | 33.1%
96 × FFN | ~115.96 B | 66.3%
LayerNorm 等 | ~0.005 B | ~0%
总计 | ≈ 175 B | 100%
关键结论
- FFN 占大头:每层 FFN 参数量是 Attention 的 2 倍,整体占总参数的约 2/3。这是因为 FFN 的中间维度 d_ff = 4d,本质上是两个大矩阵相乘。
- Attention 占约 1/3:主要是 Q/K/V/O 四个 d × d 的投影矩阵。
- Embedding 占比极小:虽然绝对数字很大(6 亿+),但相对于 175B 来说不到 0.4%。
- 计算公式可以简化为:≈ L × 12d² + V × d,其中 12d² = 4d²(Attn) + 8d²(FFN),加上 Embedding 项。
- 参数数量与层数 L 和模型维度 d 是线性/二次关系,这也是为什么增大 d 对参数量的影响尤其大。
发表回复