微调过大模型的人一定会知道,机器就是心头的痛,数据可以慢慢整,代码可以慢慢调,但是没有训练资源,机器不给力,真的是感觉很无力。

之前跟昇腾910B (单卡64G)快乐相处了一段时间,最近又玩转一台V100 (单卡32G),还有个RTX5880 (单卡48G)后真的是感觉这个问题太重要了。

使用什么机器至少决定了以下几个问题:

1.环境好不好搭(甚至能不能搭得起来)

2.不使用量化或者deepspeed的话最大只能训多大的模型

3.使用量化或者deepspeed的话最大只能训多大的模型

4.使用什么参数

5.训练时长

先来看一个关键对比:

1. 不是所有有的机器都能简单训起来

英伟达系列的卡有一个GPU定义的一个版本号,叫做计算能力”(Compute Capability),用来标识硬件的架构代次和核心功能等级,它直接决定了你的显卡能跑什么、跑得有多快

它可以理解为GPU的“指令集架构”或“功能等级”。数字越高,代表架构越新、支持的功能越多、计算潜力越大。

这里我让大模型给了一个对比

首先有一点是7以下是没有Tensor Core,ensor Core是专门为矩阵运算(深度学习的基础)设计的特殊计算单元,能极大地加速 FP16(半精度)和 FP32(单精度)混合精度计算。如果没有这个,FP16计算不会获得加速,训练效率会低很多,且很多为Tensor Core优化的新特性无法使用。如果没有这个即使能训,速度应该也很慢。

我有个P40,改天试试。

虽然资料说7.0 被所有主流框架支持,一些最新的库特性(如某些针对Ampere架构优化的算子)可能无法在7.0上启用,但对于标准的Transformer模型训练(包括LoRA、QLoRA)完全没有问题。但是事实上在实际训练中,7.5以下会挺麻烦。

这里举个例子,我在V100上搞训练,一直遇到一个问题

其实根本原因就是向量化的bitsandbytes 缺少适用于V100( 计算能力7.0)的预编译库文件。

从 bitsandbytes 0.39.1版本开始,官方PIP安装包不再包含对计算能力7.5以下GPU的预编译支持。

即使不使用qlora,初始化的时候还是会识别到这个问题报错。

即使采用一些配置避开bitsandbytes 初始化时的欢迎信息、CUDA 检测和版本兼容性检查,从而避免触发报错。PEFT库的LoRA模块在创建适配器时,会尝试导入 bitsandbytes 的8位量化相关功能,又会报错需要修改,就会有一些缝缝补补的事情。

所以大家在获得一个机器,想训练的时候还是要关注一下它的能力以及可能产生的问题。

2.不使用量化或者deepspeed的话最多只能训多大的模型

由于不同的机器单卡的显存都不一样,如果要直接训的话,加载模型需要耗费的显存是不容忽视的,比如要训14B的模型,单卡要14*2G以上的 容量,加上其他的开销,即使gradient_accumulation_steps 设为16,也要超过32G的显存,V100单卡32G也训不起来。

所以不得不考虑单卡的显存

这个是我在华为910B上用7张卡微调14B时候的显存占用(gradient_accumulation_steps 设为4,cutoff_len设为512)

3.使用量化或者deepspeed的话最多只能训多大的模型

或者有人说显存不够可以用量化qlora,那又回到了上面举的例子,计算能力要在7.5以上,否则量化编译库根本就不能直接获得。

还有一个东西那就是deepspeed,这个是个多卡联合训练的时候可以通过多卡来分担加载模型,那这里就要看你有几张卡,分担完你的单卡的显存够不够。

4.使用什么参数

不同的参数下对显存要求不同,带来的训练速度也不同,空间换时间的道理大家都懂。

不用deepspeed的话,训14B,如果gradient_accumulation_steps 设为16,cutoff_len设为512,单卡需要30几G。如果gradient_accumulation_steps 设为4,单卡就就要快40G。如果cutoff_len设为1024,就要40几G。

910B:

这个是在RTX上5880微调14B

如果空间大,带来的速度是让人羡慕的。

5.训练时长

在上面一点已经说了时间换空间的道理,不同机器产生的训练速度的上限不一样。但是其实还有一个点会影响到训练时间,就是多卡训练时候卡之间的通信。上面的对比图里面可以看到,不同卡的显存带宽不一样。HBM显存的带宽远高于GDDR,NVLink互联速度远高于PCIe,这对多卡并行训练至关重要。

最后总结一下:在普通人的普通训练方式下,卡的能力有上限,单卡的显存有上限,参数可调的范围根据卡的情况也有上限,带来的训练效率也有上限。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐