MAESTRO用马尔可夫链给MoE模型剪枝砍掉一半专家只掉2性能

想象你管理着一个有 128 个部门的大公司,每个部门都有完整的团队和办公空间。但日常运作中,每个项目其实只用到...

想象你管理着一个有 128 个部门的大公司,每个部门都有完整的团队和办公空间。但日常运作中,每个项目其实只用到 4-5 个部门。问题是:你要养着全部 128 个部门的场地和人员,哪怕大部分部门这天根本没活干。

这就是 Mixture-of-Experts(MoE)模型面临的部署困境。MoE 是当前大模型的主流架构——GPT-OSS-20B 每层 32 个专家,Qwen3-30B 每层 128 个专家,但每个 token 只激活其中 4-8 个。计算上很高效,但内存上很奢侈:所有专家都得常驻显存,不管用不用。一个 30B 参数的 MoE 模型,实际推理时只跑 3B 的计算量,但你得准备 30B 的显存装下它。

解决方案看起来很简单:把不重要的专家砍掉。但”不重要”怎么定义?

现有方法的盲区:局部启发式

已有的 MoE 剪枝方法大多从密集 Transformer 的剪枝借鉴而来,用局部启发式评估专家重要性:看这个专家被选中的频率、看它的参数范数、看它处理的 token 分布。问题是,这些方法把每个专家独立评估,忽略了 MoE 路由的跨层依赖性

什么意思?假设专家 A 在第 5 层被激活后,第 6 层的专家 B 有 80% 的概率也会被激活。这种”A→B”的强依赖关系意味着 A 和 B 是一个功能对,砍掉任何一个都会破坏这条处理路径。但如果你只看单层统计,A 和 B 各自的激活频率可能都不高,你会以为它们都不重要。

MAESTRO 的核心创新:把路由建模为马尔可夫链

MAESTRO(Markov-chain Approximated Expert Sparsification via Transition-based Routing)来自 IIT Delhi 和 NVIDIA(arXiv:2607.08601),它的思路是把 token 在各层专家间的激活轨迹建模为一个遍历马尔可夫链(Ergodic Markov Chain)。

具体做法:

1. 状态空间:把模型里所有 L×E 个专家槽位(L 层 × 每层 E 个专家)定义为马尔可夫链的状态。token 从第 1 层走到第 L 层,就是在这些状态间转移。

2. 转移矩阵:用一小批校准数据做自回归推理(不是 teacher-forcing),统计每对相邻层之间”专家 i → 专家 j”的共现次数,得到每层的转移矩阵 C^(l)。

3. 遍历性保证:为了让马尔可夫链有唯一的平稳分布,把最后一层连回第一层(保证不可约),给每个状态加一点自环(保证非周期)。

4. 平稳分布:求解这个马尔可夫链的平稳分布 π。π[i] 就代表专家 i 在长期运行中被路由访问的概率。

5. 剪枝:平稳概率最小的专家,对整体计算贡献最小,优先砍掉。

关键洞察在于:平稳分布是从全局轨迹中推导出来的,天然编码了跨层依赖。那些自身激活频率不高、但作为关键中间桥梁连接其他专家的节点,会获得更高的平稳概率,从而被保留。

两个工程细节

自回归校准 vs Teacher-Forcing:MAESTRO 坚持用自回归 rollout 来收集转移统计,而不是 teacher-forcing(喂真实序列)。因为 teacher-forcing 的输入分布和模型实际推理时的分布不同,统计出的转移模式会有偏差。消融实验显示,去掉自回归改用单遍前向,平均性能下降 1.15%,跨任务方差增加 10.53%。

均匀剪枝约束:每层砍同样比例的专家,而不是全局选最小的砍。虽然全局选择更灵活,但会导致某些层被过度剪枝,成为瓶颈。均匀约束牺牲灵活性换取稳定性,实验证明更值得。

Recovery Fine-Tuning(RFT):剪枝后做一轮轻量微调来修复模型输出分布。这步至关重要:不做 RFT,平均性能相对下降 20.59%,跨任务方差暴增 1289%。

实验结果

在 GPT-OSS-20B(32 专家/层)和 Qwen3-30B(128 专家/层)上测试,覆盖 5 个领域 17 个任务(包括安全性、偏见、伦理评估)。

核心数字:

50% 压缩率(砍掉一半专家):MAESTRO 比最强基线高最多 10.61% 的平均性能保持率,且跨任务方差显著更低。 – 25% 压缩率:在 GPT-OSS-20B 上,MAESTRO 在 4 个任务上超过原始未压缩模型——Wikitext 困惑度 2.35 vs 2.52,Lambada 困惑度 1.38 vs 1.42,PIQA 81.18 vs 80.69,CommonsenseQA 80.43 vs 79.12。剪枝反而变好了,这是一种正则化效应。 – 50% 压缩率下:Lambada 困惑度 1.46,仅比原始模型高 0.04——没有其他方法能接近这个水平。 – 对比 HC-SMoE:基于聚类的方法在 50% 压缩时崩溃,平均性能保持率掉到 74.58%,标准差 16.60%。

为什么 MAESTRO 的方差更低?

这是论文最有意思的发现之一。局部启发式剪枝容易在某些任务上碰巧保留了对该任务重要的专家,在另一些任务上又碰巧砍掉了,导致性能忽高忽低。MAESTRO 的全局视角让它保留的是”在整体路由结构中扮演桥梁角色”的专家,这些专家对各种任务都有贡献,所以跨任务表现更稳定。

我的看法

MAESTRO 最漂亮的地方是把一个看似工程的问题(砍哪些专家)转化为了一个概率模型问题(马尔可夫链平稳分布)。这种转化让”专家重要性”有了精确的数学定义:不是”被选中多少次”,而是”在长期路由分布中占多少比重”。

从更宏观的视角看,这其实是在说:MoE 模型的专家不是独立的零件,而是一个路由网络的节点。评估一个节点的价值,不能只看它自身的工作量,要看它在网络连通性中的角色。这和社交网络分析里的”中介中心性”(betweenness centrality)异曲同工——有些节点本身流量不大,但删了它网络就断了。

一个值得关注的点是 RFT 的必要性。即使是最聪明的剪枝策略,也会扰动模型的输出分布。MAESTRO 不做 RFT 时仍然比 REAP 不做 RFT 时好 1%,说明剪枝本身的质量确实更高。但 RFT 带来的提升是数量级上的——这说明压缩和恢复是两个正交的问题,你需要同时做好。

最后,25% 压缩时某些任务超过原始模型这个现象值得深究。如果剪枝是一种正则化,那原始模型可能存在过参数化——有些专家在记忆训练数据的噪声而非学习有用模式。这暗示着 MoE 架构的专家数量可能存在一个”刚好够用”的甜点,多了反而有害。

论文链接:https://arxiv.org/abs/2607.08601 HTML 全文:https://arxiv.org/html/2607.08601

发表回复

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 🐾 智柴网 沪ICP备2024052574号-1