基于校准的混合专家语言模型专家剪枝
独立研究
2026年2月
我们提出了一种通过在推理过程中测量专家重要性来选择性移除专家,从而压缩混合专家(MoE)语言模型的框架。与基于静态模型参数估计重要性的权重方法不同,我们的基于校准的方法通过在多样化工作负载上进行实际推理来评估专家,从而产生显著更准确的重要性排序。我们引入了三种互补技术:层自适应专家分配,允许每层根据其敏感性保留不同数量的专家;语言感知专家保护,在压缩过程中检测并保留语言专门化的专家;以及Zerobias路由器优化,一种零成本的后处理步骤,通过中和过时的路由器偏置在剪枝悬崖处恢复质量。我们在三个模型系列上验证了该方法:GPT-OSS-20B(无损压缩,MMLU 78%保持不变,10.4 GB)、Qwen3-30B-A3B(语言感知剪枝,启用思考时MMLU 79%,14 GB)和Qwen3-Coder-Next 80B(50%剪枝,MMLU 72%,24.4 GB)。在所有模型中,我们发现了一种普遍的剪枝悬崖现象:质量在狭窄的剪枝范围内从保持急剧过渡到崩溃,并证明专家重要性分布的基尼系数可以预测悬崖的陡峭程度。我们的框架无需GPU训练,无需梯度计算,在消费级硬件上一小时内即可完成。
1. 引言
混合专家(MoE)语言模型通过在每个token上仅激活其总参数的一小部分来实现前沿水平的质量。近期模型如DeepSeek-V3(总参数671B,激活参数37B)、Qwen3-Coder-Next(总参数80B,每个token约3B激活)和GPT-OSS-20B(总参数21B,激活参数3.6B)表明,MoE架构可以在推理成本的一小部分下达到或超越稠密模型。然而,其总参数量——在量化后通常为数十到数百GB——超出了消费级硬件的内存容量。
现有的压缩技术解决了大小问题,但未利用MoE模型所呈现的结构性机会。训练后量化(GPTQ、AWQ、GGUF Q4)在所有参数上均匀降低精度,将模型视为一个整体。知识蒸馏可以产生较小的学生模型,但需要昂贵的重新训练。这两种方法都没有利用MoE模型区别于稠密模型的根本特性:存在离散的、独立参数化的专家子网络,可以根据其功能贡献进行选择性保留或移除。
我们提出基于校准的专家剪枝:通过在代表性工作负载上进行实际推理来测量专家重要性,然后从每层中移除最不重要的专家。该方法直接在量化的GGUF模型文件上操作,无需反量化、无需梯度计算、无需重新训练。输出是一个专家数量更少的有效GGUF文件,可立即用于推理。
我们的贡献如下:
- 基于校准的重要性评分,显著优于基于权重的指标(MMLU +15pp,日语任务+20pp)。
- 层自适应专家分配,允许每层根据其测量的重要性差距动态确定保留数量,从而保持质量。
- 语言感知专家保护,检测并保留语言专门化的专家,实现面向特定市场的压缩。
- Zerobias路由器优化,通过中和过时的路由器偏置在剪枝悬崖处恢复质量,以零成本扩展无损压缩前沿。
- 跨模型验证,在三种架构(每层32、128和512个专家)上验证了剪枝悬崖的普遍性和可预测性。
2. 方法
2.1 概述
我们的剪枝流程分为四个阶段:(1) 校准数据收集,(2) 重要性评分,(3) 基于层自适应分配的剪枝计划生成,(4) GGUF文件剪枝。该流程以量化的GGUF模型和一组校准提示词作为输入,生成每层具有可变专家数量的剪枝GGUF文件。
2.2 基于校准的重要性评分
每个校准提示词通过完整模型运行,对于每一层和每个专家,我们记录路由器选择该专家的频率以及选择时的偏好强度。重要性评分综合这两个信号:一个既被频繁激活又被强烈偏好的专家获得高分,而一个很少使用或门控较弱的专家获得低分。
校准集应涵盖剪枝模型预期处理的工作负载。对于通用压缩,我们使用涵盖代码生成、数学推理、事实回忆和自然语言问答的提示词。对于特定语言的压缩,我们添加目标语言的提示词。
2.3 层自适应专家分配
MoE模型中并非所有层对专家移除具有同等敏感性。某些层具有高度专门化的专家,移除其中任何一个都会导致显著的质量损失,而其他层具有冗余专家,可以安全移除。我们的层自适应方法计算每层的重要性分布,并根据保留专家和被剪枝专家之间测量的重要性差距为每层分配不同的保留数量。
这产生的模型中,某些层保留了几乎所有专家,而其他层则有大量专家被移除。由此产生的GGUF文件具有可变的experts_per_layer元数据字段,标准推理引擎(llama.cpp)目前不支持该字段。我们开发了moe-stream,一个开源的Rust推理引擎,用于处理这些可变专家模型。具有统一专家数量的模型(例如,GPT-OSS-20B从32个专家剪枝到每层28个)仍与llama.cpp兼容。
2.4 语言感知专家保护
具有足够专家数量的MoE模型在训练过程中会发展出语言专门化的专家。在Qwen3-30B-A3B(每层128个专家)中,我们通过多语言校准提示词的差异频率分析识别出30个日语专家和15个英语专家。相比之下,GPT-OSS-20B(每层32个专家)显示出近乎均匀的路由(基尼系数=0.041),没有语言专门化,而GLM-5(每层256个专家)则表现出更强的专门化(15个日语专家,基尼系数=0.444)。
对于面向特定市场的压缩(例如日本市场),我们保护检测到的语言专家免受剪枝,无论其全局重要性评分如何。这确保即使在进行激进压缩时,语言能力也得以保留。
2.5 Zerobias路由器优化
MoE路由器包含在预训练期间使用完整专家集校准的学习偏置项。剪枝后,这些偏置可能会变得失准:之前将token引导到现已不存在的专家的偏置会产生路由真空,而剩余专家的偏置不再反映其在缩减集中的相对重要性。
Zerobias将所有路由器偏置置为零,迫使路由器仅依赖于与输入相关的路由权重。这是一个零成本的后处理步骤——无需训练,只需修改GGUF文件中的偏置张量即可完成。
3. 实验结果
3.1 GPT-OSS-20B:无损压缩
GPT-OSS-20B是一个参数量为21B的MoE模型,每层32个专家,采用top-2 sigmoid路由和MXFP4格式。由于该模型专家数量太少,不适合进行有意义的层自适应分配,因此使用统一剪枝(从每层移除相同数量的专家)。
| 配置 | 大小 | 专家数/层 | MMLU | GSM8K | HumanEval |
|---|---|---|---|---|---|
| 原始 | 11.67 GB | 32 | 78% | — | — |
| 剪枝 28/32 | 10.40 GB | 28 | 78% | 92% | 78% |
| 剪枝 27/32 | ~10.1 GB | 27 | 68% | — | — |
| 27/32 + Zerobias | ~9.4 GB | 27 | 77% | 84% | — |
| 剪枝 26/32 | ~9.7 GB | 26 | 69% | — | — |
28/32模型实现了无损压缩:MMLU 78%(与原始模型相同)、GSM8K 92%(46/50)和HumanEval 78%(39/50)。文件大小从11.67 GB缩减至10.40 GB(−10.9%),幅度虽然有限,但完全不损失质量。
在27/32个专家时,出现了明显的剪枝悬崖:每层仅移除一个专家,MMLU就从78%骤降至68%(−10pp)。应用Zerobias可恢复大部分损失(77%,与原始模型仅差−1pp),产生一个9.4 GB的近无损模型。值得注意的是,26/32不使用Zerobias时得分为69%——高于27/32不使用Zerobias时的68%——这揭示了悬崖是一个集中在28→27过渡处的阶跃函数。
3.2 Qwen3-30B-A3B:语言感知剪枝
Qwen3-30B-A3B是一个参数量为30B的MoE模型,48层,每层128个专家。由于专家数量较多,层自适应分配和语言感知保护变得有效。
| 配置 | 大小 | 保留率 | MMLU | 备注 |
|---|---|---|---|---|
| 原始 | 17.3 GB | 100% | 77% | — |
| 剪枝 90% | 15.6 GB | 90% | 73% | −4pp |
| 剪枝 80%(日语感知) | 14.0 GB | 80% | 79%(启用思考) | 日语 90% |
| 剪枝 70% | 12.3 GB | 70% | 51% | 悬崖(−26pp) |
| 剪枝 60% | — | 60% | 崩溃 | — |
保留80%的模型(14.0 GB)通过语言感知日语专家保护,达到了MMLU 79%(启用思考)、GSM8K 92%和日语质量90%。这表明语言感知剪枝可以同时实现压缩和多语言质量保持。
在80%和70%保留率之间出现了明显的悬崖:MMLU从72%骤降至51%(−21pp),进一步剪枝导致完全崩溃。这确立了80%保留率(14 GB)作为该模型的实际下限。
校准评分与基于权重评分的对比
| 方法 | MMLU | 日语 | GSM8K |
|---|---|---|---|
| 基于校准 + 日语保护 | 74% | 85% | 92% |
| 基于权重 + 日语保护 | 60% | 65% | — |
在相同保留率下,基于校准的评分在MMLU上超过基于权重的评分+14pp,在日语评估上超过+20pp。两种方法产生了根本不同的专家保留集——权重范数无法预测推理时的重要性。
3.3 Qwen3-Coder-Next 80B:深度剪枝
Qwen3-Coder-Next是一个参数量为80B的MoE模型,48层,每层512个专家(每个token约3B激活)。大量的专家数量使得激进的层自适应剪枝成为可能。
| 配置 | 大小 | 保留率 | MMLU | 其他 |
|---|---|---|---|---|
| 原始 Q4 | ~48 GB | 100% | 77% | HumanEval 74% |
| v7(44%剪枝) | 27.68 GB | 56% | 70% | HumanEval 72%, LCB Easy 83% |
| 50%剪枝 | 24.4 GB | 50% | 72% | — |
| 55%剪枝 | ~20 GB | 45% | 60% | 悬崖(−12pp) |
| 65%剪枝 | ~17.9 GB | 35% | 随机 | 完全崩溃 |
50%剪枝模型(24.4 GB)达到了MMLU 72%——原始质量的93.5%,同时可放入24 GB消费级硬件内存中。这明显优于对同一模型进行Q2量化,后者会产生类似的文件大小(约25–28 GB),但由于所有权重的精度均匀损失,估计MMLU仅为55–60%。
在50%和45%保留率之间出现悬崖(−12pp),35%保留率产生随机输出。50%保留率是该模型最深的可行压缩。
3.4 专家剪枝与量化的对比
| 方法 | 目标大小 | 手段 | 剩余精度 | 质量影响 |
|---|---|---|---|---|
| 专家剪枝 | 24.4 GB | 移除50%专家 | 完整Q4(4位) | MMLU 72% |
| Q2量化 | ~25–28 GB | 所有权重降至2位 | 2位 | MMLU ~55–60% |
专家剪枝和量化是正交的压缩技术。专家剪枝移除整个专家子网络,同时保留剩余专家的完整量化精度。量化则在所有参数上均匀降低精度。在相同文件大小下,专家剪枝实现了显著更高的质量,因为保留的专家以原始精度运行,而激进量化则会降低每个权重的精度。
此外,专家剪枝可以在已量化的模型上直接应用(正如我们对Q4_K_M GGUF文件所做的那样),使两种技术可组合使用:先量化进行权重级压缩,再进行专家剪枝实现结构级压缩。
4. 跨模型发现
4.1 普遍的剪枝悬崖
所有三个模型系列都表现出明显的剪枝悬崖——在一个狭窄的剪枝率范围内,质量从完全保持急剧过渡到完全崩溃。这不是渐进退化,而是一种相变。
| 模型 | 专家数/层 | 安全剪枝量 | 悬崖 | 基尼系数 |
|---|---|---|---|---|
| GPT-OSS-20B | 32 | 4个专家(约12.5%) | 28 → 27(−10pp) | 0.041 |
| Qwen3-30B-A3B | 128 | 约26个专家(约20%) | 80% → 70%(−21pp) | 0.233 |
| Qwen3-80B | 512 | 约256个专家(约50%) | 50% → 45%(−12pp) | — |
一个统一的预测指标浮现出来:专家重要性分布的基尼系数可以预测悬崖的陡峭程度。基尼系数低的模型(重要性近乎均匀,例如GPT-OSS的0.041)表现出更陡峭的单专家悬崖,因为每个专家都贡献显著。基尼系数较高的模型(重要性更偏斜)表现出更渐进的退化,允许在悬崖前进行更深的剪枝。
4.2 质量退化顺序
在所有剪枝实验中,我们观察到随着剪枝程度增加,能力退化呈现一致的顺序:
- 代码生成(最脆弱)——最先退化,在有效程序消失前先产生伪代码
- 算术——出现相变式错误(例如15+27=45)
- 推理——逻辑连贯性降低
- 事实知识(最稳健)——最后退化,分布在多个专家中
这一顺序对校准设计具有重要意义:确保校准集涵盖代码生成(最脆弱的能力)至关重要,因为仅通过代码评估才能发现仅问答测试无法揭示的故障模式。
5. 主要负面结果
在22个研究阶段中,我们系统性地评估了大量未获成功的方法。我们总结了最具意义的负面结果,作为未来工作的边界条件。
| 方法 | 结果 | 关键洞察 |
|---|---|---|
| Gate L2范数剪枝(REAP) | 50%时HumanEval 70% | 静态权重指标失效;需要基于校准的评分 |
| 基于权重的重要性 | MMLU 60%(校准74%) | 权重范数无法预测推理时的重要性 |
| 统一剪枝比例 | 80B MMLU 64% | 层自适应分配对质量至关重要 |
| 英语优化强制惩罚 | MMLU 58% | 语言专家也参与STEM推理 |
| 路由提升 + 剪枝 | MMLU 56%(−21pp) | 提升和剪枝计划必须联合计算 |
| 专家适配器(KD) | 层MSE −15%,端到端 −2pp | 层级改善 ≠ 端到端改善 |
| TinyLoRA(13参数) | 悬崖处MMLU −4pp | 微参数调优不足以恢复MoE质量 |
| GRPO路由器训练 | MMLU 67%(−5pp) | 基于梯度的偏置优化不如Zerobias |
| Zerobias迭代剪枝 | 26/32: 65%(−4pp) | Zerobias具有悬崖特异性;超出悬崖后有害 |
| 稠密SLM剪枝(4B) | FFN 25%:崩溃 | 稠密模型缺乏专家级冗余;MoE的压缩效率远优于稠密模型 |
| MoE消融 | 最大一致性56% | 安全行为是分布式的,不集中于特定专家 |
贯穿性教训:所有负面结果中最一致的发现是,路由器偏置校准——而非专家容量——是剪枝后质量的主导因素。专家适配器实现了15%的MSE降低,但端到端仅−2pp。TinyLoRA和GRPO路由器训练都降低了质量。只有Zerobias(在悬崖处)和基于校准的剪枝(避免悬崖)产生了正面结果。这意味着保持路由器正确分配token的能力比任何单个专家的表征容量更为重要。
6. 推理引擎:moe-stream
层自适应剪枝产生的模型每层具有不同的专家数量,标准推理引擎(llama.cpp)不支持这种格式。我们开发了moe-stream,一个开源的Rust推理引擎,用于处理这些可变专家模型。
主要功能:
- 三种推理模式:GPU常驻(模型 < 80% RAM)、GPU混合(80–90% RAM)和SSD流式传输(> 90% RAM)。模式根据模型大小和可用内存自动选择。
- SSD流式传输:通过按需从NVMe SSD流式加载专家权重,运行超出RAM容量的模型。在24 GB硬件上运行48 GB模型约2 tok/s。
- Q4量化矩阵乘法:跳过反量化,直接在Q4权重上计算,速度提升+79%(1.16 → 2.07 tok/s)。
- Metal GPU计算:Apple Silicon上的硬件加速推理(GPU常驻模型约55 tok/s)。
- 可变专家数量:完全支持GGUF文件中的
experts_per_layer元数据。
具有统一专家数量的模型(GPT-OSS-20B 28/32、27/32)兼容llama.cpp和moe-stream。具有层自适应数量的模型(Qwen3-30B-A3B JP-80pct、Qwen3-Coder-Next 50pct)需要moe-stream。
7. 结论
我们提出了一种通过选择性移除专家来压缩MoE语言模型的实用框架。核心原则如下:
- 校准优于权重。通过实际推理测量专家重要性,结果远优于静态权重分析(MMLU +15pp,语言任务+20pp)。
- 层自适应分配。每层对剪枝的敏感性不同;自适应分配在最关键的地方保持质量。
- 语言感知保护。具有足够专家数量的模型会发展出语言专门化路由,保护这些专家可实现面向特定市场的压缩而不损失质量。
- 悬崖处的Zerobias。当剪枝达到悬崖点时,将路由器偏置置零是最有效的恢复技术——超越基于梯度的优化、专家适配器训练和微参数调优。
- 悬崖是普遍的。所有测试的MoE架构都表现出明显的剪枝悬崖,可通过专家重要性的基尼系数进行预测。
实际成果是,MoE模型可以在消费级硬件上以最小的质量损失进行显著压缩:GPT-OSS-20B从11.67缩减至9.4 GB(MMLU 77%),Qwen3-30B-A3B从17.3缩减至14.0 GB(启用思考时MMLU 79%),Qwen3-Coder-Next 80B从约48缩减至24.4 GB(MMLU 72%)。整个流程无需GPU训练,无需梯度计算,一小时内即可完成。
预剪枝模型
所有模型均可在HuggingFace上获取:
| 模型 | 大小 | MMLU | llama.cpp | moe-stream |
|---|---|---|---|---|
| PrunedHub GPT-OSS-20B-28x | 10.4 GB | 78% | Yes | Yes |
| PrunedHub GPT-OSS-20B-27x-Zerobias | ~9.4 GB | 77% | Yes | Yes |
| PrunedHub Qwen3-30B-A3B-JP-80pct | 14.0 GB | 79% | No | Required |
| PrunedHub Qwen3-Coder-Next-50pct | 24.4 GB | 72% | No | Required |
引用
@misc{goba-ai-labs-expert-pruning-2026,
title={Calibration-Based Expert Pruning for Mixture-of-Experts Language Models},
author={GOBA-AI-Labs},
year={2026},
url={https://goba-ai-labs.github.io/paper/}
}