MoE模型高效训练指南:用显存换性能的实战测评与优化策略
MoE架构正成为大模型演进的关键路径吗?
自MoE架构在大模型训练与推理领域的潜力被发掘,这一议题便持续引发行业深度探讨。
MoE,即混合专家模型,其核心是一种模块化的稀疏激活机制。如何理解这一概念?
当前主流大模型主要分为稠密与稀疏两类。二者的根本差异在于推理时实际调用的参数量。参数全数参与计算的,如OpenAI的GPT系列及Meta的Llama系列,属于稠密模型。而仅激活并使用部分参数的,则是基于MoE架构的稀疏模型,这部分工作参数被称为“激活参数”。
从网络结构剖析,主流大模型多基于Transformer架构,由堆叠的Transformer Block构成。每个Block通常包含多头自注意力层与前馈神经网络层。MoE的创新在于对FFN层进行横向扩展,将其参数细分为多个独立的“专家”组。
基于此设计,MoE模型针对特定输入,仅需通过“路由器”或“门控网络”动态选择并激活少数几个专家,实现高效的稀疏计算。
去年底,Mistral AI开源的MoE模型Mixtral 8x7B,其性能比肩GPT-3.5与Llama2 70B,而推理计算消耗仅相当于一个13B的稠密模型。这一成果极大地激发了业界对MoE潜力的关注。
这种架构能够在扩大模型参数规模的同时,显著降低相对于同等规模稠密模型的计算成本,实现高效训练。在缩放定律仍被视为大模型核心发展规律的当下,MoE无疑是实现规模效益的理想工具。
随后,国内外厂商迅速跟进,相继推出各自的MoE架构模型:
今年1月,MiniMax发布基于MoE的大语言模型abab6;
2月,昆仑万维正式推出新版MoE大模型“天工2.0”;
3月,马斯克的xAI开源MoE大模型Grok-1,阶跃星辰发布Step-2万亿参数MoE预览版,阿里通义千问团队开源其首个MoE模型Qwen1.5-MoE-A2.7B;
4月,元象科技发布XVERSE-MoE-A4.2B,面壁智能推出MiniCPM-MoE-8x2B;
5月,DeepSeek AI开源的MoE模型DeepSeek-V2,在多项任务中展现了当前开源MoE语言模型的领先性能……
选择MoE的厂商日益增多。通过与国内多位MoE领域专家的交流,我们发现,尽管MoE的长期前景尚未完全明朗,但在当前遵循缩放定律追求模型规模化的背景下,它已成为多数企业一个近乎必然的技术选项。
1. MoE是算力匮乏的“产物”
MoE并非新兴概念。作为一种统计学架构,它早在1997年便被提出。随后,其思想被逐步引入机器学习与深度学习领域。早在2017年,已有研究成功将MoE方法应用于LSTM模型。
对许多从业者而言,认识到MoE在大模型训练中的应用潜力,始于去年底Mistral AI的开源行动。但对于长期研究者来说,那次开源更像是一次成功的工程实践,将业界对MoE的认知从理论推向了效果验证阶段。
更早的线索出现在去年6月。当时有传言称OpenAI的GPT-4可能是一个8x220B的MoE模型。尽管当时国内大模型产业刚起步,相关讨论未深入,但此次传言无疑让更多业内人士开始审视MoE的价值。
阶跃星辰的算法专家透露,当社区传言GPT-4采用MoE架构时,他们并不意外,甚至能依据经验推测其大部分架构细节。
元象XVERSE的技术合伙人轩文烽也表示,团队早在2021年初Google发表Switch Transformers论文时便开始关注MoE,国内阿里研发M6模型时亦有跟进。“Mistral AI的开源,让MoE的实际效果变得非常直观。随后在去年12月,我们便启动了自研MoE大模型的规划。”
诚然,MoE作为一种稀疏激活技术,其最突出的优势在于:在总参数量不变的前提下,能大幅降低实际计算量,从而提升效率、控制成本。这正是这项并不“新”的技术在当前时间点重获关注的根本动因。
大模型规模正呈指数级增长。缩放定律指出,模型规模与性能通常正相关。但模型迭代极度依赖强大算力,而算力紧缺已是行业共识。
稀疏化技术,包括MoE,为这一难题提供了可行的解题思路——它允许模型拥有更大的参数规模,同时其训练与推理成本远低于同等规模的稠密模型。
面壁智能的研究员宋晨阳指出,在当前算力,特别是国内算力资源普遍受限的背景下,MoE架构是一个必然的技术趋势和务实选择。
面壁智能与MoE渊源颇深。早在2021年6月,清华大学刘知远教授团队发布的千亿MoE大模型CPM-2,便是国内该方向的早期重要成果,面壁智能的初始团队正是参与者之一。这份技术基因使得面壁智能持续深耕MoE与稀疏化技术研究。
同样坚信缩放定律的阶跃星辰,在完成千亿模型训练后迈向万亿规模。而要将参数扩大到万亿级别,MoE正是在性能、参数量、训练与推理成本等多维度权衡下的最佳技术路径。
具体而言,MoE模型的优势主要体现在专家化、动态化和稀疏化三个维度:
一是更强的模型表现力。MoE融合了多个各具专长的子模型,通过分工协作,能够动态适应不同输入的数据特征,从而提升整体表达能力。
二是更优的训练与推理效率。相比于同参数量的稠密模型,MoE采用稀疏激活机制,训练时计算量更小,推理时同时激活的参数量也更少,从而能更高效地利用计算资源。
2. 路径抉择不一
目前,采用MoE架构的厂商日益增多,整体思路趋同,但在具体的架构设计细节上,业界远未形成共识。例如,专家总数设置多少?每次激活几个?是否需要设置固定的共享专家?如何平衡专家间的负载?各家均有不同的技术选择。
当前MoE的技术路径主要分为两种:基于已有稠密模型进行训练,或完全从头开始训练。
基于已有模型训练,常采用“向上复用”的取巧方案。具体而言,是将一个已训练好的稠密模型的FFN权重复制多份,每份作为一个专家,组合成MoE模型。这样可以快速得到一个参数量巨大的模型,而算力需求相对较小。
宋晨阳解释道:“这种方法的核心优势在于成本节约,因为初始模型已蕴含了大量知识。”但弊端也很明显:通过复制得到的专家之间可能存在高度知识重叠,导致参数冗余。若处理不当,则无法充分发挥MoE架构的潜力,这对工程实现提出了较高要求。
相比之下,从头开始训练虽然难度更高,但能缓解上述问题,并且拥有更高的设计自由度,有望突破传统MoE架构的性能瓶颈。
目前,多数厂商选择了基于已有模型训练的路径,例如Mistral AI的Mixtral系列、通义千问的Qwen1.5-MoE-A2.7B、面壁智能的MiniCPM-MoE-8x2B等。而从论文披露看,DeepSeek-V2则选择了更具挑战性的从头训练路线,其开源后也引发了广泛关注。
阶跃星辰采取了双轨策略:一方面坚持完全从头训练,保持万亿参数规模以充分挖掘MoE潜力;另一方面在前期投入大量精力,从众多候选方案中筛选出更可靠的架构配置。
此外,业界在专家粒度设计上也存在分歧:专家应该粗粒度还是细粒度?是否应引入固定共享专家?
以Mistral AI的8x7B为例,这是一个经典架构:8个形状相同的专家,路由器每次从中选择2个激活。但通义千问和DeepSeek采用了不同思路,特别是DeepSeek,它将专家粒度切分得更细,并引入了共享专家。
这相当于将选择范围从8选2,变为将每个专家再细分为8份,得到64个更小的专家单元,然后从中选择8个。可选择的组合数大幅增加,模型的表达能力理论上也随之增强。
宋晨阳认为,这是DeepSeek MoE模型的一个关键创新点。
轩文烽也透露,在专家设计上,元象XVERSE并未采用类似Mistral AI的传统方案,而是使用了更细的颗粒度,将每个专家设置为标准FFN大小的1/4。这一选择基于多次实验验证,同时团队也密切关注着业界在FFN配比上的最新进展。
另外,DeepSeek引入的共享专家设计颇具巧思。如前所述,基于“向上复用”得到的MoE模型,专家初始化时完全一致,知识重叠难以避免。DeepSeek的策略是将这部分公共知识,用一个共享专家单独表征。对于每个输入,共享专家被固定激活,不经过路由器选择;剩余的非共享专家,则由路由器动态挑选激活。
基于这些差异,宋晨阳认为,当前市面上的MoE模型大致可分为两个流派:一是类似Mistral AI的传统流派;二是像通义千问和DeepSeek这样,追求更细专家粒度和引入共享专家的创新架构流派。
至于哪种会成为主流,目前尚无定论。因为模型的最终性能,架构并非唯一决定因素。数据质量、清洗方式、配比组织,乃至训练时数据的切分方法等,都至关重要。不同的技术选择,将导向不同的性能表现。
目前,面壁智能的MiniCPM-MoE-8x2B采用了类似Mistral AI的架构。考虑到其最终目标是将端侧模型性能做到极致,部署到每一部手机,团队也在持续进行技术讨论与实验,以探索更适合硬件加速的MoE架构,做出最终的技术路径抉择。
3. MoE“终究是一门妥协的艺术”
随着入局者增多,MoE似乎正成为一种行业趋势。那么,它会是AI未来的主流方向吗?
对此,看法存在分歧。支持者认为,它在同等参数规模下能大幅降低算力需求,在缩放定律依然有效的今天,无疑是实现规模化的最优解之一。
但持保留态度者亦不在少数。
今年4月底,Meta发布的Llama 3系列,包括8B、70B和仍在训练中的400B+版本。CEO扎克伯格在访谈中明确,Llama 3 400B+将是一个稠密模型。面对如此巨大的参数量,依然选择稠密架构,或许表明Meta对稀疏化技术持审慎态度。
事实上,即便是选择了MoE的厂商,也不得不承认,尽管拥有高效训练、灵活性等优点,MoE的局限性依然明显,它“终究是一门权衡与妥协的艺术”。
宋晨阳指出,MoE的优势在于算力有限时,能以更低的计算量达到相近的参数规模。但如果有充足的算力,在同等参数量下分别训练一个MoE模型和一个稠密模型,性能上通常是稠密模型更优。
本质上,FFN的表达能力近乎无限,但MoE为了稀疏激活,强制规定只能激活被切分后的一部分FFN,这相当于约束了模型整体的表示空间。
此外,无论是MoE还是广义的稀疏化,目前都存在一个关键挑战:缺乏特别有效的方法来降低其存储消耗。例如,一个7B的模型即使通过稀疏化使计算量小于7B,但其内存占用依然是一个完整的7B模型规模。这在部署到端侧设备时,会带来严峻的工程挑战。
轩文烽也表达了类似观点,他认为MoE当前的高效训练优势,某种程度上是“用显存换效果”。虽然MoE不像稠密模型那样,参数增大后训练和推理成本急剧上升,但对于一个用4.2B激活参数量达到13B模型效果的MoE来说,推理成本是降低了,但显存占用并未减少。
因此,“如何在优化显存占用的同时,保持这种高性价比的效果,可能是行业需要重点攻关的课题。”
另一位从事MoE模型训练的研究员也感慨,实际训练中挑战不少。例如,训练和推理复杂度高,万亿级MoE需要将专家分布在不同计算节点上,引入了额外的并行维度和网络通信开销;专家负载不平衡会拖累系统效率,极端情况可能浪费过半算力;参数利用率有待提升,每个专家都必须先成为“通才”学习基础知识,才能进一步“专精”,导致同参数量下MoE模型的表现往往不及传统稠密模型。
尽管如此,这些从业者普遍认为,就当下的现实条件而言,MoE肯定是一个极具希望的方向,是必然的趋势。
或许在算力无限的理想状态下,未必非要使用MoE。但在算力依然短缺的今天,我们无法空谈那个不存在的未来。当然,如果把目光放远到十年或二十年后,随着硬件和计算框架的发展,架构的选择或许会更加自由。
而在当下这个具体的时间点,从业者能做的,是基于MoE现有的技术挑战和优化空间,尽可能进行改进,使其训练更高效、性能更优。
例如,如何为MoE设计更好的加速框架?MoE模型并不容易加速,因为涉及大量专家。这些专家该如何部署?是每个专家独占一张卡,还是切片后分布式部署在多张卡上?这些都是待解的工程难题。
再比如,当前MoE大模型似乎出现一个趋势:参数规模不断攀升,但性能未必同步增长,有时甚至不如参数量更小的模型。一个典型的对比是,参数量达3140亿的Grok-1,其性能与Mistral AI的8x7B模型(总参数量约560亿)相当。这是为什么?
宋晨阳认为,一个核心原因在于数据质量。缩放定律成立的前提,是拥有充足的高质量数据。对于相同的架构和参数量,数据质量更高的模型,可以用更少的数据量达到同等效果。
此外,除了数据,决定模型性能的另一大因素是训练技巧,包括批次大小、学习率调度等,这些都极具讲究。目前,许多头部厂商的这些“秘诀”并未完全公开,需要更多从业者通过实践去探索。当然,也有像面壁智能这样的团队,在发布MiniCPM-2B的同时,于技术报告中详细披露了批次调度、学习率调度、词表大小选取等细节,为学界和业界提供了宝贵的参考。
轩文烽在总结XVERSE-MoE-A4.2B的研发经验时也觉得,如果重来一次,实验计划可以设计得更紧凑,进程或许能更快一些。
虽然大家都渴望找到那个最优解,将大模型训练得又快又好,但不可否认,技术探索没有边界,没有最优,只有更优。
MoE乃至稀疏化技术,未必就代表了AI的终极未来,但它无疑为我们提供了丰富的想象空间。例如,是否可以朝着更稀疏的方向演进,将专家切分得极细,直至实现神经元级别的稀疏激活?那又会带来怎样的效果?
这无疑是一个充满前景、值得深入探索的方向。


