点击下方卡片,关注「集智书童」公众号
本文主要解决了什么问题
MoE模型在不同服务负载下的效率动态分析 :研究细粒度MoE模型在不同推理批处理大小下的效率,探讨其是否仅在大型服务场景中才能实现效率提升。
专家削减策略的影响 :评估减少激活专家数量(
)和减少专家总数(
)对模型性能和计算效率的影响。 3. 3. 细粒度MoE模型的优化潜力 :探索细粒度MoE模型相较于传统粗粒度MoE模型的独特行为和优化空间。
本文的核心创新是什么
细粒度MoE模型的深入分析 :首次系统性地研究了细粒度MoE模型在不同推理场景下的效率动态,揭示了其与粗粒度MoE模型的不同特性。
专家削减策略的全面评估 :提出并验证了多种专家削减策略(如减少激活专家数量和减少专家总数),明确了这些策略在效率和性能之间的权衡。
硬件与模型适配优化 :通过专家并行(EP)和张量并行(TP)的对比,展示了MoE模型在多GPU配置下的通信开销优化潜力。
结果相较于以前的方法有哪些提升
显著的效率提升 :在某些场景下,减少激活专家数量可以将吞吐量提升至少
,且性能损失轻微。 2. 2. 更高效的专家剪枝方法 :软计数方法在减少专家总数时表现出色,即使在专家数量减少50%的情况下,仍能保持一定的模型性能。
细粒度MoE的独特优势 :相较于粗粒度MoE模型,细粒度MoE模型在特定场景下展现出更高的灵活性和优化潜力。
局限性总结
减少专家总数的效果有限 :尽管减少专家总数可以提高计算强度,但会导致严重的性能下降,尤其是在大幅削减专家数量时。
专家Skipping策略的模型依赖性 :最佳专家Skipping策略可能因模型而异,不存在通用的最佳策略。
硬件适配的复杂性 :尽管MoE模型在通信开销方面具有优势,但在实际部署中仍需考虑调度开销和硬件兼容性问题。
Sigmoid激活的不稳定性 :使用Sigmoid激活函数的细粒度MoE模型在专家Skipping方面存在更大的不稳定性,限制了其适用范围。
导读
Sparse专家混合(MoE)大语言模型(LLM)正逐渐成为超大规模模型的主流方法。现有的MoE模型优化工作主要集中于粗粒度MoE架构。随着DeepSeek模型的涌现,细粒度MoE模型正逐渐受到关注,但相关研究仍十分有限。因此,作者旨在探讨不同服务负载下的效率动态。此外,细粒度模型允许部署者减少路由专家的数量,包括激活次数和总数,从而引发如何影响MoE效率与性能之间权衡的问题。作者的研究发现,虽然部署MoE模型面临更大的挑战,但也提供了显著的优化机会。在某些场景下,减少激活专家的数量可以带来显著的效率提升,且性能损失轻微。减少专家总数则只能提供有限的效率提升,但会导致严重的性能下降。Faster-MoE-LLM可以在不牺牲性能的前提下,将吞吐量提升至少
。总体而言,作者得出结论,MoE推理优化仍是一个具有巨大探索和改进潜力的领域。
1 引言
Transformer的引入显著提升了序列模型的训练效率,使得超大规模模型的训练成为可能。基于这一基础,GPT风格的仅解码器Transformer模型,在规模法则的指导下,迅速获得了广泛关注。其卓越的可扩展性使其成为构建大规模生成式语言模型的主流选择。为了进一步扩大模型规模同时控制推理和训练成本,一个有前景的方向是对 FFN (FFN)进行Sparse化,而FFN构成了LLM中参数的大部分。
LLM中的FFN模块通常被实现为多层感知机或门控线性单元。两者首先通过上采样变换将隐藏状态投影到中间状态,然后经过激活函数,再下采样以生成新的隐藏状态。MLP和GLU中的中间状态可以轻易地进行划分:一个大的中间状态可以被分成多个小的中间状态,同时保持严格的等价性。这实现了一种策略,即将过大的中间状态分割成多个较小的状态,只有其中一部分状态通过门控被选择性地激活。每个划分对应的参数被称为一个“专家”,这种架构被称为Sparse专家混合。Fedus等人证明了MoE在Transformer架构中的有效性。Mixtral-8×7B是最著名的开源大规模MoE LLM。
大语言模型(LLMs)的部署长期以来是一个重大挑战。由于自回归解码,模型参数在推理过程中被反复访问,但计算量却很少,导致算术强度低。根据屋顶线模型,这损害了系统的计算效率。一些现有工作通过增大批处理大小来优化这一方面。尽管在提高MoE模型的训练效率方面取得了显著进展,但在推理过程中加速MoE模块仍是一个尚未充分探索的领域。特别是,基于MoE的推理系统在不同批处理大小下的理论性能尚未得到充分研究。
传统MoE模型采用相对保守的专家数量,通常总共包含八个专家,每个token激活两个。此外,这些专家通常从预训练的密集小模型中初始化。Dai等人引入了多项改进。他们显著增加了专家的总数和激活数量,同时减小了每个专家的规模。此外,所有专家都进行了随机初始化。为缓解训练较小专家带来的不稳定性,他们引入了一个更大的共享专家,该专家始终被选为主干。Deepseek V2(DeepSeek-AI等,2024a)的发布,其包含2360亿参数,展示了该范式的可扩展性。DeepSeek-AI等进一步通过引入分组约束和采用Sigmoid激活代替Softmax,优化了专家选择机制,从而发展出Deepseek V3模型。作者将Deepseek方法称为细粒度MoE,而传统MoE范式被称为粗粒度MoE。如图1所示。
细粒度MoE增强了模型的适应性,使得在推理过程中能够更灵活地利用参数。已有研究探索了在推理时丢弃某些参数以提高解码速度的方法。这些方法包括专家剪枝,即移除特定专家且不将其加载到内存中,以及专家Skipping,即减少每个token激活的专家数量。尽管已有部分工作探索了相关主题,但它们主要集中于为粗粒度MoE量身定制的方案,而非更有前景的细粒度变体。
综上所述,本文对细粒度MoE模型在不同推理批处理大小下的效率进行了分析。作者旨在探讨MoE模型是否仅在大型服务场景中才能实现效率提升。此外,作者研究了不同的专家削减策略对模型性能和计算效率的影响,以评估这一方向是否值得进一步探索,特别是在细粒度MoE及其Sigmoid激活变体中,模型表现出不同的动态行为,需要采用独特的分析方法。
2 背景与相关工作
2.1 FFN和MoE
FFN 通常是一个MLP或一个GLU,如方程1所示,其中ACT(·)表示激活函数,⊗表示逐元素乘积。
作者今后使用GLU来表示FFN,因为这是当前更常见的做法。
专家混合层可以表示为多个GLU的加权组合,其中权重
由一个称为路由器的线性分类器给出。作者定义路由器logits为
。此外,通常有两个函数用于修改logits,
用于通过负载均衡操纵Topk选择,
用于将logits归一化为最终权重。具有
个专家和
个激活的MoE层在公式2中给出
2.2 LLM服务效率
尽管现代大语言模型服务系统提供了多种系统级目标用于性能分析,作者专注于最根本的指标吞吐量,以避免不必要的复杂性。吞吐量反映了在固定输入输出序列长度下的计算效率,有效衡量了硬件计算能力的利用率。
先前研究,如Orca和vLLM,基于Roofline模型构建了分析框架,该模型表明更高的整体计算强度会导致每token的计算时间减少。在LLM推理优化中的一个核心原则是最大化批处理大小以提升计算效率。这体现在vLLM中的持续批处理和块注意力中,它们促进了具有共享前缀token的KV缓存段的批处理。
2.3 模型剪枝
模型剪枝是指减少模型参数数量以提高推理速度,同时最小化性能退化的过程。剪枝可以在不同粒度 Level 上进行。例如,LayerSkip能够跳过整个层,而其他方法通过Sparse化FFN在层内进行剪枝。在大语言模型(LLM)的背景下,剪枝不仅限于模型参数,还可以扩展到KV缓存等组件,其中已经提出了多种方法来选择性地移除存储的键值对,进一步优化内存使用和计算效率。
对于MoE模型,相关研究主要集中于专家剪枝。对于粗粒度MoE,由于专家之间的高度同质性,剪枝是一种相对直接的方法。然而,在细粒度MoE中,这些方法面临重大挑战。尽管如此,专家数量的增加,包括全局和活跃专家,也为优化提供了新的机遇。
3 预备知识
3.1 符号表示
先前作者定义
为隐藏层大小,
为 FFN 的中间层大小,
为专家数量,
为每个token激活(选择)的专家数,
为专家选择的路由logits的修改函数,以及
为权重修改器。作者用
表示序列长度,得到隐藏状态
,
,
,以及
。基于三元组
的内存
、FLOPS和计算强度(AI)在公式3中给出。
为了更好地评估每个状态的大小,作者进一步定义
为专家的中间大小,
为共享专家的中间大小,以及
为激活的中间大小,其中
3.2 评估方法
作者选择了两个具有代表性的细粒度MoE模型进行评估:DeepSeek-V2-Lite和DeepSeek-V3。它们的基本特性如表1所示。
为了评估模型的性能,作者选择了多个基准数据集,包括ARC、BoolQ、OpenBookQA、RTE和Winogrande。如果未特别说明,性能分数是上述所有基准的平均值,36作为 Baseline (可以通过纯粹猜测实现)。
3.3 硬件与实现细节
第4节的具体实现细节在附录B中给出。第5节和第6节的具体实现细节在附录C中给出。
需要强调的是,在作者的效率实验中,输入和输出token的数量是至关重要的可控变量之一,如附录A所述。除非另有说明,所有测试均使用随机采样的1024个输入token进行,同时指示模型在推理过程中生成额外的1024个token,因为增加输入token的比例可以显著提高整体吞吐量。
4 MoE效率切割
4.1 弱化批次效应
前馈层构成了模型参数的大部分,在早期模型中约占
,在一些现代模型(如Qwen-2.5-3B)中甚至高达
。在单批次设置下,它主导了计算时间。在预填充阶段,序列中的所有token同时通过 FFN (FFN),这意味着一旦参数加载到内存中,它们会被多次复用。这种做法将参数加载成本分摊到多个token上。图2a描绘了
与AI之间的关系。当批次大小较小时,增加并行token的数量可以显著提升系统性能。值得注意的是,将token数量从1增加到2,尽管计算工作量翻倍,但延迟几乎不会增加。这一现象在图2b中得到了展示,该图展示了
与每个token延迟(秒)之间的关系。可以看出,在
约为150时,效率达到峰值。
在MoE模型中,虽然Sparse激活可以减少计算需求,使得FLOP需求远低于总参数数量,但随着token数量的增加,必须将更多的专家加载到内存中。由于token在批次内很少重用同一个专家,这会带来额外的内存访问开销。因此,即使不考虑调度开销(这可能非常显著),MoE在激活参数数量相同的情况下本质上并不比FFN更快。
作者评估了MoE模块在不同序列长度下的效率,如图2c所示。作者的研究发现,与图2b相比,MoE模块的延迟更高,达到峰值效率的速度更慢。然而,作者观察到较大的模型更容易达到最大效率,这主要归因于其固有的更高AI上限。
4.2 专家并行
尽管在批量处理加速方面MoE不如FFN高效,但在相同的计算需求下,它所需的跨设备通信显著更少。当模型部署在多个计算设备(例如GPU或计算节点)上时,最大化硬件利用效率的最有效方法是张量并行(TP)。
对于密集型 FFN (FFN),张量并行(TP)通过将中间状态分配到多个设备上实现。具体而言,在一个包含
个设备的系统中,每个设备仅存储
参数的一部分,对应于中间维度上长度为
的子分区。如前所述,FFN结构允许直接进行分区,从而能够在
个设备上并行执行计算。然而,TP的主要缺点在于其高通信开销。即使在最优化的情况下,设备间的总数据传输量也不能低于
。这是因为每个隐藏状态值必须跨所有设备进行两次交换,一次用于映射,一次用于归约,这显著限制了其适用性:TP通常仅在节点内的GPU之间使用,而不会跨节点使用。
MoE通过专家并行(EP)从根本上克服了通信 Bottleneck 。在EP设置中,不同的专家分布在不同的设备上,这意味着每个token的状态只传输到其选定的专家。因此,在最坏情况下,EP只需要
次通信操作。考虑到典型的
值为8,而粗粒度模型的
通常为2,EP将数据传输量减少到TP的约
。在细粒度MoE中,可以通过根据EP范式对专家进行分组来实现类似的优化,其中位于同一设备上的所有专家属于同一组。通过限制每个token只能从有限数量的组中选择专家(例如,从8个可能的组中仅选择2个),作者可以在进一步优化通信开销的同时实现相同的好处。
在典型的多GPU配置中,使用NVLink的节点内带宽约为160 GB/s,而通过InfiniBand实现的节点间连接速度约为50 GB/s,大约是节点内带宽的31%。DeepSeek-AI等人(2024b)的研究表明,在这样配置下,专家推理(EP)可以在节点间有效实施,而无需节点内推理(TP),同时保持相当的延迟。这一特性有效弥补了上一节讨论的效率限制:同一层内的专家可以分布在多个节点上,使每个节点能够处理更大、更集中的请求,从而提高算术强度。
5 推理时间专家Skipping
与通常仅激活两个专家的粗粒度MoE相比,细粒度MoE从64到256个专家的专家池中选取6到8个专家。这为减少激活专家的数量
提供了机会,从而可能提高效率。然而,仅仅减少
对模型整体大小的影响有限,这意味着它并不能显著降低部署门槛。此外,由于存在大型共享专家主干,实际计算成本的降低也相对受限。
尽管存在这些挑战,作者旨在从语言建模的角度探讨这一方面。对
进行更细粒度的控制可以通过分析MoE模型在不同组件中的能力需求,为其适应性提供洞察。作者在DeepSeek-V2-Lite和DeepSeek-V3上进行了实验,详细结果可以在附录E中找到。
5.1 效率
在效率方面,作者研究了在保留所有专家的情况下,改变激活专家数量
的影响。为了简化测试范围和流程,作者在所有层中使用一致的
,范围从2到模型的原始
。基于此设置,作者进一步在不同的请求负载下评估了模型,以分析其性能。作者的实验结果如图3所示。
通过分析吞吐量趋势,作者发现减少激活专家的数量
对达到峰值吞吐量所需的并发请求数量没有显著影响。然而,加速比曲线呈现出更为复杂的模式。
值得注意的是,作者在低并发和高并发水平下均观察到显著的加速效果,而在中等并发水平下加速效果有限。事实上,在低并发情况下,加速比可达到50%(当
时),超过了不考虑MLA层的细粒度MoE的理论计算减少上限
。这是因为低并发时,系统受内存I/O限制,减少
能立即降低所需参数加载量,从而带来更高的加速比例。中等并发时,系统仍受内存I/O限制,但由于能同时处理足够多的token,减少
并未显著减少所有请求中选中的专家总数,导致加速效果有限。高并发时,系统转为受计算限制的模式,减少
降低了计算需求,从而提升了吞吐量。在这种情况下,吞吐量提升更紧密地与计算减少比例相吻合。
5.2 性能和结构搜索
作者旨在识别一种能够在每个token激活的专家总数保持固定的情况下最大化模型性能的层间专家分配策略。此外,作者还研究了不同专家减少策略对模型性能的影响。目前,作者的重点是层级的定制化减少。
具体而言,作者使用四元组
定义专家分配,其中:
- • 第一层选择
个专家,即
- • 第
层选择
个专家,即
- • 最终层选择
个专家,即
- • 对于其他层,专家数量通过线性插值确定。
这种公式化方法使作者能够探索各种专家分配模式,包括升序、降序、峰值和谷值分布,如图6所示,附录D。这些实验帮助作者从语言模型的角度分析不同层中专家的相对重要性。
在V3模型中,如图4b所示,当减少
时,作者观察到类似的性能曲线。然而,与V2-Lite更平滑的性能相比,V3模型在不同缩减策略下表现出更大的不稳定性。这种不稳定性可能源于Sigmoid函数的固有特性,即专家权重倾向于极化到0或1。相比之下,在基于Softmax的模型中,低 Level 专家的权重显著小于顶级专家的权重。作者认为,在细粒度MoE模型中使用Sigmoid而不是Softmax具有更大的优势,因为它能够更有效地利用所选专家。然而,这也限制了它在专家Skipping方面的适用性,如果跳过移除了权重已经收敛到1的专家,可能会出现显著的性能下降。
此外,在多种专家Skipping策略中,作者的实验表明在V2-Lite上下降减少策略在效率和性能之间提供了最佳平衡,但在V3上上升策略则取得了最佳性能。作者认为这种行为差异是模型的内在特性。V2-Lite和V3中观察到的相反趋势表明,最佳专家Skipping策略可能是模型相关的,这意味着可能不存在通用的跳过策略。
6 预推理专家剪枝
除了在推理过程中减少激活专家的数量外,作者还探索了细粒度MoE模型引入的另一种可能性,即在推理开始前确定哪些专家应该被丢弃。换句话说,这对应于减少专家总数
。这种方法已经得到了部分研究,主要在Mixtral系列模型的背景下,其中专家剪枝通常由基于信息的指标或移除专家后的性能比较来指导。
然而,作者关注两个额外的关键问题:
-
- 这些方法能在多大程度上加速推理?
-
- 这些方法对细粒度MoE模型是否仍然有效?
虽然减少专家总数不会降低计算工作量,但它会增加计算强度,理论上可能导致推理速度的净提升。此外,细粒度MoE模型为全局专家减少带来了独特挑战,即完全随机初始化,这意味着专家之间没有任何相似性,使得有效的全局剪枝变得更为复杂。
6.1 效率
作者在DeepSeek V2上进行了实验,在并发请求设置为512的情况下,测试了不同的
。作者的评估结果如表5所示。
作者观察到在较低吞吐量水平下,加速比也显著,最高可达
的加速。这是因为当专家数量减少时,每个专家的计算强度迅速增加,即使FLOPs保持不变,也会导致推理速度大幅提升。然而,作者注意到在并发 Level 为192时,专家减少后的吞吐量有所下降。这可能是由于sglang在优化过程中策略发生了转变,可能触发了潜在的bug。有关所使用的sglang版本的详细信息,请参阅附录C。
6.2 性能
作者评估了在不同
值下不同选择策略的性能,如表2所示。作者使用各种专家减少策略进行了实验,包括随机移除、结构化移除(基于奇数索引、偶数索引、下半部分索引和上半部分索引选择专家,这些方法在理论上等同于随机选择),以及Muzio等人提出的软计数和硬计数方法,这些方法通过专家的流行度来确定专家重要性,然后选择最关键的专家。在某些情况下,某些方法在特定的测试集上完全失去了其能力,其性能与返回随机答案相当,作者在这些情况下用斜体 Token 。
作者的结果表明,软计数方法始终优于其他方法。当专家数量减少25%时,即使是最佳方法也表现出一定的性能下降,而随机选择导致了显著的精度损失。在专家数量减少50%的情况下,即使是最佳方法也经历了15%的性能下降,而随机选择的专家完全失去了语言能力。最后,当仅保留25%的专家时,随机选择仍然导致了完全的失败,只有最佳方法能够保持一定的能力,而即使是稍差一些的硬计数方法几乎完全失去了其有效性。
作者实验中的一个有趣观察是结构化移除的表现优于纯粹的随机选择。更具体地说,当保留具有偶数索引的专家或后半部分的专家时,性能接近最佳方法。相比之下,其他两种结构化方法导致了近乎完全的语言能力丧失。这表明存在一些特别关键的专家,恰好是具有偶数索引和更高编号的专家。换句话说,尽管在训练过程中应用了负载均衡机制,但专家的重要性仍然存在显著差异。
参考
[1]. Faster MoE LLM Inference for Extremely Large Models.
扫码加入👉「集智书童」交流群
(备注:方向+学校/公司+昵称)