首页 > 自考资讯 > 高考百科

模型的“分⼯的艺术”:MoE技术如何提升计算效率

小条 2024-07-05

4a7d9cfb42c1408bb6d538a18604414d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=niHCmnfTK%2Bi%2FHq44Av3adZReBHQ%3D从密集到稀疏:MoE技术如何引领计算效率革命

作者|赞恩

来源| 中国文学

介绍

我们经常听到“三个臭皮匠不如诸葛亮”这句话,强调的是集体智慧的力量。现在,在构建大型模型时,我们可以利用这种智慧来确保多个专门的“傀儡”一起工作,以达到或超过无所不能的“诸葛亮”的效果。答案是肯定的。在大模型的世界里,密集的模型就像是多才多艺的“诸葛亮”,而稀疏的模型就像是专攻某项技能的“笨鞋匠”。理想情况下,我们希望有一个无所不能的“诸葛亮”,但密集模型的训练成本如此之高,以至于企业常常转向更高效的稀疏模型,以利用有限的资源达到类似的性能,我别无选择,只能依赖。在上面。在众多稀疏模型中,MoE(Mixed Expert Model,简称MoE)正在引起人们的关注。

MoE技术的优势在于,在计算能力有限的情况下,可以在相同参数尺度下显着减少计算量。尽管如果有足够的计算能力,传统的高密度模型可能会表现得更好,但MoE 模型在实际应用中表现出了显着更高的效率。相同特征下,MoE模型的推理算力要求比密集模型低一个数量级。这意味着企业可以用更少的算力投资获得更多产出,同时保持智能模型性能。这种效率的提高为解决未来计算能力挑战提供了新途径。随着技术的不断进步,MoE有望成为智能模型开发的关键,“分工技术”将在人工智能领域焕发出新的光芒。

密集和稀疏模型

密集模型和稀疏模型是深度学习中两种不同类型的模型架构,在参数使用和计算方面存在显着差异。

密集模型:密集模型是在训练期间使用所有参数的模型。在密集模型中,每个输入都与所有模型参数交互。该模型参数多、计算量大,因此具有需要大量计算资源的特点。密集模型通常更容易训练,因为所有参数都会在每个训练步骤中更新。

稀疏模型:稀疏模型是一种在训练过程中仅激活某些参数的模型。在稀疏模型中,每个输入仅与模型参数的子集交互,从而显着减少计算量和所需的存储空间。稀疏模型通过动态选择通过特定机制(例如门控机制)启用哪些参数来实现有效的参数利用。

在实际应用中,稀疏模型和稠密模型各有其优点。虽然密集模型因其简单性和多功能性而被广泛使用,但稀疏模型在处理大数据和资源限制时呈现出独特的优势。随着模型规模的不断增长,稀疏模型在有效利用资源、提高计算效率方面的价值越来越受到关注。

什么是MoE(混合专家)?

MoE(Mixture of Experts)也称为“Mixture of Experts”,本质上是模块化稀疏激活。简单来说,MoE 在原有的Transformer 模块中集成了一个专家层。当数据流入该MoE 层时,每个输入令牌都会动态路由到专家子模型进行处理。如果每个专家专门从事特定任务,则这种方法可以在计算上更加高效并取得更好的结果。

MoE模型主要由两个主要部分组成。

Sparse MoE 层:这部分取代了传统Transformer 模型的前馈网络(FFN)层。 MoE层包含多个“专家”,每个“专家”都是一个独立的神经网络。在实际应用中,这些专家通常是前馈网络(FFN),但也可以是更复杂的网络结构或MoE层本身,从而形成分层的MoE结构。

路由:这部分用于决定将哪些令牌发送给哪些“专家”。有两种路由策略:令牌选择路由器或路由器选择令牌。路由器使用softmax 门函数对专家或令牌的概率分布进行建模,并选择前k 个。

例如,下图是Switch Transformers[1] 论文中的MoE 层,其中不同的令牌被发送给不同的专家(FNN)。在某些情况下,代币可能会发送给多个专家。令牌路由是使用MoE 的关键点,因为路由器是使用学习到的参数进行配置的,并使用网络的其余部分进行了预训练。

MoE模型中,4dfb2f24bbed43ddb5f521e5becda5e4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=7njtYHgYr%2FgwJN%2FCsY9sv3BQUC0%3D的核心思想是相同的,但由于门网络位置、模型、专家数量(FNN)的差异,各个厂家的解决方案也不同。

MoE为何诞生以及与MoE相关的发展历程

MoE(Mixture-of-Experts)是一种神经网络架构,于1991 年在论文《Adaptive Mixture of Local Experts》 中首次提出。本文的目标是创建一个可以在不同场景下执行多个任务的模型。然而,在传统的训练方法中,特定场景下的模型权重更新会影响其他场景。这种现象称为干涉效应。干扰效应越强,模型学习速度越慢,泛化能力越低。

为了减少干扰的影响,本文提出了一种创新方法。其想法是构建多个独立的专家系统,每个专家系统负责处理特定场景中的子任务。这样,每个专家都可以独立学习其任务的权重,提高模型的学习效率和泛化能力。

本文设计了一种基于概率模型的门控网络,可根据输入数据动态选择最合适的专家网络来处理当前任务。这种方法允许模型针对不同的场景选择不同的专家,类似于《复仇者联盟》中的尼克·弗瑞根据不同的威胁召唤不同的超级英雄。

7e5d52f92adb4ae7a1e2ca08deb665c3~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=%2FoG6NARRISnGeRahls%2BX7mzwn5Q%3D MoE 的门网络引入了稀疏性。这意味着在处理输入数据时,只有少数专家模型处于活动状态,而大多数模型保持不活动状态。这种稀疏激活极大地提高了模型训练和推理的效率。

MoE最初是作为一种统计架构提出的,随着机器学习和深度学习的发展,它于2017年成功应用于LSTM模型。近期,随着Mistral AI开源第一个MoE架构模型,MoE在大规模模型训练中的应用受到广泛关注。这个开源项目不仅是MoE理论的成功实践,也标志着MoE从理论研究到实际应用的转变。

目前有哪些MoE 技术型号可用?

2023年12月8日,Mistral AI宣布首款开源MoE大型模型Mixtral-7B8-MoE。这是一个稀疏混合专家网络和纯解码器模型。基于Transformer 的混合专家层。每层有八个前馈块(专家),路由网络为每层中的每个令牌选择两个专家来处理令牌并将其输出相加和组合。其中,Mixtral-Instruct 在MT-Bench 上获得了8.30 的分数,成为截至2023 年12 月最好的开源加权模型。

338ee646e68541449f9b77421ec815de~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=F3vFEuO350bM%2BqWJI6vRE7W7FhU%3D 1月11日,Magic Square Quantification旗下组织DeepSeekMoE发布了中国首个开源MoE大规模模型DeepSeekMoE。它具有新的架构,并且免费用于商业用途。 DeepSeekMoE 是多尺度模型效果领域的领导者,包括DeepSeekMoE-2B、DeepSeekMoE-16B 和DeepSeekMoE-145B。该模式是环境部自主开发的新框架,主要包括细粒度专家划分和专家共享与分离两个关键创新点。

76439293371c4dd8b00c7cb704d46269~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=LqLG%2F%2Be1WbPqZONIl9oftiVvhZA%3D

今年3月,马斯克创立的xAI宣布开源基于MoE架构的大型模型Grok-1,迄今为止最大参数尺寸为314B。

a6e152895d8a4a16b586a94a97aae36b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=A%2BIUOwQD6073accU%2FRjt37MZCK8%3D

3月28日,同易钱文团队发布了首款MoE模型Qwen1.5-MoE-A2.7B。参数总数为143 亿个,但每次推理仅使用27 亿个参数。性能可与Mistral 7B 和Qwen1.5-7B 等最先进的7B 型号相媲美。

3 月28 日,Databricks 开源了其流行的大型模型DBRX,这是一个具有1320 亿个参数和360 亿个激活参数的混合专家模型(MoE),支持最大上下文长度为32,000 个令牌。

347cf9d659554fc79e3e9420bd5ad112~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=nEMVon35ByKYKfOZG4zUY3Ser%2Bs%3D

3 月29 日,AI21 Labs 开源了第一个基于Mamba 架构的生产级大规模语言模型Jamba。这是世界上第一个SSM和Transformer混合模型。

9b44d00719a143fea1309e5236615301~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=cr%2FlfWmtYvHCbCNdUH3SrAgyq%2B8%3D

4月初,深圳远翔科技XVERSE开源了大型MoE模型XVERSE-MoE-A4.2B,总参数量256亿。这是目前国内开源MoE架构模型中总参数量最大的。

52c71419946e4b4fbe92e4db1813058e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=mzafEX858LjmOhU75NEVGq5YXJs%3D

5月,DeepSeek AI开源MoE语言模型DeepSeek-V2成为部分任务性能最强的开源MoE语言模型。

8d63a18694964c79bd641f99f0d945e2~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720747072&x-signature=iJBDqsbSKpO6VVLWrQTI3yWJIiw%3D

教育部技术挑战与机遇

环境部的展望:

提高性能:MoE 预计将进一步提高模型性能,特别是在处理复杂任务和大型数据集时。通过合理组合各专家的能力,环境部可以实现更加精细、高效的信息处理。

资源效率:MoE 稀疏性使模型在训练和推理过程中消耗的计算资源显着减少。这在资源有限的环境中尤其有价值。

可扩展性:MoE 通过增加专家的数量和多样性,提供了扩展模型的新方法,从而可以不断扩展模型的功能和适用性。

多任务学习:MoE天然适合多任务学习场景,因为不同的专家可以专注于不同的任务,共享参数可以促进任务之间的知识共享。

个性化模型:MoE可用于构建个性化模型,不同的用户或场景可以使用不同的专家组合来实现更好的个性化服务。

教育部挑战:

训练难度:训练MoE 模型通常比密集模型更复杂,需要复杂的动态路由机制和有效的训练策略。

优化算法:目前用于训练MoE的优化算法还不够成熟,需要进一步研究和开发。

资源分配:如何有效地将计算资源分配给不同的专家,并如何平衡他们之间的负载,是教育部面临的一个关键挑战。

模型复杂性:增加专家数量也会增加模型复杂性,这可能导致过度拟合和难以解释模型行为。

部署挑战:将MoE 模型部署到现实世界可能面临硬件兼容性和性能优化方面的挑战。

总的来说,MoE技术为构建高效、大规模的神经网络模型提供了新的思路和方法。尽管面临一些挑战,但随着研究的深入和技术的发展,教育部有望在人工智能领域发挥更大作用。

MoE技术当前解决方案

预训练

目前市场上的MoE模型版本分为两种:从头开始训练的版本和基于现有模型训练的版本。例如,Mistral 8x7B 是从头开始训练的,而Qwen1 则分为两种类型。前者基于现有的Qianwen模型,成本较高,但训练内容更容易控制,后者基于现有模型,可以更快地获得MoE模型。这是一种更经济的方法,但它是基于现有模型,因此最终结果可能会受到以前模型的影响。

微调模型

目前,所有MoE 模型的总体思路都是相同的,基本上取代了基于Transformer 架构的前馈网络层,具有多个“专家”,并在“专家”之上添加了门网络。对于MoE模型来说,微调主要针对这两部分。目前大多数MoE模型都是基于Transformer模型,因此大多数开源MoE都可以使用Transformer框架进行微调。

针对MoE模型算法优化模型复杂度

密集模型和稀疏模型之间的过拟合动态存在显着差异。稀疏模型容易出现过拟合,因此在使用这些模型时,尝试更强的内部正则化措施是有益的,例如使用更高百分比的dropout。例如,为了优化模型性能,您可以为密集层设置较低的dropout 率,为稀疏层设置较高的dropout 率。

在机器学习中,密集模型和稀疏模型在处理过拟合现象时表现不同。由于稀疏模型的参数中往往具有较少的非零值,因此它们更容易受到训练数据中随机噪声的影响,这会增加过度拟合的风险。为了缓解这个问题,对于稀疏模型来说,采用更强的正则化策略非常有帮助,例如应用更高百分比的dropout 正则化。

例如,在构建神经网络时,较密集的层通常不太可能过拟合,因此可以选择较低的dropout 率。相反,稀疏层更有可能捕获数据中的随机波动,因此您可以指定更高的丢失率来提高模型在未见过的数据上的性能。

该策略的核心在于,通过为不同类型的层定制合适的dropout rates,可以更有效地平衡模型复杂度和泛化能力,从而提高模型整体性能。在实际操作中,可能需要结合模型的具体结构和数据集的特点,通过反复的实验和验证来确定最佳的dropout率配置。

参考

[1] 《Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity》 - 威廉·费达斯、巴雷特·佐夫、诺姆·沙齐尔](https://arxiv.org/abs/2101.03961)

[2] 《**Adaptive Mixtures of Local Experts**》 - 罗伯特·A·雅各布斯·迈克尔·乔丹·斯蒂芬·J·诺兰·杰弗里·E·辛顿](https://readpaper.com/paper/2150884987)

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢