模型参数量与显存占用分析

马鹏森 2024-10-26 12:01:01 阅读 93

常用模型参数量-显存占用估计统计如下表:

精度&显存模型占用量
32bit(FP32)-单精度 16bit(FP16/BF16)-半精度 8bit(int8) 4bit(int4)
参数
1 4byte 2byte 1byte 0.5byte
1B 4GB 2GB 1GB 0.5GB
2B 8GB 4GB 2GB 1GB
7B 28GB 14GB 7GB 3.5GB
13B 52GB 26GB 13GB 6.5GB
32B 128GB 64GB 32GB 16GB
70B 280GB 140GB 70GB 35GB

训练显存

由于反向传播、Adam优化和Transformer架构等因素,保守估计,训练所需的显存是模型参数所占显存的4倍(1x 为模型 、1x 为梯度、1~2x 为优化器)。

注1:使用AdamW优化器,显存需求为2x;使用SGD优化器,显存需求为1x

为了确保训练期间模型收敛,参数类型一般不能是int8或int4。通常使用FP32或量化到BF16。

例如,使用单浮点精度FP32训练一个1B模型大约需要16GB(4GB x 4)。

对于float32类型:1B(10亿参数)x 4(float的字节数)+ 1*4 + 2*4 = 4*4=16G对于half/BF16类型参数:1B(10亿参数)x 2(每个BF16参数字节数)x 4 = 8 GB

推理显存

训练所需的显存是模型参数所占显存的1倍(1x 为模型)。

例如,使用单浮点精度FP32训练一个1B模型大约需要4GB(4GB x 1)。

对于float32类型:1B(10亿参数)x 4(float的字节数)=4G

 transformer系列5---transformer显存占用分析_transformer 占用显存大小-CSDN博客

https://cuiyuhao.com/posts/c87c0f5d/



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。