
代码:https://github.com/ZihanWang314/coe 中文报告:https://sandy-server-87f.notion.site/1ab9bb750b79801bbfebf01ae9a77b3f 英文报告:https://sandy-server-87f.notion.site/ChAIn-of-Experts-Unlocking-the-Communication-Power-of-MoEs-1ab9bb750b7980048d43e6aab3537cea
作者简介:王子涵,美国西北大学计算机科学博士一年级学生,导师为 Manling Li。他本科毕业于中国人民大学高瓴人工智能学院,并曾参与过 DeepSeek-V2 模型的开发工作。
独立标记处理:MoE 模型通常并行独立处理 token,专家之间没有沟通。 内存效率低下:由于具有稀疏激活模式,MoE 整体参数数量较大,需要大量内存资源。
















每次迭代的专家选择由前一次迭代的输出决定,形成专家间的依赖关系和更动态的路由机制 串行信息可以在迭代过程中累积,实现专家间的直接通信

动态专家选择:在每次迭代 t 中, 基于前一次迭代的输出
来决定当前迭代中哪些专家应该被激活以及它们的权重。
信息流控制:路由函数控制了信息如何在专家网络中流动,通过在每次迭代中重新评估路由决策,确保信息能够流向最相关的专家。 适应性处理:随着迭代的进行,路由函数可以调整其路由策略,根据先前迭代的处理结果来优化后续专家的选择。













不同专家之间可以串行处理,提高了 Transformer 的有效深度。两次前向传播送到不同专家时,增强了专家的串行特征 — 处理同一个 token 的路由专家数相同,但是是串行地处理。 一个专家在迭代过程中有机会处理一个 token 多次,可能有助于促进专家的分化:一个专家与其他专家合作处理后,可以在后续迭代对 token 进行补充处理。
基础模型参数:隐藏层大小:1024,隐藏层数量:4,注意力头数:8 MoE 相关参数:路由专家总数:63,共享专家数量:1,每个 token 选择的专家数量:8 (routed) + 1 (Shared),MoE 中间层大小:704,MoE 层频率:1 (每层都是 MoE 层) CoE 特有参数:迭代次数:2,残差连接方式:内部连接,独立门控机制:开启 (每次迭代使用不同的路由函数)
批量大小 (batch size):64,序列长度:512,训练步数:1000,优化器:AdamW,学习率:3e-4,学习率调度:10% Warmup,betas: [0.9, 0.95] weight_decay: 0.01 warmup_steps_ratio: 0.1 CLIP_grad: 1.0。
测试模型的实际任务表现而非仅限于评估损失 扩展循环次数:目前只测试了循环次数 = 2,探索 3、4 次等是否有效 进一步评估共享专家对 CoE 的作用
基于循环告诉我们一个专家可以使用多次的原理,探索是否可以实现所有层共享专家的 MoE Transformer,并分层选择专家 例如,DeepSeekV2Lite 有 27 层,每层 64 个专家,目前每层选 6 个路由专家有约 7×10⁷ 种组合,而如果每一层过 MoE 时,都从全部 27×64 个专家中选择,一共将有 3×10¹⁶ 种可能的组合
虽然理论上 TFLOPs 保持一致,但实际训练时间会略微增加,因为单次迭代选择更少专家减小了矩阵乘法并行度。未来工作可能需要进行底层适配。 该方法需要从头预训练而不能简单地适配现有模型,限制了大众研究者的应用。 模型更大时,多节点 EP 通信开销也需要纳入考虑;当前架构基于 DeepSeekV2,与 V3 的模型架构兼容,但 V3 中实现的 MTP、FP8 等训练架构尚未测试,兼容性未知。