在大型语言模型(LLM)中,模型参数量的计算主要基于 Transformer架构的组成模块。以下是详细计算步骤和示例:
1. 核心模块的参数量计算
a. 自注意力层(Self-Attention)
- 每个注意力头的参数:由查询(Q)、键(K)、值(V)三个矩阵和一个输出矩阵组成。
- 输入维度:
d_model
(嵌入维度) - 输出维度:
d_model
- 参数量:
3 × d_model²
(Q/K/V) +d_model²
(输出矩阵) =4d_model²
b. 前馈神经网络(Feed-Forward Network, FFN)
- 包含两个线性层,中间维度通常为
4 × d_model
(如GPT、BERT)。 - 第一层:
d_model → 4d_model
→ 参数量:d_model × 4d_model = 4d_model²
- 第二层:
4d_model → d_model
→ 参数量:4d_model × d_model = 4d_model²
- 总计:
4d_model² + 4d_model² = **8d_model²**
c. 层归一化(LayerNorm)
- 每个Transformer块包含2个LayerNorm(分别在自注意力和FFN后)。
- 参数量:
2 × 2d_model
(缩放因子和偏置) =4d_model
2. 单层Transformer块的参数量
将上述三部分相加:
单层参数量 = 自注意力 + FFN + LayerNorm
= 4d_model² + 8d_model² + 4d_model
≈ 12d_model²(忽略偏置等小项)
3. 整体模型参数量的计算
- Transformer层数(L):模型的深度。
- 词嵌入(Embedding):词汇表大小
V
×d_model
。 - 位置嵌入(可选):若使用可学习的位置编码,需加
max_seq_len × d_model
。
总参数量公式:
总参数量 ≈ 12Ld_model² + Vd_model + (max_seq_len × d_model)
4. 示例:GPT-3 175B的参数计算
- 已知参数:
d_model=12288
,L=96
,V=50257
,max_seq_len=2048
-
计算:
-
Transformer块参数量:
12 × 96 × 12288² ≈ 173.9B
- 词嵌入参数量:
50257 × 12288 ≈ 0.62B
- 位置嵌入参数量:
2048 × 12288 ≈ 0.025B
- 总计:
173.9B + 0.62B + 0.025B ≈ 175B
5. 简化总结
- 核心参数来源:Transformer块的矩阵乘法(占比超95%)。
- 关键影响因子:
d_model
(平方级增长)和层数L
。 - 小技巧:直接估算时,可用
12Ld_model²
快速计算主体参数量。