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_dim
  • num_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 = 4096
  • num_layers = 32
  • vocab_size = 50,000
  • ffn_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 会影响最终总量。
  • 可以通过上面的公式快速估算模型规模。
posted @ 2025-05-26 19:49  SIo_2  阅读(224)  评论(0)    收藏  举报