模型参数量衡量单位

M:百万(Million)

B:十亿(Billion)

1B=1000M1B = 1000M1B=1000M

参数存储精度

模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么样的精度去存储。

  1. 单精度浮点数(FP32):每个参数占用4字节(32位),提供较高的数值精度。
  2. 半精度浮点数(FP16):每个参数占用2字节(16位),可以节省存储空间和计算资源,但精度有所降低。
  3. 8位整数(INT8):每个参数占用1字节(8位),主要用于量化模型,进一步减少存储和计算开销,但精度显著降低。
  4. 双精度浮点数(FP64):每个参数占用8字节(64位),提供最高精度,但存储和计算成本也最高。

参数所占显存

参数显存 = 参数数量 × 每个参数的字节数(B)

这里的 B 指的是字节

总显存 = 参数显存 + 激活值显存 + 梯度显存 + 优化器状态显存

在使用 checkpoint 进行推理的时候,主要计算参数显存。

举例:

一个 7b 参数的模型,参数存储精度为 float16,那么:

  • 总参数个数:7∗1097 * 10^97109
  • 一个参数所占字节数:16/8=2(B)16 / 8 = 2(B)16/8=2(B)
  • 参数所占总字节数,即参数显存7∗109∗2=14∗109(B)=14∗109/1024/1024/1024≈14(G)7 * 10^9 * 2 = 14*10^9(B)= 14*10^9 / 1024 / 1024 / 1024 ≈ 14(G)71092=14109(B)=14109/1024/1024/102414(G)

简单来看,如果是float16,参数显存就是 参数量*2;如果是 float32,参数显存就是 参数量*4;如果是int8,参数显存就是 参数量*1

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐