TencentARC / LLaMA-Pro

[ACL 2024] Progressive LLaMA with Block Expansion.
https://tencentarc.github.io/LLaMA-Pro/
Apache License 2.0
469 stars 35 forks source link

论文Table7请教 #1

Closed XiaoYee closed 8 months ago

XiaoYee commented 9 months ago

请问Table7中的MoE是什么样的设置?

hills-code commented 9 months ago

我们实现的MoE类似于soft_moe,对32层的每个FFN进行扩展,保持原来的$W_3$不变,学习一个额外的权重为$\hat{W_3}$的Linear层,同时每层新增两个可学习的参数$\alpha_1,\alpha_2$,初始$\alpha_1=1,\alpha_2=0,\hat{W_3}=0$,forward的时候$W_3,\hat{W_3}$对应的Linear的输出将会和$softmax(\alpha_1,\alpha_2)$进行加权求和得到结果,并输入进下一个block。我们的实现和传统的moe不同点在于所有的token都会进入所有的expert,这比传统的moe用了更多的flops,因为我们的深度扩展也会带来更多的flops,所以我认为这是一个相对公平的对比。

icoderzqliu commented 7 months ago

我们实现的MoE类似于soft_moe,对32层的每个FFN进行扩展,保持原来的W3不变,学习一个额外的权重为W3^的Linear层,同时每层新增两个可学习的参数α1,α2,初始α1=1,α2=0,W3^=0,forward的时候W3,W3^对应的Linear的输出将会和softmax(α1,α2)进行加权求和得到结果,并输入进下一个block。我们的实现和传统的moe不同点在于所有的token都会进入所有的expert,这比传统的moe用了更多的flops,因为我们的深度扩展也会带来更多的flops,所以我认为这是一个相对公平的对比。

请问可以release一下论文中对于moe方法的实现吗?

hills-code commented 7 months ago

我们在整理预训练代码,moe的类似实现也可以参考mixtral,https://github.com/huggingface/transformers/blob/1ba89dc2d2b5423ccbb2c52ac5e3b4282e54794b/src/transformers/models/mixtral/modeling_mixtral.py#L816

chensongcan commented 5 months ago

请问啥时候可以开源一下llama pro moe的训练方法呢

hills-code commented 5 months ago

预计在这个月开源训练代码