大语言模型推理显存占用简析
模型参数是经过预训练后的数据固定存储在显存中的权重矩阵,其简易公式为:
参数显存=参数量×精度字节数 参数量:直接由模型架构决定,无法后期调整修改。例如,GPT-3有175B参数,LLaMA-2 70B有700亿参数,DeepSeek V3有671B参数。
精度选择,可以通过不同量化手段降低参数精度,来得到节省内存的效果:
- FP32(32位浮点):4字节/参数
- FP16/BF16(16位浮点):2字节/参数
- INT8(8位整型):1字节/参数
- 自从DeepSeek发布V3和R1后为了在更低的环境下运行,大家用了更多精度的参数如2bit和1.58bit
但是算力不能直接看显卡的总算力,需要查看详细的显卡规格表,例如50系的AI TOPS是FP4,40系默认FP8不支持FP4,50系理论上换算FP8要减半才能直接对比
计算示例: 一个13B参数的模型使用FP16精度时:
13\times10^{9}\times2bytes=26GB (大约24G)
FP8的DeepSeek v3大约需要620G的显存,全精度满血版fp16的就需要1240G的显存,h200*8的单机节点也是有点吃力了,不过根据之前的研究,降低精度带来的显存收益高于性能下降带来的损失。