模型参数量与显存占用分析
马鹏森 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/
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。