2024年9月20日

目前能够使用的最高端的训练显卡,就是A100了(一般人用不起H100,这里就不纳入考虑了)。A100有两种配置:40GB显存版本和80GB显存版本。乍一看,80GB显存版本的A100训练效率应该是40GB显存版本A100的两倍。但是,经过仔细计算,我发现这一结论是粗糙的、经不起推敲的。根据我的实验数据,在训练大语言模型时,80GB显存版本A100的训练效率可以达到40GB显存版本A100的四倍甚至更高。

将图像特征转化成与语言模型特征对齐的Q-Former、语言模型FlanT5-XXL等模块,显存占用大约0.2GB。

优化器的显存占用正比于模型中可训练参数的大小。对于常用的Adam/AdamW来说,这个比例系数为3(感谢@formath和@惨绿少年指正,优化器的开销包括梯度、一阶估计、二阶估计三份)。考虑到Mini-GPT4模型中可训练参数很少(只有一层线性层),因此这部分的显存占用基本可以忽略。(具体来说,这部分参数大约占用45MB显存,加上优化器占用的显存 45MB x 3 = 135 MB,一共占用180MB≈0.18GB显存)

这部分是真正能用于训练的显存,而且和batchsize成正比。batchsize则决定了训练效率。

LLaMA模型的序列长度为2048,经过测算,batchsize每增大1,显存占用增大约0.65GB。

对于A100的40GB显卡,最atchsize为20,但是此时显存占用已经到了临界点,容易出现out of memory的错误。因此实际中使用batchsize为16更稳妥。

对于A100的80GB显卡,理论最atchsize(将上图中的直线的幂次方,因此只测到了64。

由此可见,要达到A100 80GB的训练效率,需要4块甚至5块A100 40GB。而即使有了4块A100 40GB,为了使用多张卡同时训练,需要进行数据并行,多卡之间还得频繁通讯,如果只是PCIe版本的显卡而没有NVLink或者SXM配置,通信效率会极大地拖累训练进度。

保守估计,对于训练Mini-GPT4模型来说,A100 80G的训练效率能比A100 40G高四倍。对于大模型的训练也能得到类似的结论。

感谢揽睿星舟平台提供的计算资源支持,目前平台上还有一些A100 80G可用,而且只要6.4元/小时。

最后我想说,或许大家不必跟风配置八卡A100机器,想清楚自己的使用场景,或许一张A100 80G的显卡就够用了,还可以省去SXM和NVLink的巨额费用。

发表评论

邮箱地址不会被公开。 必填项已用*标注