FastAINet用于降低推理成本,已经是非常明确了。但是也有一些客户关心,FastAINet能否用于降低大模型的训练成本?答案也是可以的。
随着大模型规模的增长,使用单GPU训练已经明显不足了。
在单个GPU上有多种方式来提升训练效率:
Checkpointing:将部分操作转移到GPU内存中去;
Quantizing:通过量化不同的尺寸来降低GPU显存的占用;
多GPU并行训练的方法主要有:
数据并行:当模型可以放到单一GPU上时常用的训练方法;
张量并行/管道并行:当模型无法完全由单一GPU载入时;
什么是数据并行?
简单说就是把数据批次分配到不同的GPU上进行训练。但是每个GPU维护自己的模型实例与优化器。当GPU获得自己的数据批次,用于计算自己的梯度。然后,将每个GPU的梯度收集,再应用到各个GPU上更新模型。这样就相当每个GPU的模型实例会有相同的参数与权重。工作流程如下图:
数据并行是如何进行通信的?
GPU卡之间是通过IB卡进行通信,服务器之间需要通过交换机进行通信。通信流程如下:
FastAINet是一张光纤直连的广域网,相比互联网有更低的延时,接近零抖动。这样,FastAINet在数据并行训练的场景,是可以工作的,FastAINet本身就是非常适合传输大量数据的网络。
案例分析
假设在北京有一个智算中心,电费是0.8元一度。而在内蒙的智算中心,电费在0.4元一度,同时地价只有北京的10分之一。
通过使用FastAINet打通北京、内蒙的智算中心,使用100G带宽,做分布式并行数据训练。
假设使用H100(80G显存)来训练,模型大小为10B,以BF16精度来训练,参数大概要占用20G空间,梯度也要占用20G空间。在实际训练中,每个批次数据大小也就在10~20G之间,梯度在20G左右。
FastAINet大网,是完全可以支撑的。当GPU卡数与模型规模达到一定值时,就能实现比较明显的成本效益了。