大模型参数组成计算QwQ-32B为例

计算大模型参数量主要依赖于模型的架构和各层配置,我们把常用大模型分为三层:输入层、transformer层、输出层。

输入层

参数组成是Embedding的词表总和

transformer层

参数组成包括归一化参数、QKV的参数、输出全连接线性变换参数、FFN投影参数

输出层

归一化参数、全连接线性变换参数

我们以QwQ-32B为例,计算32B参数组成

QwQ-32B
架构 :使用了 RoPE(旋转位置编码)、SwiGLU、RMSNorm 和带有偏置项的注意力 QKV
各参数维度参考modelscope文件:

 名称大小
token词表大小 vocab_size 152064
词向量维度 hidden_size 5120
中间维度 intermediate_size 27648
KV共享 num_key_value_heads 8
Q num_heads 40
头维度 head_dim 128
层数 transformer block 64

输入层

词表参数:vocab_size * hidden_size = 152064 * 5120

transformer层

Q的参数:hidden_size * hidden_size = 5120 * 5120
K的参数:由于KV是GQA,总共8个头,所以分成5组,hidden_size * (hidden_size / 5) = (5120 * 5120 / 5)
V的参数:和K一样,hidden_size * (hidden_size / 5) = (5120 * 5120 / 5)
输出后全连接线性转换参数:hidden_size * hidden_size = 5120 * 5120
FFN上投影:intermediate_size * hidden_size = 27648 * 5120
FFN下投影:intermediate_size * hidden_size = 27648 * 5120
SwiGLU门控参数:intermediate_size * hidden_size = 27648 * 5120
两个RMSNorm归一化:2 * hidden_size = 2 * 5120

输出层

归一化忽略不计,全连接线性变换:vocab_size * hidden_size = 152064 * 5120

总参数量

输入层 +(transformer层 * 64 )+ 输出层

关注微信公众号

 

posted on 2025-04-20 12:59  功夫小熊猫  阅读(121)  评论(0)    收藏  举报