FastMMoE: Methods 详解
论文:FastMMoE: Accelerating Multimodal Large Language Models through Dynamic Expert Activation and Routing-Aware Token Pruning
arXiv:2511.17885 | Guoyang Xia et al. | Nov 2025
1. 背景与动机
1.1 MoE 架构基础
在 MoE(Mixture-of-Experts)大模型中,每个 MoE 层由 个专家(Expert FFN)组成,配备一个路由器(Router)。对于输入 token ,路由器输出各专家的概率分布,并按 Top- 选择激活的专家:
其中 ,即每个 token 只激活少数专家,这赋予 MoE 稀疏计算的优势。
1.2 问题:视觉 Token 的冗余
高分辨率图像在多模态大模型中会生成大量视觉 token(数百至数千个),导致推理时显著的计算负担。现有方法(如 FastV、SparseVLM)主要基于注意力分析剪枝冗余 token,但这些方法为稠密架构设计,无法充分利用 MoE 路由信息。
1.3 核心观察
作者通过分析 MoE-MLLM 的路由行为,发现:
- 视觉 token 相比文本 token 需要激活的专家数量更少:视觉 token 的语义相对单一,不需要调用全量 个专家。
- 相邻视觉 token 的路由分布高度相似:空间位置接近的 token 往往路由到相同或相近的专家组合,具有高度冗余性。
基于以上两点,FastMMoE 提出两个互补的加速模块。
2. 方法总览
FastMMoE 是一个 免训练(training-free) 的推理加速框架,由两个独立但互补的模块组成:
| 模块 | 针对的冗余类型 | 手段 |
|---|---|---|
| Expert Activation Reduction | 专家维度冗余 | 减少每个视觉 token 激活的专家数 |
| Routing-Aware Token Pruning | Token 维度冗余 | 基于路由相似度丢弃冗余视觉 token |
两个模块均作用于推理阶段,可无缝插入现有 MoE-MLLM 架构(如 DeepSeek-VL2、InternVL3.5)。
3. 模块一:Expert Activation Reduction(专家激活缩减)
3.1 核心思想
标准 MoE 对所有 token 统一使用 Top- 选择。FastMMoE 提出:从某一指定层 开始,对视觉 token 将激活专家数从 降低至 (),而文本 token 保持不变。
其中 为专家保留比例(expert retention ratio),为可调超参数。
3.2 稀疏化策略
对于视觉 token ,在第 层,重新定义激活专家集合为:
此时 MoE 层计算变为:
其中 是在 Top- 集合上重新归一化的路由概率:
3.3 起始层选择
作者发现浅层的路由选择对模型输出影响更大,因此推荐从中层开始施加激活缩减(即 , 为总层数),在靠前的层保留完整的 Top- 激活以维持语义质量。
3.4 计算节省分析
设原本每个视觉 token 激活 个专家,每个专家 FFN 的计算量为 ,减少后每个 token 节省:
对于 个视觉 token 和 个受影响层,总节省为:
4. 模块二:Routing-Aware Token Pruning(路由感知 Token 剪枝)
4.1 核心思想
若两个视觉 token 的路由概率分布高度相似,说明它们在 MoE 层中被相似的专家以相似的权重处理,因此携带近似冗余的信息,可以将其中一个安全剪枝。
4.2 路由相似度度量
对于第 层中的两个视觉 token 和 ,其路由概率向量分别为 ,定义路由相似度分数为对称 KL 散度的负值(值越大越相似):
或等价地使用余弦相似度:
4.3 滑动窗口剪枝(Sliding-Window Pruning)
为避免全局两两比较带来的 复杂度,FastMMoE 采用滑动窗口策略:在长度为 的局部窗口内评估相邻 token 之间的路由相似度。
对每个窗口 ,计算窗口内每对相邻 token 的相似度,并对相似度最高的 token 打上冗余标记。
4.4 注意力引导(Attention Guidance)
仅凭路由相似度可能剪掉语义上重要但恰好路由相似的 token。为此,FastMMoE 引入注意力分数作为补充信号,对每个视觉 token 计算其被文本 token 关注的聚合注意力分数:
其中 为文本 token 集合。综合冗余分数定义为:
- :token 在滑动窗口内与邻居的平均路由相似度(越高表示越冗余)
- :归一化后的注意力分数(越高表示越重要)
- :平衡两者的超参数
对所有视觉 token 按 降序排列,剪掉得分最高的 个 token,保留比例为 。
4.5 剪枝时机
Token 剪枝在特定层 执行一次(通常在浅到中间层),之后的所有层只处理剩余的 个视觉 token,从而在剩余层中获得持续的计算加速:
5. 两个模块的协同作用
两个模块正交互补,可独立使用,也可联合使用:
输入图像 → 视觉编码 → T_v 个视觉 token
↓
[层 0 ~ l†-1] 正常推理(全量 token,Top-K 专家)
↓
[层 l†] 执行 Routing-Aware Token Pruning → 保留 ρ·T_v 个 token
↓
[层 l† ~ l*-1] 正常推理(剪枝后 token,Top-K 专家)
↓
[层 l* ~ L-1] Expert Activation Reduction(Top-K' 专家)
↓
输出
联合使用时,FLOPs 节省来自两个方面的叠加:减少 token 数量 × 减少每 token 的专家激活数。
6. FLOPs 节省估计
论文在附录 E 中提供了封闭形式的 FLOPs 节省公式。设:
- :总层数,:激活缩减起始层,:token 剪枝层
- :原始视觉 token 数,:文本 token 数
- :原始激活专家数,:缩减后激活专家数
- :token 保留比例,:专家保留比例
理论 FLOPs 节省比(相对于全量推理)近似为:
实验表明,联合使用两模块可将 FLOPs 降低最高 55.0%,同时保留约 95.5% 的原始性能。
7. 小结
| 设计要点 | FastMMoE 的选择 |
|---|---|
| 是否需要微调/重训练 | ❌ 完全免训练 |
| 路由信息利用 | ✅ 直接分析路由概率分布 |
| Token 冗余评估 | 路由相似度 + 注意力分数联合打分 |
| 专家冗余评估 | 视觉 token 的低专家激活需求 |
| 计算复杂度 | 滑动窗口策略规避 |
| 适用范围 | 任意 Top-K MoE-MLLM(DeepSeek-VL2、InternVL3.5 等) |