GPT-3 (175B) 参数量完全分解

作者:

核心超参数

超参数 | 值

层数 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%

关键结论

  1. FFN 占大头:每层 FFN 参数量是 Attention 的 2 倍,整体占总参数的约 2/3。这是因为 FFN 的中间维度 d_ff = 4d,本质上是两个大矩阵相乘。
  2. Attention 占约 1/3:主要是 Q/K/V/O 四个 d × d 的投影矩阵。
  3. Embedding 占比极小:虽然绝对数字很大(6 亿+),但相对于 175B 来说不到 0.4%。
  4. 计算公式可以简化为:≈ L × 12d² + V × d,其中 12d² = 4d²(Attn) + 8d²(FFN),加上 Embedding 项。
  5. 参数数量与层数 L 和模型维度 d 是线性/二次关系,这也是为什么增大 d 对参数量的影响尤其大。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注