deepseek-ai / DeepSeek-V2

DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model
MIT License
3.47k stars 143 forks source link

如何实现Device limited route #12

Closed dawson-chen closed 4 months ago

dawson-chen commented 4 months ago

在Device limited route设置下,每个token最多对应了不同的M个设备,因此理论上需要的通讯量确实减少了。 但是,按照Megatron中MoE的2种通讯实现,不管是all gather还是all to all,实际上的通讯组都是完整的EP group,所以我理解通讯量并没有减少。 请问你们在工程侧是如何实现从而能让这种策略减少实际的通讯量的?

LyricZhao commented 4 months ago

@dawson-chen

Hi,可以参考我们的 group_limited_greedy gate 实现,在 236B 模型中,一个 token 最多去 3 个 rank (group,也就是一张 GPU,有 160 / 8 = 20 个 expert),这样就可以减少通信量(每个 token 不需要去所有的 rank),所以本质上还是一个标准的 all2all-v。

(通讯组的确都是完整的,但不等价于通信量不会减少,你要考虑每个 token 去了几个 rank,每个 rank 会接收多少 token,通过恰当的 all2all 接口是可以做到的)

另外,再一种减少精度的减少通信的方法是使用低比特传输。

正如论文中所说,实现中 all2all 和 shared expert 进行了重叠,所以通信量只要能被重叠既可接受。