MC-SMoE: MoE 模型压缩方案

Merge, Then Compress:用路由策略解开高效 SMoE 的压缩之谜

读完论文先给你结论

这篇文章解决的核心问题是:SMoE 很强但太占内存且专家冗余严重。作者从路由策略里“挖线索”,提出先合并再压缩的两阶段方案MC-SMoE。它通过路由激活频率识别“关键专家”,把冗余专家合并进主导专家,再利用合并后权重的低秩特性继续压缩。实测在多任务上能做到最高 80% 内存节省、20% FLOPs 降低,性能几乎不掉。


背景:SMoE 为什么既香又难用

SMoE(Sparsely activated Mixture-of-Experts)把 Transformer 中的 FFN 替换成多个专家,每个 token 只激活少量专家,从而在计算量几乎不变的情况下扩大模型容量。但真实场景里有两个硬伤:

  • 内存爆炸:每层一堆专家,参数量飙升。
  • 专家冗余:路由会出现 representation collapse,很多专家长期不工作。

所以目标是:压缩 SMoE 的参数,同时保住它的能力


方法总览:MC-SMoE = Merge + Compress

核心思想:路由策略里藏着“专家重要性”和“专家相似性”。先合并冗余专家,再在合并后的权重上做结构压缩。

图解:整体流程分三步:路由器按 token 选择专家;根据路由统计把专家分组并合并;合并后权重低维化,再做低秩 + 稀疏分解,进一步压缩。


关键观察 1:路由激活频率揭示专家重要性

不同任务下专家激活频率差异巨大,很多专家几乎不被用到。作者用路由日志统计每个专家被激活的频率,把高频专家当作dominant experts

图解:横轴为专家索引,纵轴为 MoE 层。颜色越深说明激活频率越高。可以看到很多专家几乎不激活,说明冗余严重,且不同任务的分布差异很大。


关键观察 2:路由输出可衡量专家相似性

作者不用参数相似度,而是用路由输出 logits 的相似度来判断专家是否冗余。公式如下:

Sim ( E i , E j ) = cosine ( H i , ∗ , H j , ∗ ) \texttt{Sim}(E_i, E_j) = \texttt{cosine}(H_{i,*}, H_{j,*})Sim(Ei,Ej)=cosine(Hi,,Hj,)

其中H = W r X T H = W_r X^TH=WrXT是路由器 logits,行向量H i , ∗ H_{i,*}Hi,代表专家E i E_iEi对输入的响应分布。

这种相似性更贴近“实际被分配到的样本集合”,比直接比权重有效。


M-SMoE:基于路由的专家合并

合并流程分三步:

  1. 专家排列对齐:不同专家初始化不同,需要先做 permutation alignment,避免错位融合。
  2. 确定主导专家:按激活频率选出 dominant experts。
  3. 分组并加权合并:每个非主导专家挂靠到与其最相似的主导专家,再做频率加权平均。

合并公式:

E merged = ∑ i = 1 k α i E i ∑ i = 1 k α i E_{\text{merged}} = \frac{\sum_{i=1}^k \alpha_i E_i}{\sum_{i=1}^k \alpha_i}Emerged=i=1kαii=1kαiEi

这里α i \alpha_iαi是激活频率,能自然压制长期不工作的专家。


关键发现:合并后的权重更低秩

合并后权重出现明显低维趋势,用 stable-rank 衡量:

stable-rank ( σ ) = ∑ i σ i 2 max ⁡ σ i 2 \texttt{stable-rank}(\sigma) = \frac{\sum_i \sigma_i^2}{\max \sigma_i^2}stable-rank(σ)=maxσi2iσi2

图解:图中多数层的 stable-rank 变化为负,说明合并后权重更低秩,适合进一步做低秩分解与稀疏化。


MC-SMoE:合并后继续压缩

作者在合并后做低秩 + 稀疏分解:

W ≈ U V + S W \approx U V + SWUV+S

  • U V U VUV是低秩部分,r ≪ min ⁡ ( d 1 , d 2 ) r \ll \min(d_1, d_2)rmin(d1,d2)
  • S SS是残差稀疏项,按重要性剪掉整列

重要性得分:

I ( s i , j ) = ∣ s i , j ⋅ ∇ s i , j L ∣ \mathcal{I}(s_{i,j}) = |s_{i,j} \cdot \nabla_{s_{i,j}} \mathcal{L}|I(si,j)=si,jsi,jL

这样能让每一层自适应地保留最关键的结构。


实验效果:更小但几乎不掉分

论文在 8 个 NLP 任务上做了系统对比。

图解:在 COPA 任务上,MC-SMoE 以接近原模型的准确率换取最高 80% 内存节省,说明合并 + 压缩不会明显伤性能。

更多细节见主表(Switch-Base-32):

  • M-SMoE:可减小 60% 内存,部分任务还略涨分。
  • MC-SMoE:可减小 80% 内存 + 20% FLOPs,性能下降 <1%。

补充实验:方法设计的有效性

1. 自适应合并比例优于固定比例

图解:不同任务下专家聚类结构不同,自适应合并可以更好匹配每层冗余程度。

2. 路由 logits 相似度最稳

图解:路由 logits 直接反映“专家接收到的 token 分布”,比权重或特征相似更可靠。


附录关键点:延迟问题与工程化启示

论文指出:即便专家数量下降,路由器输出维度不变,实际延迟仍然可能偏高。如果能进一步剪裁路由器输出通道,延迟还能进一步下降。

图解:后层的主导专家更容易压缩,说明越深层越可能冗余,给部署优化留出空间。


总结与启发

这篇工作给出一个非常实用的 SMoE 精简路径:

  • 用路由统计找冗余,而不是只靠权重。
  • 先合并再压缩,避免直接压缩造成性能崩坏。
  • 合并后低秩性增强是关键突破点。

如果你在做 MoE 相关落地(比如推理部署、移动端推理、边缘设备),MC-SMoE 的思路值得直接借鉴。


本文参考自 Merge, Then Compress: Demystify Efficient SMoE with Hints from Its Routing Policy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MCP学习笔记

MCP学习笔记 最近由于组织架构变动&#xff0c;负责AI相关工具建设&#xff0c;学习一下MCP相关的知识 1、MCP介绍 1.1、什么是MCP MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;是 Anthropic 开发的一个开放标准协议&#xff0c;用于让 AI …

AI大模型开发入门到精通:一本助你转型的必备书籍

文章介绍了《AI大模型开发之路》一书&#xff0c;为转型AI大模型开发工程师提供全面指导。内容涵盖Python编程、机器学习基础、Transformer模型原理、API调用实战、LangChain框架应用&#xff0c;以及项目部署等全流程。通过系统化学习路径&#xff0c;从理论到实践帮助读者掌握…

UE5 C++(43):用 timeLine 实现开关门

&#xff08;222&#xff09;概述&#xff1a;本节里会为 timeLineActor 继续添加盒体碰撞组件&#xff0c;还有一个门&#xff0c;当 character 角色来&#xff0c;发生碰撞时&#xff0c;让那个门&#xff08;静态网络体组件&#xff09;旋转。碰撞的方面的设置&#xff0c;在…

HC-SMoE: MoE Expert 合并压缩方案解读

Retraining-Free Merging of Sparse MoE via Hierarchical Clustering&#xff08;HC-SMoE&#xff09;长文解读 一句话总结 这篇论文要解决的是 SMoE 模型太大、专家冗余严重 的问题&#xff0c;提出了一个 不需要再训练 的专家合并框架 HC-SMoE&#xff0c;用 专家输出的相…

基于SpringBoot+Vue校园跑腿网站的设计与实现

博主主页&#xff1a;一点素材 博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬…

IPO投资策略:如何评估新上市公司

IPO投资策略:如何评估新上市公司 关键词:IPO投资策略、新上市公司评估、财务分析、行业前景、管理团队 摘要:本文聚焦于IPO投资策略,旨在深入探讨如何全面、科学地评估新上市公司。通过对背景知识的介绍,阐述核心概念及联系,剖析核心算法原理与操作步骤,运用数学模型和公…

基于SpringBoot+Vue校园足球俱乐部管理系统的设计与实现

博主主页&#xff1a;一点素材 博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬…

导师严选2026 TOP10 AI论文工具:专科生毕业论文写作全测评

导师严选2026 TOP10 AI论文工具&#xff1a;专科生毕业论文写作全测评 2026年AI论文工具测评&#xff1a;为何值得一看&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI写作工具在学术领域的应用越来越广泛。对于专科生而言&#xff0c;撰写毕业论文不仅是学业的重要环节…

Linux OOM killer 评分系统的演变及分数优先级详解

&#x1f4ca; OOM 分数优先级详解 &#x1f3af; OOM 评分系统的演变 在 Linux 内核中&#xff0c;OOM Killer 的评分系统经过了演进&#xff1a; 历史版本&#xff1a; oom_adj&#xff08;旧版&#xff0c;范围&#xff1a;-16 到 15&#xff09; 内核版本 2.6.11-2.6.36…

降AI率必备!6款免费工具亲测,学生党轻松降80%,论文AI检测一次过

最近身边不少同学都在发愁——论文AI率太高。明明自己认真改过好几遍&#xff0c;系统一查还是提示AIGC爆表&#xff0c;导师看一眼就摇头。其实现在用AI辅助写论文确实方便&#xff0c;但怎么降低ai率、让内容更自然&#xff0c;才是真正过关的关键。 我这段时间亲测了十几款…

AI Agent实战指南:程序员必学大模型应用,从概念到商业布局,值得收藏

人工智能体(AI Agent)已从技术概念跃入商业现实&#xff0c;迎来爆发时刻。作为大语言模型驱动的智能系统&#xff0c;AI Agent能自主感知、决策与执行&#xff0c;从"辅助工具"向"核心生产力"跃迁。OpenAI、Monica、阿里巴巴等科技大厂纷纷布局&#xff0…

基于SpringBoot+Vue学校物资采购系统的设计与实现

博主主页&#xff1a;一点素材 博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬…

AI率过高别慌!这6个免费降AI工具亲测有效,学生党拯救论文指南

最近身边不少同学都在发愁——论文AI率太高。明明自己认真改过好几遍&#xff0c;系统一查还是提示AIGC爆表&#xff0c;导师看一眼就摇头。其实现在用AI辅助写论文确实方便&#xff0c;但怎么降低ai率、让内容更自然&#xff0c;才是真正过关的关键。 我这段时间亲测了十几款…

Balanced 01-String

Balanced 01-String 题目描述 小苯有一个长度为 $n$ 的字符串 $s$,只包含字符 $\texttt{0}$、$\texttt{1}$ 和 $\texttt{?}$。 他定义一个 $01$ 字符串是平衡的,当且仅当字符串中所有相邻两个字符相同的对数(即满足…

AI大模型学习全攻略:零基础入门、35岁转行可行性与就业前景

文章探讨35岁转行学习AI大模型的可行性、零基础入门可能性和行业前景。指出35岁转行完全可行&#xff0c;零基础学习者可通过丰富资源掌握技能。AI大模型行业前景广阔&#xff0c;需求增长。文章提供了系统学习路线&#xff0c;包括基础理解、API应用开发、应用架构实践和私有化…

基于SpringBoot+Vue一鹿租车公司车辆管理系统的设计与实现

博主主页&#xff1a;一点素材 博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬…

D6 707.设计链表

707 设计链表(力扣:https://leetcode.cn/problems/design-linked-list/ 条件: 见原题链接 Tips: 代码: 点击查看代码 struct ListNode{int val;ListNode* prev;ListNode* next;//使用初始化列表ListNode( int num…

实验室智能监控系统实战源码-基于YOLOv8的实时目标检测与PyQt5可视化界面

实验室智能监控系统实战源码-基于YOLOv8的实时目标检测与PyQt5可视化界面 前言 实验室安全管理一直是科研机构和教育单位的重点。传统依赖人工巡查的方式存在效率低、易遗漏、成本高等问题&#xff0c;难以满足全天候监控需求。随着计算机视觉技术的发展&#xff0c;基于深度…

毕业党救星!5个降AI率工具大公开,亲测好用,能帮你把AI率降低80%以上

上周答辩前夕&#xff0c;我室友差点崩溃——论文被导师退回来了&#xff0c;原因是"疑似大量使用AI生成内容"。她哭着说&#xff1a;"我明明自己改过好几遍啊&#xff0c;为什么还是被查出来了&#xff1f;" 这场景我太熟悉了。去年我自己也经历过&#…

如何在idea中创建mavenweb项目

1、首先进入idea,正常新建一个maven项目2、建立完成之后会出现java、resources这两个包。在main包里面,也就是和java、resources这两个包同一级中新建一个webapps的包(这个包的包名是任意的,这里就先命名webapps)…