LLaMA-Factory icon indicating copy to clipboard operation
LLaMA-Factory copied to clipboard

多机多卡跑zero3怎么分配每一台机器上是一个完整的模型?

Open haohuisss opened this issue 11 months ago • 2 comments

Reminder

  • [X] I have read the README and searched the existing issues.

Reproduction

使用两台8卡的A100服务器,跑参数量较大的模型,需要使用zero3来将模型分块,但是卡间通讯为万兆网不是IB通信,在使用zero3时,将一个模型分割在两个机器上了,导致训练速度非常慢。能否通过某些方法实现两台机器各分配一个完整的模型,模型参数能够在同一台服务器上,这样通信压力就会小很多了。

Expected behavior

No response

System Info

No response

Others

No response

haohuisss avatar Mar 07 '24 02:03 haohuisss

zero3 就是 模型参数分布式分布, 以卡的维度来分配,而不是机器的维度,你这个属于特殊需求了,应该不支持。

codemayq avatar May 08 '24 01:05 codemayq

zero3 就是 模型参数分布式分布, 以卡的维度来分配,而不是机器的维度,你这个属于特殊需求了,应该不支持。

嗯,目前deepspeed确实只按照卡为单位来分配模型参数。但这个问题其实已经有些研究,例如Megatron-DeepSpeed 中就有类似的机制,并且还可以支持3D并行,应该能为模型训练提供更好的帮助。

haohuisss avatar May 08 '24 01:05 haohuisss