我们通常看到发布的开源模型都会有写10b,17b,100b等等这些数字,这些都是指的模型参数规模,现在大模型参数从原来的亿级暴增至几百亿,这些由于现在gpu性能的大幅提升以及应用对模型的性能需求,导致了参数规模爆发式增长。
模型训练阶段算力和显存都制约着训练的速度和训练阶段的持续性,如果一个模型在不同等算力的支持下训练时长会产生很大差异,这就是为什么使用高性能算力的显卡能够节省很多时间成本,而显存,当显存不足以装下模型和训练数据会导致训练过程出错中断,所以模型就影响了训练的持续性。
今天我们就是介绍下如何评估ai模型训练和推理阶段需要的gpu资源的分析,实际这个准确的gpu现存需求还是要根据实际情况进行二次评估和分析确认。
我们都知道模型有精度,这个精度表示模型速度存储到显存上所占用的空间长度,不同的精度占用的显存大小也是不一样的。
我们先来看看通常情况下模型精度的长度
格式 | 名称 | 占用空间 | 用途 |
---|---|---|---|
FP64 | 双精度 | 8字节 | 气候模拟,量子化学 |
FP32 | 单精度 | 4字节 | 传统科学计算、游戏渲染 |
FP16 | 半精度 | 2字节 | 深度学习训练(混合精度) |
BF16 | 2字节 | 适用大模型学习和推理 | |
INT8 | 1字节 | 边缘设备部署(如摄像头),推理阶段适用推荐的精度 | |
INT4 | 0.5字节 | 其他精度要求较低的边缘设备 |
除了以上精度以外,还有TF精度,它的优点是自动计算,占用显存更少,NVIDIA Ampere架构专用,TF32自动加速FP32计算,无需修改代码。
pytorch中可以适用简单代码检测是否支持TF32
import torch
torch.backends.cuda.matmul.allow_tf32
在实际使用中,还有使用混合精度存储,训练时用FP16加速计算,用FP32保存关键数据(如梯度),避免数值下溢/溢出,需要工具支持。
接下来我们就是简单评估一下deepseek R1 671B模型需要的显存大小,我们来大致计算下,计算出来的结果,我们需要使用的显存只能多不能少。
671*1000000000*2/(1024*1024*1024) ≈ 1250G,实际我们可以通过资料查询出来,671B的需要1500G左右。
当让上述算出来的1250G只是加载模型参数需要的显存大小,整个模型加载到显存,还有模型的梯度,优化器,激活值,喂给模型的训练数据,缓存等等。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1044
评论列表