当前位置: 首页 > news >正文

REAP剪枝原理详解:路由门值与专家激活范数的巧妙结合

REAP剪枝原理详解:路由门值与专家激活范数的巧妙结合

【免费下载链接】Qwen-3.5-28B-A3B-REAP项目地址: https://ai.gitcode.com/hf_mirrors/0xSero/Qwen-3.5-28B-A3B-REAP

REAP(Router-weighted Expert Activation Pruning)剪枝技术是一种创新的混合专家模型(MoE)压缩方法,它通过结合路由门值与专家激活范数来实现高效的专家剪枝。本文将深入解析REAP剪枝的核心原理,帮助读者理解这一技术如何在保持模型性能的同时显著减少计算资源消耗。

REAP剪枝技术的核心创新点

什么是REAP剪枝?

REAP剪枝是由ICLR 2026论文《REAP the Experts: Why Pruning Prevails for One-Shot MoE Compression》提出的专家剪枝方法。它通过综合评估每个专家的重要性,实现对MoE模型中冗余专家的精准裁剪。在Qwen3.5-35B-A3B模型上的应用显示,REAP可以成功移除20%的专家(从256个减少到205个),同时保持模型在各项基准测试中的竞争力。

路由门值与专家激活范数的双重考量

REAP剪枝的核心在于通过两个关键指标来评估专家重要性:

  1. 路由门值(Router gate-values):衡量路由器选择每个专家的频率和强度。这反映了专家在模型决策过程中的活跃程度。

  2. 专家激活范数(Expert activation norms):表示每个专家输出贡献的大小。这直接关联到专家对最终模型输出的影响程度。

通过这两个维度的综合评估,REAP能够识别并保留那些既被频繁使用又对模型输出有重要贡献的专家,同时移除那些使用频率低且贡献小的冗余专家。

REAP剪枝的实现流程

层明智剪枝策略

REAP采用层明智(layerwise)剪枝策略,这意味着剪枝过程是逐层进行的。这种方法允许针对不同层的特点进行精细化调整,确保剪枝后模型的整体性能损失最小化。

路由器权重重归一化

剪枝后一个关键步骤是对路由器的logit权重进行重归一化,使其总和为1。这一步骤对于维持模型输出的规模和稳定性至关重要,是确保剪枝后模型性能不出现大幅下降的关键技术。

剪枝配置参数

REAP剪枝的效果可以通过多个参数进行控制,主要包括:

  • 压缩率(compression_ratio):控制要剪枝的专家比例。在Qwen3.5-35B-A3B-REAP模型中使用的是20%的压缩率。

  • 种子(seed):确保剪枝过程的可重复性。

  • 校准样本(calibration samples):用于评估专家重要性的数据集。Qwen3.5-35B-A3B-REAP使用了1000个混合类别的校准样本。

这些参数可以在reap_layerwise_args.yaml配置文件中进行调整。

REAP剪枝的效果评估

性能保持能力

尽管剪枝了20%的专家,Qwen3.5-35B-A3B-REAP模型在多个基准测试中仍保持了出色的性能:

  • HumanEval(pass@1):原始模型76.2%,剪枝后73.2%,仅下降3.0%

  • HumanEval+(pass@1):原始模型72.0%,剪枝后70.1%,仅下降1.9%

在部分推理任务中,剪枝后的模型甚至表现出小幅提升,如BoolQ任务从88.00%提升到89.20%,OpenBookQA任务从45.20%提升到47.20%。

资源消耗优化

REAP剪枝带来的最显著好处是模型资源消耗的降低:

  • 内存占用:从原始模型的约71 GB(bf16)减少到剪枝后的约53 GB(bf16),减少了近25%。

  • 模型文件:从14个safetensors文件减少到仅2个,大大简化了模型的存储和传输。

虽然在当前vLLM路由开销下,吞吐量提升并不明显,但模型的VRAM占用显著降低,使得在资源受限的环境中部署大型MoE模型成为可能。

如何应用REAP剪枝

基本使用方法

要在自己的项目中使用经过REAP剪枝的Qwen3.5-35B-A3B模型,可以通过以下Python代码实现:

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部署REAP剪枝后的模型:

vllm serve 0xSero/Qwen3.5-35B-A3B-REAP-20pct \ --tensor-parallel-size 4 \ --gpu-memory-utilization 0.9 \ --max-model-len 32768

复现REAP剪枝过程

如果想在自己的模型上应用REAP剪枝,可以按照以下步骤进行:

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

REAP剪枝的未来展望

REAP剪枝技术为MoE模型的高效部署开辟了新途径。通过智能地结合路由门值和专家激活范数,它实现了在保持性能的同时显著降低资源消耗的目标。随着研究的深入,我们可以期待REAP剪枝在以下方面的进一步发展:

  1. 更高压缩率:探索在更高压缩率下保持性能的方法,进一步降低资源消耗。

  2. 动态剪枝:开发基于输入内容动态调整专家集合的技术,实现更精细的资源分配。

  3. 跨模型适用性:将REAP剪枝技术应用于更多类型的MoE模型,拓展其适用范围。

REAP剪枝代表了MoE模型压缩领域的一项重要进展,它不仅为大型语言模型的高效部署提供了实用解决方案,也为未来的模型优化研究提供了新的思路。

引用

如果您在研究中使用了REAP剪枝技术,请引用以下论文:

@inproceedings{lasby2025reap, title={REAP the Experts: Why Pruning Prevails for One-Shot MoE Compression}, author={Lasby, Mike and others}, booktitle={ICLR 2026}, year={2026} }

通过结合路由门值与专家激活范数的双重考量,REAP剪枝技术为MoE模型的高效压缩提供了一种创新且实用的解决方案。它不仅能够显著降低模型的资源消耗,还能在各种任务中保持出色的性能,为大型语言模型的部署和应用开辟了新的可能性。

【免费下载链接】Qwen-3.5-28B-A3B-REAP项目地址: https://ai.gitcode.com/hf_mirrors/0xSero/Qwen-3.5-28B-A3B-REAP

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/907440/

相关文章:

  • 告别云服务账单:用llama.cpp和4-bit量化在老旧笔记本上搭建你的私有AI助手
  • 评测基准设计:全面评估 AI 系统的性能与质量
  • 别再硬刚pip install了!手把手教你用conda搞定torch_geometric(附版本匹配避坑清单)
  • 2026年高粘背胶的文具PVC装饰贴片/PVC装饰贴片/家具PVC装饰贴片/卡通PVC装饰贴片厂家选择推荐 - 品牌宣传支持者
  • MindSpeed-LLM框架深度解析:华为昇腾AI生态的大语言模型加速方案
  • AI文本检测技术解析:从DetectGPT到信息论,三大流派实战指南
  • 别死记硬背!用一个“猜数字”游戏,掌握库函数的学习方法
  • 【Gemini Go编程实战指南】:20年Go专家亲授,避开97%开发者踩过的5大陷阱
  • H3CSE 高性能园区网:IRF 堆叠技术详解
  • 鼎捷Tiptop ERP T100/GP 5.3版本Webservice接口开发:从零到部署的完整避坑指南(含SoapUI测试)
  • Go跨平台编译的决策树:从“能编译“到“能部署“的5个关键抉择
  • Sora 2动效渲染瓶颈全拆解:从GPU管线调度到CSS Layering的12ms响应达标实操指南
  • Navicat vs DBeaver:从零到一,手把手教你根据项目需求选对数据库管理工具(附避坑指南)
  • 从需求分析到产品落地:AI产品经理实战训练营,带你玩转AI赋能产品全流程!
  • 告别付费!用FileZilla Server在Win10上5分钟搞定个人FTP服务器(附防火墙配置)
  • 不止是安装:用HFish在Windows搭建你的第一个‘诱饵’系统,实战检测内网扫描
  • Git 分支合并操作备忘录
  • AI赋能社交:从算法匹配到动态理解与主动赋能的约会新范式
  • 【评测】csdn与微信公众号后台的深度集成能力
  • 金字塔原理:教你做一个技术强会表达的芯片工程师(7000字)
  • 【 linux 】文件系统
  • Solar Pro Preview 模型架构详解:从Phi-3-medium到220亿参数的深度上采样技术
  • NLP —— 英译法实例
  • IPv4 和 IPv6 在地址结构、表示方式、地址空间大小及计算逻辑上存在根本性差异
  • 告别ifconfig!用networkctl命令优雅管理你的Linux网络(systemd-networkd实战)
  • Keil MDK许可证问题解析与解决方案
  • 第3章:裂痕——Siri、Copilot与寄生者入侵
  • 10.【学习】SPI UART 验证环境与测试用例
  • GeoServer数据源创建失败?别慌,可能是这个Windows文件命名‘潜规则’在捣鬼
  • 如何安全备份微信聊天记录:完整指南与实用工具推荐