Week2-大模型参数计算方法
大模型参数计算方法总结
本指南简要总结了如何估算一个 Transformer 架构(例如 GPT、LLaMA、BERT)的大模型参数量,便于理解如 “7B”、“13B” 等模型中参数是如何计算得出的。
🔢 模型参数的组成部分
一个典型的 Transformer 模型的参数来源包括:
| 模块 | 参数类型 | 参数数量计算公式 |
|---|---|---|
| 词嵌入层 (Embedding) | token embedding, 可能还有 positional embedding | vocab_size × hidden_dim |
| 多头注意力层 (Self-Attention) | Q/K/V 投影 + 输出投影 | 4 × hidden_dim × hidden_dim |
| 前馈神经网络 (FFN) | 两层线性变换 | 2 × hidden_dim × ffn_dim |
| 层归一化 (LayerNorm) | γ 和 β 每个 hidden_dim 一对参数 | 2 × hidden_dim |
| 输出层 (LM head) | 将隐藏状态映射回词表空间 | vocab_size × hidden_dim(有时与 embedding 共享) |
📐 常用变量定义
hidden_dim:Transformer 中的隐藏维度(如 768, 2048, 4096 等)ffn_dim:前馈层的中间维度,通常为4 × hidden_dimnum_layers:Transformer 层数(如 12, 24, 32 等)vocab_size:词表大小(如 30,000 或 50,000)
🧮 总参数估算公式
若不共享输出投影层和 embedding:
Param_total = vocab_size × hidden_dim # embedding
+ num_layers × [
4 × hidden_dim² # Q, K, V, Output projection
+ 2 × hidden_dim × ffn_dim # FFN
+ 2 × hidden_dim # LayerNorm γ, β
]
+ vocab_size × hidden_dim # LM Head (可共享)
注意:LayerNorm 和 bias 参数量较小,通常可忽略不计。
🧾 示例:7B 模型参数估算
假设:
hidden_dim = 4096num_layers = 32vocab_size = 50,000ffn_dim = 4 × 4096 = 16,384
计算:
- Embedding:
50,000 × 4096 = 204M - 每层 Transformer:
4×4096² + 2×4096×16384 = 67M + 134M ≈ 201M - 所有层:
32 × 201M = 6432M - LM Head:
≈204M
总计:
204M (embedding) + 6432M (transformer) + 204M (LM head) = ≈ 6840M ≈ 6.84B ≈ 7B
📊 常见模型配置简表
| 模型名称 | 参数量 | 层数 | 隐藏维度 | 注意力头数 |
|---|---|---|---|---|
| GPT-2 Small | 124M | 12 | 768 | 12 |
| GPT-3 | 175B | 96 | 12288 | 96 |
| LLaMA-7B | 7B | 32 | 4096 | 32 |
| LLaMA-13B | 13B | 40 | 5120 | 40 |
| LLaMA-65B | 65B | 80 | 8192 | 64 |
✅ 总结
- Transformer 参数主要集中在 Attention 和 FFN 中。
- 参数量 ≈
O(num_layers × hidden_dim² + hidden_dim × vocab_size) - 是否共享 embedding 和 LM head 会影响最终总量。
- 可以通过上面的公式快速估算模型规模。

浙公网安备 33010602011771号