可用于减少 Qwen3.5-35B-A3B 模型的显存占用并保持性能,该项目通过 REAP 方法对 MoE 模型进行 20% 专家剪枝,保留 205 个专家,在标准基准测试中保持竞争力,同时降低显存需求。【此简介由AI生成】
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
language:
- en license: apache-2.0 base_model: Qwen/Qwen3.5-35B-A3B tags:
- moe
- pruning
- reap
- qwen3
- expert-pruning model-index:
- name: Qwen3.5-35B-A3B-REAP-20pct
results:
- task:
type: text-generation
dataset:
name: HumanEval
type: openai_humaneval
metrics:
- type: pass@1 value: 0.732 name: pass@1
- task:
type: text-generation
dataset:
name: HumanEval+
type: evalplus
metrics:
- type: pass@1 value: 0.701 name: pass@1
- task:
type: text-generation
dataset:
name: MMLU
type: cais/mmlu
metrics:
- type: acc value: 0.809 name: accuracy
- task:
type: text-generation
dataset:
name: HumanEval
type: openai_humaneval
metrics:
Qwen3.5-35B-A3B — REAP 20% 专家剪枝
这是 Qwen/Qwen3.5-35B-A3B 的20% 专家剪枝版本,采用论文《REAP the Experts: Why Pruning Prevails for One-Shot MoE Compression》(ICLR 2026)中提出的 REAP(基于路由权重的专家激活剪枝) 方法生成。
该模型保留了256 个专家中的 205 个(约为原始专家数量的 80%),同时在标准基准测试中保持竞争力。
我们的工作
方法:REAP 逐层剪枝
REAP 通过结合以下因素对每个专家的重要性进行评分,从而剪枝 MoE 专家:
- 路由门控值——路由选择每个专家的频率和强度
- 专家激活范数——每个专家输出贡献的大小
剪枝后,路由 logit 权重会重新归一化以确保总和为 1(这对于维持输出规模至关重要)。剪枝以逐层方式进行(逐层模式)。
校准数据
观察数据是在混合校准数据集上收集的,每个类别包含 1000 个样本:
theblackcat102/evol-codealpaca-v1(250 个样本)open-r1/Mixture-of-Thoughts[code](250 个样本)open-r1/Mixture-of-Thoughts[math](250 个样本)open-r1/Mixture-of-Thoughts[science](250 个样本)
最大序列长度:4096 个 token。专家相似度采用角距离度量。
剪枝配置
| 参数 | 值 |
|---|---|
| 压缩率 | 20%(移除 51 个专家) |
| 原始专家数量 | 256 |
| 剩余专家数量 | 205 |
| 剪枝方法 | REAP |
| 路由权重重归一化 | ✓ |
| 随机种子 | 42 |
| 校准样本数 | 共 1000 个 |
基准测试结果
所有评估均使用 vLLM(在 8 张 RTX 3090 上进行张量并行)、贪婪解码、零样本设置。
代码(EvalPlus,贪婪解码,零样本)
| 基准测试 | 原始模型 | 剪枝模型(20%) | 差异 |
|---|---|---|---|
| HumanEval(pass@1) | 76.2% | 73.2% | -3.0% |
| HumanEval+(pass@1) | 72.0% | 70.1% | -1.9% |
多项选择/推理(lm-eval,零样本,250样本/任务)
| 基准测试 | 原始模型 | 剪枝模型(20%) | 差异 |
|---|---|---|---|
| MMLU | 84.34% | 80.89% | -3.45% |
| MMLU - 人文科学 | 82.40% | 76.35% | -6.05% |
| MMLU - 社会科学 | 90.04% | 88.38% | -1.66% |
| MMLU - 理工科(STEM) | 81.46% | 78.88% | -2.58% |
| MMLU - 其他 | 84.52% | 81.05% | -3.47% |
| ARC-Challenge | 60.00% | 60.40% | +0.40% |
| ARC-Easy | 84.00% | 83.20% | -0.80% |
| BoolQ | 88.00% | 89.20% | +1.20% |
| HellaSwag(标准化) | 76.40% | 75.60% | -0.80% |
| OpenBookQA(标准化) | 45.20% | 47.20% | +2.00% |
| RTE | 81.20% | 82.00% | +0.80% |
| WinoGrande | 77.20% | 76.80% | -0.40% |
困惑度(WikiText-2,10k tokens,llama.cpp)
| 模型 | 困惑度(PPL) |
|---|---|
| 原始模型(256个专家) | 6.83 |
| 剪枝20%模型(205个专家) | 9.51 |
吞吐量(4×RTX 3090,TP=4,vLLM,enforce_eager)
| 批处理大小 | 原始模型(tokens/秒) | 剪枝模型(tokens/秒) | 加速比 |
|---|---|---|---|
| 1 | 12.3 | 12.5 | 1.02倍 |
| 4 | 37.0 | 36.0 | 0.97倍 |
| 8 | 74.4 | 70.3 | 0.95倍 |
| 16 | 89.3 | 86.0 | 0.96倍 |
注:在当前vLLM路由开销下,此压缩级别下的吞吐量加速效果微乎其微。主要优势在于减少了VRAM占用。
内存占用
| 模型 | 大小 | 分片 |
|---|---|---|
| 原始模型 | ~71 GB(bf16) | 14个safetensors文件 |
| 剪枝20%模型 | ~53 GB(bf16) | 2个safetensors文件 |
使用方法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "0xSero/Qwen3.5-35B-A3B-REAP-20pct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [{"role": "user", "content": "Write a quicksort in Python."}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
使用 vLLM:
vllm serve 0xSero/Qwen3.5-35B-A3B-REAP-20pct \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.9 \
--max-model-len 32768
复现
git clone https://github.com/cerebras/reap
cd reap
bash scripts/build.sh
python -m reap.layerwise_prune \
--model_name Qwen/Qwen3.5-35B-A3B \
--dataset_name "theblackcat102/evol-codealpaca-v1:250,open-r1/Mixture-of-Thoughts[code]:250,open-r1/Mixture-of-Thoughts[math]:250,open-r1/Mixture-of-Thoughts[science]:250" \
--compression_ratio 0.20 \
--prune_method reap \
--seed 42 \
--renormalize_router_weights true
引用
@inproceedings{lasby2025reap,
title={REAP the Experts: Why Pruning Prevails for One-Shot MoE Compression},
author={Lasby, Mike and others},
booktitle={ICLR 2026},
year={2026}
}