除了 A100/H100 ,还有什么英伟达显卡方案可以突破 48G 显存?

想想175B的模型,pretrain需要 2TB的显存,是怎么训练的?目前有单卡或者双卡2T的显存吗?


目前模型并行化有四种主流方案,数据并行,零冗余数据并行,张量并行和pipeline并行。后三种策略都可以将等效显存扩大。并且还有gradiant checkpoint技术可以使用。

数据并行会将完整的模型和优化器分发到每张卡上,所以多卡显存占用和单卡显存占用没有区别。


零冗余数据并行虽然依旧是数据并行,但是每张卡只保留一部分优化器。单卡优化器的占用会减小到1/n。优化器其实显存占用是比模型要大的。并且零冗余数据并行的框架一般还提供优化器卸载,将优化器参数存储到cpu或ssd。


张量并行是将模型的参数切分到多卡上,计算也切分到多卡上,必要时从多卡收集计算结果,再广播到多卡上。所以显存占用基本就是1/n。

pipeline并行则是将模型的某些层放到某些显卡,同样也等效显存占用为1/n。


另外pipeline并行同时还可以和gradient checkpoint技术一起使用。在前向时不记录全部中间变量,反向传播时重算中间变量。也就是通过33%计算量增加为代价,减少85%左右的中间变量占用空间。

所以你买2张4090 pipeline并行,就相当于48g。买4张就相当于96g。


目前我们训练模型的方案是 0级零冗余+张量并行+pipeline并行+显卡异步+gradient checkpoint同时进行。


蓝海大脑 京ICP备18017748号-1