混合专家语言模型中专家的高阶剪枝
引言
混合专家(MoE)模型使最先进的 LLM 得以扩展到数千亿参数,但它们带来一个根本性且代价高昂的隐患:每个专家 MLP 在推理时都必须占用内存,尽管对于任意给定的 token,绝大多数专家都处于闲置状态。例如,Qwen3.5-122B 在其 48 个 MoE 层中每层有 256 个专家,其约 250 GB 的参数内存占用中有 95% 完全由这些专家 MLP 占据。然而,对于任意给定的 token,每层实际只用到 8 个专家。
专家剪枝是解决这一内存瓶颈最直接的办法之一。也就是说,永久删除最无用的专家。剪枝避免了使专家动态加载/卸载变得不切实际的延迟问题;它不需要任何训练;并且它可以与量化组合使用。鉴于这些诱人的优势和思路的简洁性,不难理解为什么专家剪枝已成为缩小 MoE 的首选方法。难点在于决定哪些专家可以最安全地移除。
现有的剪枝方法独立地为每个专家打分,基于校准数据集给每个专家分配一个标量重要性分数,并(在各层内独立地)剪掉最不重要的专家。这些是一阶方法,因为它们假设每个专家的贡献与其他所有专家无关。而在现实中,专家会形成协作群体。我们在自己的实验中观察到一致的共激活专家簇,并且独立研究表明专家协作是 MoE 的一种稳定属性并且对模型性能很重要。忽略这些交互会导致次优的剪枝效果,在激进的剪枝率下尤其如此。
我们的最新论文推导出HOPE(专家的高阶剪枝),这是一种二阶方法,考虑了专家之间的成对交互。在 50% 剪枝率下,HOPE 取得了所有方法中最佳的平均排名,在智能体编程任务上相比次优的剪枝方法提升高达 +6.1%。
在这篇文章中,我们解释 HOPE 如何工作,展示它在哪些方面优于现有方法,并演示如何将其用于你自己的模型。对于不熟悉 MoE 架构的读者,请参阅Transformer 中的混合专家(MoE)。
专家并非独立工作
在标准 MoE 中,每一层有EE个专家,每个输入 tokenxx被独立路由到KK个这样的专家(K=8 K = 8是典型选择)。路由由单层执行,该层为每个专家gk(x)g_{k}(x)生成经 softmax 归一化的门控权重kk,其中门控权重最高的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对 tokenxx的输出。
左:典型 MoE 层,每个 token 被路由到 top-K 专家。右:一阶方法基于标量重要性分数对专家进行排序和删除,但最佳的剪枝决策还应考虑专家之间交互的强度。
重要的是,被选中集合T(x)T(x)中的专家并非相互独立。专家会形成稳定的协作组,持续被共同激活。这一点此前已在文献中被观察到:专家共同选择模式在训练早期就会出现,并在整个过程中趋于稳定。
这意味着,当我们从 MoE 层中剪枝专家时,剪枝决策需要考虑这些专家之间的高阶效应。单独移除专家 A 可能看起来没问题,但如果专家 B——它经常与 A 协作并依赖 A——非常重要,那么移除 A 就会仅因一次删除而瓦解一个协作组。一阶方法完全忽略了这一点,因为它们分别对 A 和 B 打分。
这种效应在高剪枝率下会进一步放大。当我们移除多达 50% 的专家时,就有可能破坏许多协作链接。这正是二阶剪枝最具优势之处。
HOPE 如何确定剪枝集
(参见我们相应论文的附录 A,了解 HOPE 目标的完整推导)
当我们从某个 MoE 层中删除一组PP个专家时,被选中的专家集合T(x)T(x)(对于任意 tokenxx)可以改变。本应被选中的被剪枝的专家由门控权重次高的专家替代。由此产生的层输出变化即为剪枝误差。我们的目标是找到剪枝集PP(在某个预定义的剪枝预算∣P∣\vert P\vert下),使其最小化由此产生的剪枝误差(在来自校准集的 tokenxx上)。
不幸的是,直接在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}衡量单个专家的重要性,非对角线元素(Fi,jF_{i,j}其中i≠ji\neq j)衡量成对的协同贡献。
是什么FF在实践中是什么样子?它展示了专家合作的结构,这取决于层:
GLM-4.5-Air(每层 128 个专家,总计 106B 参数)在三个代表性层(早期、中期、晚期)的交互矩阵 F 可视化。专家已被聚类以揭示块结构。沿对角线的亮块表示具有强两两交互得分的专家组。
在实际成本方面,HOPE 需要与任何其他专家剪枝方法相同的校准过程(在校准数据上进行一次前向传播)。唯一的额外步骤是求解二次规划,该问题是非凸的,但可以通过标准 QP 求解器高效求解(每层 1–2 秒)。与一阶方法相比,总附加开销可以忽略不计,因为校准时间占主导。
与 REAP 的联系
值得注意的是,HOPE 与路由加权专家激活剪枝(REAP)有着很强的联系,后者是一种最先进的一阶专家剪枝方法。HOPE 的 F 矩阵在对角线上编码了单个专家的重要性得分,而这条对角线实际上恢复了 REAP 用于独立排序专家以进行剪枝的得分(仅相差专家贡献的方差)。FF的对角线几乎完美地恢复了 REAP 的专家排名(Spearmanρ=0.988\rho = 0.988)。因此,HOPE 相对于 REAP 取得的任何改进都可归因于FF矩阵非对角元素中的二阶交互项。
结果
我们使用 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 取得了最佳平均排名(2.07在 5 种方法中),拥有最高的 top-1 达成率(39%的条件)和 top-2 达成率(67%)。在正面比较中,HOPE 在大多数条件下击败了所有其他基线。
正如预期,HOPE 的优势在更高的剪枝率下会扩大。随着更多专家被移除,更多协作链接被断开,FF的非对角项变得更加重要。在 50% 剪枝率下,HOPE 的平均排名提升至1.58(对比2.42为次优方法 REAP)。这也是与部署最相关的设置,此时内存节省足够大,可以容纳更长的上下文、更深的推理和更多的工具调用。
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 还是单轮轨迹。这使用 HuggingFacetransformers来挂钩每个 MoE 层的前向传播。对于每个 token,它记录哪些专家被选中、它们的门控权重、输出范数以及成对共激活统计。此步骤的输出是 F 矩阵,存储在 HDF5 文件中。
步骤 2:求解 QP
hope solve \
--obs-path observations.h5 \
--prune-frac 0.50 \
--out-path pruneset.json
此命令将 F 矩阵具体化,并通过连续松弛求解二元二次规划。每层需要几秒钟,输出是一个 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},
}