除了 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