Hugging Face 提出 HOPE:保留专家“搭档”的高阶 MoE 剪枝方法
Your Experts Have Partners. There's HOPE for Keeping Them Together
Hugging Face 提出 HOPE(Higher-Order Pruning of Experts),一种二阶 MoE 专家剪枝方法,将专家间两两交互纳入剪枝决策,而非像一阶方法那样独立为每个专家打分。
混合专家语言模型中的高阶专家剪枝
引言
混合专家(Mixture-of-Experts, MoE)模型使最先进的 LLM 得以扩展到数千亿参数,但它们带有一个根本且代价高昂的缺陷:每个专家 MLP 都必须在推理时占据内存,尽管对任意给定的 token 而言,绝大多数专家都处于闲置状态。例如,Qwen3.5-122B 在其 48 个 MoE 层的每一层中都有 256 个专家,其约 250 GB 参数内存占用中 95% 完全由这些专家 MLP 构成。然而,对任意给定的 token,每层实际上只用到 8 个专家。
专家剪枝是解决这一内存瓶颈最直接的方法之一。也就是说,永久删除最没用的专家。剪枝避免了动态加载/卸载专家那种不切实际的延迟问题;它不需要任何训练;而且可与量化组合使用。鉴于这些诱人的好处以及想法的简单性,不难理解为什么专家剪枝已成为压缩 MoE 的首选方法。难点在于决定哪些专家可以最安全地移除。
现有的剪枝方法对每个专家独立打分,为每个专家分配一个标量重要性分数(基于校准数据集),然后剪掉最不重要的专家(在每层内独立进行)。这些是一阶方法,因为它们假设每个专家的贡献与其他所有专家无关。实际上,专家会形成协作小组。我们在自己的实验中观察到一致的协同激活专家簇,且独立的研究工作表明专家协作是 MoE 的一个稳定特性,并且对模型性能很重要。忽视这些相互作用会导致次优的剪枝,尤其是在激进的剪枝率下。
我们的最新论文推导出了 HOPE(Higher-Order Pruning of Experts,专家高阶剪枝),这是一种考虑专家间成对相互作用的二阶方法。在 50% 剪枝率下,HOPE 取得了所有方法中最佳的平均排名,在智能体编程任务上相比次优剪枝方法最多提升 +6.1%。
在这篇文章中,我们将解释 HOPE 的工作原理,展示它在哪些方面优于现有方法,并讲解如何将它用于你自己的模型。对于不熟悉 MoE 架构的读者,请参阅Transformer 中的混合专家(MoEs)。
专家并非独自工作
在标准 MoE 中,每层有 EE 个专家,每个输入 token xx 被独立路由到 KK 个这样的专家( K=8 K = 8 是典型的选择)。路由由单层完成,它为每个专家 kk 生成经 softmax 归一化的门控权重 gk(x)g_{k}(x),其中门控权重最高的 KK 个专家被选中,构成激活专家集合 T(x)⊂{1,..,E}T(x) \subset\{1,..,E\}。该层的输出即为 ∑k∈T(x)gk(x)fk(x)\sum\limits_{k\in T(x)}g_{k}(x)f_{k}(x),其中 fk(x)f_{k}(x) 是专家 kk 对 token xx 的输出。
左图:典型的 MoE 层,每个 token 被路由到 top-K 个专家。右图:一阶方法基于标量重要性得分对专家进行排序和删除,但最优的剪枝决策还应考虑专家之间交互的强度。
重要的是,所选集合 T(x)T(x) 中的专家并非相互独立。专家会形成稳定协作的小组,并持续被共同激活。此前文献中也观察到这一点:专家的共同选择模式在训练早期出现,并在整个训练过程中趋于稳定。
这意味着当我们从 MoE 层中剪除专家时,剪枝决策需要考虑这些专家之间的高阶效应。移除专家 A 本身看似没问题,但如果专家 B——它经常与 A 协作并依赖 A——非常重要,那么仅通过一次删除就会拆散一个协作小组。一阶方法完全忽略了这一点,因为它们是分别对 A 和 B 打分的。
这种效应在高剪枝率下会加剧。当我们移除多达 50% 的专家时,就有可能破坏许多协作关系。这正是二阶剪枝最具优势之处。
HOPE 如何确定剪枝集合
(HOPE 目标的完整推导见我们对应的论文中的附录 A)
当我们从某个 MoE 层中删除一组 PP 专家时,所选的专家集合 T(x)T(x)(对任意 token xx)可能发生变化。原本会被选中的被剪枝专家由门控权重次高的专家替代。由此产生的层输出变化就是剪枝误差。我们的目标是找到剪枝集合 PP(具有某个预定义的剪枝预算 ∣P∣\vert P\vert),使由此产生的剪枝误差在我们校准集的 token xx 上最小化。
遗憾的是,直接在 PP 上最小化剪枝误差是不可解的。剪枝误差取决于替代专家的身份,而这又取决于剪枝集合 PP 本身。HOPE 通过定义一个可解的代理 ZZ 来规避这一问题,该代理严格上界了剪枝误差的主要部分:
Z=[∑j∈P∩T(x)gj(x)∥fj(x)∥2]2≥true errorZ = \bigl[\sum\limits_{j \in P\cap T(x)} g_{j}(x)\Vert f_j(x)\Vert_{2}\bigr]^{2} \geq \text{true error}
由于 ZZ 是平方和,展开它自然会产生专家对之间的交叉项 gi(x)gj(x)∥fi(x)∥2∥fj(x)∥2g_{i}(x)g_{j}(x)\Vert f_{i}(x)\Vert_{2}\Vert f_{j}(x)\Vert_{2}。这些正是一阶方法丢弃的交互项。
为了找到最优的剪枝集合,HOPE 在校准集上最小化 E[Z]\mathbb{E}[Z],这可以重新表述为以下二次规划问题:
P∗=arg minp p⊤Fps.t.p∈{0,1}E,∑k=1Epk=∣P∣P^{*} = \argmin_{p}\; p^{\top}Fp \quad \text{s.t.} \quad p \in \{0,1\}^{E}, \sum\limits_{k=1}^{E}p_{k} = \vert P\vert
其中 F∈RE×EF\in\mathbb{R}^{E\times E} 定义如下:
Fi,j=1∣Xi,j∣∑x∈Xi,jgi(x)gj(x)∥fi(x)∥2∥fj(x)∥2whereXi,j={x:i,j∈T(x)}F_{i,j} = \frac{1}{\vert \mathcal{X}_{i,j}\vert} \sum\limits_{x\in\mathcal{X}_{i,j}} g_{i}(x)g_{j}(x)\Vert f_{i}(x)\Vert_{2}\Vert f_{j}(x)\Vert_{2}\quad\text{where}\quad \mathcal{X}_{i,j} = \{x: i,j \in T(x)\}
这个 F 矩阵在校准数据集上收集,并通过带连续松弛的二次规划(QP)求解得到最优剪枝集(然后舍入为二值解)。矩阵中的每个元素 Fi,jF_{i,j} 捕捉专家 ii 和 jj 在两者共同激活的 token 上的平均门控加权输出乘积。对角线上的 Fk,kF_{k,k} 衡量的是单个专家的独立重要性,而非对角线元素(i≠ji\neq j 时的 Fi,jF_{i,j})衡量的是专家两两之间的协作贡献。
FF 在实践中是什么样子的?它展示了专家协作的结构,而这一结构依赖于具体层级:
GLM-4.5-Air(每层 128 个专家,总参数量 106B)在三个代表性层级(早期、中期、后期)的交互矩阵 F 的可视化。专家经过聚类以展现块状结构。对角线上明亮的块表示具有较强两两交互得分的专家分组。
就实际成本而言,HOPE 与其他任何专家剪枝方法一样只需要一次校准过程(对校准数据做一次前向传播)。唯一的额外工作是求解二次规划,它虽是非凸的,但可以通过标准 QP 求解器高效求解(每层 1–2 秒)。与一阶方法相比,总的额外开销可以忽略不计,因为校准时间占主导地位。
与 REAP 的联系
值得注意的是,HOPE 与 Router-weighted Expert Activation Pruning (REAP)(一种最先进的一阶专家剪枝方法)有着紧密的联系。HOPE 的 F 矩阵在对角线上编码了单个专家的重要性得分,而这个对角线实际上就能恢复 REAP 用来独立排名专家以进行剪枝的得分(仅相差专家贡献的方差项)。FF 的对角线几乎完美地恢复了 REAP 的专家排名(Spearman ρ=0.988\rho = 0.988)。因此,HOPE 相对于 REAP 的任何提升都可归因于 F 矩阵非对角元素中的二阶交互项。
实验结果
我们使用 3 个模型(Qwen3.5-122B、Qwen3.5-35B 和 GLM-4.5-Air)以及 2 个校准数据集(Evol-CodeAlpaca 和 SWE-Bench Verified 轨迹)评估了 HOPE 作为专家剪枝方法的效果。我们使用 Tulu3 测试套件和 SWE-Bench Pro(智能体编程)来测试剪枝后的模型,将 HOPE 与 4 个一阶基线方法(REAP、MAN、EAN 和 Frequency)在 10% 到 50% 的剪枝率范围内进行比较。
HOPE 在各种条件下都取得了最佳的综合排名,并在激进剪枝率下表现占优。左图:所有模型、校准集和基准测试上的平均排名(越低越好)。右图:Qwen3.5-35B 上的 SWE-Bench Pro 性能。
在所有条件下,HOPE 都获得了最佳平均排名(5 种方法中为 2.07),并拥有最高的 top-1 完成率(39% 的条件)和 top-2 完成率(67%)。在两两对比中,HOPE 在大多数条件下击败了所有其他基线方法。
正如预期的那样,HOPE 的优势在更高的剪枝率下会进一步扩大。随着更多专家被移除,更多协作链接被切断,FF 的非对角项也变得更加重要。在 50% 剪枝率下,HOPE 的平均排名提升至 1.58(相比之下,次优方法 REAP 为 2.42)。这也是最贴近实际部署的场景,因为此时节省的内存足以容纳更长的上下文、更深入的推理和更多的工具调用。
HOPE 的优势在 SWE-Bench Pro 上最为明显,这是一个智能体编程基准测试,模型必须自主解决真实的 GitHub 问题。这些问题涉及多轮组合多样的任务(如编程、工具调用、推理等),很可能调用了多样的专家组合——这正是保留协作结构最为关键的场景。在 50% 剪枝率下,Qwen3.5-35B-A3B 上的 HOPE 在 SWE-Bench Pro 上取得了 42.3 分,与未剪枝模型的 41.8 分相当(而 REAP 则降至 36.2,回退了 13%)。
值得注意的是,剪枝后的模型偶尔能匹敌甚至超过未剪枝的基线,这很可能是因为移除低相关性专家降低了目标任务上的噪声。这种效应并非 HOPE 独有,在多种剪枝方法中都有观察到。此外,我们的实验表明,使用任何剪枝方法(包括 HOPE)进行以代码为重点的校准,都不会严重降低非编程基准的表现,而且无论使用何种校准集,HOPE 在 Tulu3 测试套件上都表现良好。
HOPE 保留了更多协作专家
与保留专家之间协作强度的平均值(以 F 矩阵值衡量),按 HOPE 与 REAP 意见不一的专家进行划分。
HOPE 的优势源于对整个交互矩阵 FF 的优化。为了理解这在实践中如何影响剪枝决策,我们考察了 HOPE 与 REAP 意见不一的专家。对于每个有争议的专家,我们计算其 协作分数(即与其他保留专家的平均 F 值)。仅被 HOPE 保留的专家,其 协作分数 始终高于仅被 REAP 保留的专家。换言之,作为 QP 优化的一部分,HOPE 牺牲了一些单独得分较高的专家,以换取协作簇的保留。基准性能的提升(如上所示)验证了这种权衡是有利的。
如何运行 HOPE
我们创建了一个基础的包来运行 HOPE。它包含三个步骤:1) 校准;2) 求解;3) 剪枝。我们的包已在 Qwen3、Qwen3-Next、Qwen3.5 和 GLM-4.5 上测试通过。
第 1 步:校准
hope calibrate \
--model-path Qwen/Qwen3.5-35B-A3B \
--prompts calibration_prompts.txt \
--out-path observations.h5
校准步骤会对校准数据运行一次前向传播,校准数据可以是智能体 rollout 或单轮对话轨迹。这一步使用 HuggingFace transformers 挂钩到每个单独 MoE 层的前向传播。对于每个 token,它会记录被选中的专家、它们的门控权重、输出范数以及成对共同激活统计信息。这一步的输出是 F 矩阵,存储在 HDF5 文件中。
第 2 步:求解 QP
hope solve \
--obs-path observations.h5 \
--prune-frac 0.50 \
--out-path pruneset.json
此命令会实体化 F 矩阵,并通过连续松弛求解二元二次规划。每层需要几秒钟,输出是一个包含剪枝集(prune-set)的 JSON 文件。这在技术上就是 HOPE 算法的最终输出。
第 3 步:剪枝
hope prune \
--model-path Qwen/Qwen3.5-35B-A3B \
--pruneset-path pruneset.json \
--out-path ./Qwen3.5-35B-A3B-pruned-50
为完成整个流程,我们运行此命令,根据剪枝集实际创建更小的模型检查点。剪枝后的模型是一个标准的 HuggingFace 检查点,在磁盘和内存中都更小(无需修改 vLLM 或 SGLang 的模型定义)。
我们还发布了更简洁的 Python API:
from hope.calibrate import calibrate
from hope.solve import solve
from hope.prune import prune_model
calibrate("Qwen/Qwen3.5-35B-A3B", calibration_prompts, "observations.h5")
solve("observations.h5", prune_frac=0.50, out_path="pruneset.json")
prune_model("Qwen/Qwen3.5-35B-A3B", "pruneset.json", "./Qwen3.5-35B-A3B-pruned-50")
HOPE 的局限性
HOPE 的优势在较高剪枝率(40–50%)下最为明显。在较低剪枝率(10–20%)下,REAP 和 MAN 等一阶方法有时具有竞争力,HOPE 的优势会缩小。此外,与大多数专家剪枝算法一样,HOPE 独立地对每层进行剪枝,未考虑跨层交互。在论文中,我们提出了跨层 HOPE 的理论框架,但结果仍处于初步阶段。最后,HOPE 捕获成对交互,但更高阶的交互(三元组及以上)也可能提供额外信号,尽管它们在组合上难以估计。
更多信息
欲了解更多信息,请参阅我们的相关论文和代码库。
论文: https://arxiv.org/abs/2609.18916
代码:https://github.com/awslabs/HOPE
要了解 HOPE 如何应用于下一代混合架构,请参阅我们的 相关代码库。
引用:
@article{tseng2026hope,
title={Higher-Order Pruning of Experts in Mixture-of-Experts Language Models},
author={Tseng, Alex M. and Kaul, Prannay and Zancato, Luca and Xia, Wei and Soatto, Stefano},
journal={arXiv preprint arXiv:2609.18916},
year={2026},
}
来源: Hugging Face Blog · huggingface.co