模型参数量的计算公式

隐藏层大小为:\(d_{model}\)
transformer的layer数:\(N\)
嵌入层大小为:\(V_{dim}\)
transformer模型参数大小 = \(N\) * (12 * \(d_{model}^2\)+ 13*\(d_{model}\))+ \(V_{dim}\)
\(d_{model}\)的数量较大时,参数量≈12*\(d_{model}^2\)*\(N\)
例如llama3-7b的配置:

  • \(d_{model}\):4096
  • \(N\):32

所以其参数估算约为:6.4b,实际为6.7B

训练

训练内存 = 模型加载内存 + 4 * 可训练参数大小

推理

推理内存 = 参数量与加载字节数的关系
前置知识:

  • 1字节 = 8bit = 8位
  • float32:表示32位的浮点数,占用字节数为4个
  • float16:表示16位的浮点数,占用字节数为2个
  • int8:表示8位的整型,占用字节数为1
  • int4:表示4位的整型,占用字节数为0.5

float32变成int8或者int4的过程就叫做模型量化。

参数量 加载方式 内存占用(G) 计算公式
7b float32 26G内存 4*7b/1024/1024/1024
7b float16 13G内存 2*7b/1024/1024/1024
7b int8 6.5G内存 1*7b/1024/1024/1024
7b int4 3.75G内存 0.5*7b/1024/1024/1024

参考

transformer的参数计算

posted on 2024-10-26 20:01  蔚蓝色の天空  阅读(137)  评论(0编辑  收藏  举报