返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

混合专家 (MoE) 架构:现代大模型的“秘密武器”

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 18:08 |阅读模式 打印 上一主题 下一主题
前言:随着人工智能飞速发展,我们惊叹于大型语言模型(LLMs)卓越的理解、生成和推理能力,但这背后是模型规模的急剧膨胀,以及随之而来的训练成本和推理效率挑战。如何突破这些瓶颈,构建更大、更强、更经济高效的模型?混合专家(Mixture of Experts, MoE)架构正是回答这一问题的关键技术之一,堪称现代大模型的“秘密武器”。
1、MoE 是什么?稀疏激活的力量

混合专家模型(Mixture of Experts,MoE)是一种神经网络架构。它采用条件计算(Conditional Computation)、稀疏激活(Sparse Activation)、门控网络或路由器(Gate Network or Router)和专家网络(Experts Network)进行处理。这种设计使得模型能够拥有比传统架构巨量得多的参数规模,同时在训练和推理时仅需激活其中一小部分。

在标准的密集(Dense)Transformer 模型中,一个关键组件是前馈网络(Feed Forward Network, FFN)。你可以将它想象成模型处理信息流中的一个主要“思考”模块。在密集模型中,这个 FFN 是一个大型的、所有信息都必须通过的模块。

而 MoE 架构的精髓在于,它用一套不同的结构取代了这个单一的大FFN 模块。这套新结构包含一个“路由器”(Router)或称选择层,以及多个 FFN的副本,我们称之为“专家”(Experts)。这些专家通常是比标准 FFN 稍微小一些的 FFN 模块。

MoE 最关键的特点在于其稀疏激活的机制。在每次模型处理输入(比如一个 token)时,路由器会根据一定的策略,只从众多的专家中选择一小部分(通常是 K 个)来激活,让这些被选中的专家来处理当前的信息。其他未被选中的专家则不参与此次计算。

2、MoE 发展简史:从概念到主流
MoE 的概念并非全新。最早来自 Robert Jacobs,和AI教父Adaptive Mixture of Local Experts》。但受限于当时的计算资源,并未得到大规模应用。

1)早期探索:MoE 最初被提出用于解决机器学习中的任务划分问题,让不同的模型处理不同的数据子集。

2)稀疏门控 MoE:Shazeer 等人在 2017 年的论文中将稀疏门控机制应用于神经网络,证明了条件计算的可行性和优势,这被认为是现代 MoE 模型的直接先驱。

3)GShard:Google 在2020 年的 GShard 论文中,将 MoE 架构与Transformer 模型结合,成功训练了拥有 6000 亿参数的模型,用于机器翻译任务。GShard 在 Transformer 的 Encoder 和 Decoder 中使用了 Top-2 门控的 MoE 层,验证了 MoE 在超大规模模型上的潜力。论文中提到 GShard 可以实现亚线性扩展,即算力和通信需求增长小于参数量增长,并且支持了数千台机器的并行计算扩展。

4)Switch Transformers:Google在2021年提出的Switch Transformers 进一步推广了 MoE 架构,并开源了高达 1.6 万亿参数和拥有2048个专家的模型,进一步推动了 MoE 架构的研究和应用。

Switch Transformer 论文中的 Switch Transformer Layer

5)开放社区的崛起:近年来,随着大模型技术的普及,MoE 架构在开源社区也获得了广泛关注和发展。值得一提的是,中国的一些研究机构和公司在 MoE的开放研究和实践中走在了前列。DeepSeek28和 Qwen28就是其中的代表。DeepSeek 的研究人员在 MoE 架构设计、训练稳定性、负载均衡等方面进行了深入探索,并将其应用于自己的大型模型中。

从早期的概念验证到如今成为构建万亿参数甚至更大模型的关键技术,MoE 走过了一条漫长的发展之路。特别是 DeepSeek 等团队在开源领域做出的努力,极大地推动了 MoE 技术的普及和完善。
3、为什么 MoE 如此有吸引力?

这种设计带来了多方面的显著优势:

1)巨大的参数量与可控的计算量:MoE 模型可以包含数百甚至上千个专家,这意味着模型的总参数量可以非常庞大,远超同等计算量的密集模型。理论上,更多的参数有助于模型记忆更丰富的信息。然而,由于每次只激活少数专家,单次前向计算的实际计算量(Flops)却可以保持在一个相对较低的水平。例如,如果每个专家的大小与密集模型的 FFN 相当,且每次只激活一个专家,那么 MoE 模块的计算量与密集模型是相同的。

2)性能提升:大量研究和实际应用表明,在相同的训练计算资源(Flops)投入下,MoE 模型通常比密集模型能达到更好的性能。它们的训练损失下降得更快、更低。

3)参数效率:通过DeepSeek等模型的实验可以看出,MoE模型在激活参数量相对较少的情况下,可以达到与参数总量大得多的模型相当甚至更好的性能。

4)更快的推理速度(相比同等参数规模密集模型):虽然加载所有专家参数需要较高的显存(VRAM),但在实际推理计算时,由于每个token只激活 K 个专家,实际的浮点运算量(FLOPs)远低于同等总参数的密集模型,从而实现了更快的推理速度。

5)天然支持并行化:MoE 提供了一种非常自然的并行训练和推理方式,称为专家并行。由于不同 token 可以被路由到不同专家,而这些专家可以被放置在不同的计算设备(如不同的 GPU)上。路由器只需将 token 发送到其对应的专家所在设备即可。这使得 MoE 非常适合部署在分布式计算环境中。现代硬件和软件库也正积极优化,以高效支持 MoE 的稀疏计算特性。

正是这些优势,使得 MoE 成为了构建顶级模型的关键架构。
4、MoE 的核心组件和处理流程

1)稀疏 MoE 层 (Sparse MoE Layers):这些层用于替代 Transformer 中的密集 FFN 层。每个 MoE 层包含多个“专家”(Experts)。

2)专家 (Experts):每个专家本身通常是一个神经网络,在实践中,它们常常是前馈网络(FFNs),但也可以是更复杂的网络,甚至是嵌套的 MoE 结构。它们负责处理被分配到的 token 数据。DeepSeekMoE 架构采用了更细粒度的专家分割,并且隔离了一些专家作为共享专家。

3)门控网络/路由器 (Gate Network or Router):这是 MoE 的关键部分,它决定了哪些 token 被发送到哪些专家进行处理。路由器通常由可学习的参数组成,并在网络训练时同步训练。它可以看作是一个线性层后接一个 Softmax 或 Sigmoid 函数。

MoE 的处理流程大致如下:

1)Token 输入:一个输入 token 或其隐藏状态进入 MoE 层。

2)路由器计算:门控网络/路由器处理输入的 token,计算该 token 与每个专家之间的“亲和度”或得分。

3)专家选择:基于路由器计算出的亲和度得分,使用一种选择机制来决定激活哪些专家。最常见的方法是Top-K 路由,即选择得分最高的 K 个专家。K 是一个超参数,通常设置为 1 或 2。

4)数据分派:输入的 token 数据被分派(dispatch)到选定的 K 个专家。在并行计算环境中,这通常涉及跨设备的数据通信(例如 AllToAll 操作)。

5)专家计算:被选中的专家网络处理接收到的 token 数据,生成各自的输出。

6)结果组合:来自选定的 K 个专家的输出被组合起来(通常通过加权求和,权重由门控网络提供)。这个组合后的输出通常会加回到原始的残差连接中。

在 MoE 的训练和推理过程中,还需要考虑几个重要概念:

1)负载均衡 (Load Balancing):为了确保所有专家都被均匀地利用,避免某些专家过载而另一些专家空闲(路由崩溃),会使用各种机制。传统方法通常依赖于辅助损失 (Auxiliary Loss),它鼓励所有专家接收大致相等的训练样本数量。DeepSeek-V3 则提出了一种无辅助损失 (Auxiliary-Loss-Free)的策略,通过为每个专家引入一个偏置项并在线学习调整来平衡负载。

2)专家容量 (Expert Capacity):为了处理不同 token 分配到专家的数量可能不均衡的情况,可以为每个专家设置一个固定的容量阈值,限制其处理的 token 数量。超过容量的 token 可能被丢弃或通过残差连接绕过专家层。

3)并行计算 (Parallelism):MoE 架构非常适合专家并行 (Expert Parallelism),即将不同的专家放置在不同的计算设备上。这是一种重要的并行策略,有助于扩展模型的总参数量。

一个典型的 MoE 配置(如 DeepSeek V1/V2/V3 的基础设置)可能包含数十个(例如 64 个)细粒度专家和少量(例如 2 个)共享专家,每次计算激活其中的一小部分细粒度专家(例如 6 个)加上所有共享专家,总共激活 8 个专家。这种配置下,虽然总参数量巨大,但每次激活的专家(总共 8 个,每个大小是标准 FFN 的 1/4)使得 MoE 块的计算量大约是等效密集模型同一计算块的两倍。

值得一提的是,有一种称为Upscaling的技术,它允许研究人员先训练一个普通的密集模型,然后将其 FFN 层复制并微调成 MoE 的专家,再从头训练路由器。这提供了一种成本效益很高的方式来获得 MoE 的性能优势。MiniCPM 和 Qwen 的工作都展示了 Upscaling 的有效性。

总之,MoE 通过稀疏激活机制,让模型能够访问更多的参数,从而在计算效率和模型性能之间取得平衡。其核心在于路由器根据输入 token 动态选择部分专家进行计算,并通过负载均衡机制确保专家得到有效利用。
5、MoE 的挑战与 DeepSeek 的创新之路

MoE 架构虽然优势明显,但也面临一些固有的挑战:

1)负载均衡 (Load Balancing):这是 MoE 训练中最关键的挑战之一。理想情况下,每个专家应该接收大致相同数量的 token,以充分利用计算资源并避免某些专家过载(称为“路由崩溃”)。传统的 MoE 模型通常依赖于辅助损失 (Auxiliary Loss),鼓励路由器将 token 均匀分配到专家。然而,设计和调整辅助损失可能很复杂,有时会影响模型性能或训练稳定性。
2)通信开销:在专家并行中,将 token 分派到不同设备上的专家以及收集结果会产生跨设备的通信开销。这需要高效的并行策略和通信优化。
3)训练稳定性:相较于密集模型,MoE 模型可能更容易出现训练不稳定,如损失值的突然飙升。
4)高显存需求:尽管每次推理只激活部分参数,但为了进行推理,所有专家的参数都需要加载到内存(VRAM)中。这导致 MoE 模型通常需要比同等激活参数量的密集模型更高的显存。例如,Mixtral 8x7B 的总参数量约为 47B(因为非 FFN 层是共享的),推理时需要加载大约 47B 参数到显存。DeepSeek-V2 总参数 236B,激活 21B;DeepSeek-V3 总参数 671B,激活 37B。
5)微调困难:MoE 模型在通用微调数据集上容易过拟合,泛化能力可能不如密集模型,尽管最近的研究在 MoE 指令微调方面显示出希望。

DeepSeek 在其 MoE 模型的研发过程中,不断针对这些挑战进行创新和优化,特别是在架构设计、训练效率和性能提升方面:

1)DeepSeekMoE 架构:通过结合共享专家和细粒度切分,DeepSeek 构建了更高效和高性能的 MoE 层,超越了传统的 MoE 设计。

2)MLA 提升推理效率:MLA 显著降低了 KV 缓存,是 DeepSeek-V2 和 V3 实现高效推理的关键。

3)负载均衡机制的演进:从辅助损失到设备/节点限制路由,再到 V3 的无辅助损失策略和冗余专家部署,DeepSeek 在实践中不断探索更稳定和高效的负载均衡方法。

4)训练优化:采用 FP8 训练、精细的工程优化、Multi-Token Prediction 等技术,使 DeepSeek-V3 即使拥有庞大的总参数量,也能实现经济高效的训练。DeepSeek-V3 的训练过程也非常稳定,未出现不可恢复的损失尖峰或回滚。

5)从 DeepSeek-R1 蒸馏推理能力:DeepSeek-R1 是一个专注于推理能力的模型。DeepSeek 将 DeepSeek-R1 生成的推理数据用于微调 DeepSeek-V3 和其他小型密集模型。事实证明,这种蒸馏技术对于提升模型的数学、代码和推理能力非常有效,尤其是在非 o1 类模型上。DeepSeek-R1 Distill 模型在 AIME 2024 和 MATH-500 等推理基准上取得了优异成绩。DeepSeek-V3 也通过蒸馏显著改进了推理性能。

6)长文本能力:DeepSeek-V2 和 V3 都支持 128K 的长上下文长度。通过 Needle In A HayStack 测试表明,DeepSeek-V2 和 V3 在长达 128K 的上下文长度下表现良好。 DeepSeek-V3 在 DROP, LongBench v2 和 FRAMES 等长上下文理解基准上表现出色。

7)卓越的基准测试表现:DeepSeek-V2 和 DeepSeek-V3 在各种基准测试中都展现出了顶尖的性能。

  • DeepSeek-V2:激活参数仅 21B,但在开源模型中性能顶尖。在 MMLU 等基准上激活参数少但排名靠前。在中英文开放式对话基准上表现出色。


  • DeepSeek-V3:激活参数 37B,总参数 671B。被评估为当前最强的开源模型,并在教育类知识(MMLU, MMLU-Pro, GPQA Diamond)、事实类(SimpleQA, Chinese SimpleQA)、代码、数学和推理基准上超越了大多数甚至所有其他开源模型。其性能可与 GPT-4o 和 Claude-3.5-Sonnet 等领先的闭源模型媲美。在中文基准上尤其强大,例如在 C-Eval 和 CMMLU 等基准上表现优于 Qwen2.5 72B 和 LLaMA-3.1 405B,在 Chinese SimpleQA 上超越了 GPT-4o 和 Claude-Sonnet。

  • DeepSeek-R1:在 AIME 2024, GPQA Diamond, MATH-500, MMLU 等推理和知识基准上表现出色,显著优于 DeepSeek-V3,并在某些数学和代码算法任务上与 OpenAI-o1-1217 相当或超越其他模型。在创造性写作、问答、编辑、摘要等多种任务中也表现出色。

除了 MoE 架构本身,像 DeepSeek V3 还进行了其他优化,例如用于压缩 KV 缓存的 MLA(Multi-head Latent Attention)或尝试预测多个 Token 的 MTP(Multiple Token Prediction),这些并非 MoE 的固有部分,但共同构成了高性能模型的全貌。

这些创新共同构成了 DeepSeek 在 MoE 领域的领先地位,使其能够构建出强大的模型,同时保持训练和推理的效率。

6、MoE 的实践应用与未来
MoE 架构带来的强大性能和高效能力,使其在众多实际应用中展现潜力。基于 MoE 的模型可以用于创意写作、通用问答、文本编辑和摘要等任务。它们在需要长上下文理解的任务中表现突出,例如在长上下文问答、AI 驱动的搜索和数据分析任务中展现强大能力。此外,MoE 模型在数学和编程算法任务中也表现出色。

AI科技企业,如DeepSeek继续不断探索 MoE 的未来发展方向:

1)通用能力提升:探索如何利用长 CoT 等技术提升函数调用、多轮对话、复杂角色扮演和 JSON 输出等方面的能力83。

2)多语言处理优化:解决 DeepSeek-R1 在处理非中英文查询时可能出现的语言混合问题。

3)Prompt 工程:针对 MoE 模型对 prompt 敏感的特点,建议用户使用 zero-shot 设置并直接描述问题和指定输出格式以获得最佳结果。

4)软件工程任务优化:通过改进 RL 训练流程,提升在软件工程基准上的表现。

5)持续的架构研究:进一步提升训练和推理效率,探索支持无限上下文长度,并突破 Transformer 的架构限制。

6)模型对齐:持续努力构建更具帮助性、诚实和安全的模型,使模型价值观与人类价值观对齐,同时减少对人工监督的需求。

结语:

混合专家(MoE)架构凭借其独特的条件计算和稀疏激活机制,成功平衡了模型规模与计算效率之间的矛盾,是构建现代大型语言模型的关键技术。它使得训练和部署具有数千亿甚至万亿参数的模型成为可能,并带来了显著的训练成本节省和推理效率提升,已成为构建高性能大型语言模型不可或缺的核心技术。理解 MoE,也就掌握了理解现代顶尖 LLMs 架构的关键之一。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ