1 min read 96 words Updated Apr 28, 2026 Created May 03, 2026

FedMoE 通过两阶段“先搜索最优专家子集、后联邦协同训练”的范式,以及通过模块化聚合与全局专家推荐机制动态调整结构 ,解决 Non-IID 数据分布,任务类型差异等问题。

核心问题:

  • 传统 dense 模型共享全部参数会导致不同任务间的梯度冲突与知识干扰。
  • Transformers 每层多专家的模型消耗大量存储空间,且将所有专家参数下发给每个客户端的通信开销不可承受。

关键洞察:

  • experts 激活频率是倾斜且动态的——只有少数 experts 被频繁激活,且激活模式随训练演化,所以 experts 重要性必须动态评估。
  • 最优 experts 子集收敛很快,且用最优子集构建的 sub-MoE 性能接近全量模型,随机子集则差很多,所以可以借此进行裁剪边缘专家。
  • 不同任务和不同数据分布偏好不同的 experts 子集,任务级异构时差异最大。所以裁剪策略需要 “个性化”

算法框架:

  1. 粗粒度初始化:客户端用全量 MoE + LoRA 快速微调几轮,然后估计在私有数据集上的 experts 激活概率,在内存约束下,找到一个个性化的 experts 的子集(client-expert map, CEM)。
  2. 联邦训练与细粒度结构调整
    1. 根据 CEM 构建 sub-MoE 下发
    2. 边缘设备利用私有数据集进行微调。
    3. 上传模型:
      1. 在 dense 层利用 FedAvg 聚合
      2. 稀疏层按照 Expert 单独聚合;没有被激活,则忽略;如果只有单个,则替换;如果有多个,则 Avg
      3. 对于 Router,一般来说,Router 的结构可以认为对于每个 experts 的参数是不相干的(一个线性层 ${\rm top k}\ {\rm softmax}(W_r x)$),所以可以根据稀疏层的聚合原则,将行列拆开来用相同的方法聚合。
    4. 动态更新 CEM:若某客户端连续多轮性能无提升,则判定其当前子模型结构遇到瓶颈,启动专家推荐流程。
      1. 根据专家激活概率分布,利用余弦相似度,检查数据或者任务的相似性。
      2. 取 Top-K 个最相似的设备,根据相似性加权平均,估计潜在的激活概率。
      3. 根据激活概率,重新构建 CEM,具体来说:在最相似的中,考虑平均 experts 个数,如果高于,那么可能欠拟合,需要增;否则可能过拟合,剪枝。
      4. 如果新一轮训练没有效果,那么撤回,并不再修改(防止震荡