大模型Transformer的MOE架构介绍及方案整理
前言:DeepSeek模型最近引起了NLP领域的极大关注,也让大家进一步对MOE(混合专家网络)架构提起了信心,借此机会整理下MOE的简单知识和对应的大模型。本文的思路是MOE的起源介绍、原理解释、再到现有MOE大模型的整理。
一、MOE的起源和架构
MoE的概念最早由MIT等人在论文中指出:混合专家网络可以看作是多层监督网络的模块化版本。比如元音识别任务,可以分解为多个子任务,每个子任务可以由一个非常简单的专家网络解决。

图1-1:最早的MOE模型(经典之作,其思想沿用至今)-框架图
从让专家之间学会合作->过渡到让专家之间学会竞争:在合作时,各个专家之间是强耦合的,导致解决方案中使用多个专家;当转换为竞争后,将可以得到少数专家活跃的解决方案。这可以通过修改误差函数实现,见图1-2。

图1-2:最早的MOE模型-损失函数
随着稀疏门控MoE的出现(Sparsely-Gated Mixture-of-Experts),特别是在基于Transformer的LLM中成功地集成(Gshard),为这一30年历史的技术注入了新的活力。
小结——MoE框架基于一个简单而强大的理念:模型的不同部分(称为专家)专注于不同的任务。在这种范式下,只有与给定输入相关的专家会被激活,从而使得模型在具备海量专业知识的同时,保持计算成本的可控性。
二、MOE的分类
根据激活专家情况,可以把MOE模型分为Dense MoE和Sparse MoE,接下来分别展开介绍。

图2-1:MOE模型的分类(根据激活专家情况)
2.1 Dense MoE
Dense MoE在每次迭代中激活所有专家网络,优缺点如下:
- 优点:通常能够提供更高的预测准确性
- 缺点:会显著增加计算开销
Dense MoE层的输出可以表示为:

图2-2:Dense MoE层的输出计算
2.2 Sparse MoE
为了解决Dense MoE的"显著增加计算开销"这一问题,谷歌等人提出了Sparse MoE层,即在每次前向传播过程中仅激活选定的一部分专家,GShard便是其中的经典之作。这一策略通过计算加权和的前 k个专家的输出,而不是聚合所有专家的输出,从而实现了稀疏性。稀疏MoE层的结构如图2-1。稀疏门控机制的公式可以修改为:

图2-3:Sparse MoE层的输出计算
尽管稀疏门控显著扩展了模型的参数空间而不增加计算成本,但它可能导致负载均衡问题:即专家之间工作负载分布不均,某些专家频繁使用,而其他专家很少或从未使用。
为了解决这一问题,每个MoE层都引入了一个辅助负载均衡损失(Auxiliary load balancing loss),以促进每个batch中各专家之间token的均匀分布:

图2-4:Sparse MoE引入的辅助负载均衡损失的公式
通过引入辅助loss,模型保持了所有专家之间的平衡,以促使所有时间内专家的工作负载满足均匀分布。
三、MOE各系列大模型技术点汇总
基于MOE思想构建大模型,自2018的提出->到2022年底chatGPT的出现->再到如今DeepSeek大火,已经经历了七年之久,模型更新脉络如下图3-1所示,本文会将代表性MOE(热度高/效果好)大模型总结在本章节。

图3-1:基于MOE的LLM汇总
3.1 Mistral-MOE
Mixtral 8x7B:一种稀疏混合专家(SMoE)语言模型。它具有与Mistral 7B(其结构可参考笔者另一篇文章)相似的架构,不同之处在于每一层由8个FFN模块(即专家)组成。对于每个token,在每一层,路由网络会选择两个专家(topk=2)来处理当前状态并整合它们的输出。尽管每个token只看到2个专家,但选择的专家在每个时间步可能不同。因此,每个token可以访问47B参数,但在推理过程中只使用13B活跃参数。Mixtral使用32k个token的上下文长度进行训练,并在所有评测基准上优于或等于Llama2-70B和GPT-3.5。

图3-2:Mistral-MOE的架构参数
参考: https://arxiv.org/pdf/2401.04088、 假如给我一只AI:LLM开源大模型汇总-截止0218
3.2 LLaMA-MOE
基于LLaMA2-7B 模型(其结构可参考笔者另一篇文章),作者通过"专家构建"和"持续预训练"这两步就获得了 MoE 模型。

图3-3:LLaMA-MOE模型的两步操作——专家构建和持续预训练
- 最终效果:LLaMA-MoE 模型能够保持语言能力,并将输入的 token 路由到特定的专家,且部分参数被激活。
- 实验表明:通过训练 200B token,LLaMA-MoE-3.5B 模型在性能上显著优于包含类似激活参数的Dense模型。
1)专家构建:将原始FFN层的参数分割成多个专家

图3-4:LLaMA-MOE的专家构建流程梳理
2)持续预训练:进一步训练转换后的 MoE 模型和额外的门网络
在经历"专家构建"后,原始LLaMA模型结构会被重新组织为MoE架构,为了恢复其语言建模能力,作者采用"持续预训练"策略进一步训练LLaMA-MoE模型(该策略使用的训练目标与 LLaMA2 相同)。为了提高训练效率,作者探索了不同的'数据采样策略"和"数据过滤策略"。
如果要采用"持续预训练策略",可能遇到问题见表3-1:

表3-1:持续预训练可能遇到的问题
文章具体采用的方法:1)采用"数据过滤",得到去噪且流畅性高的数据;2)对比四种"数据采样策略",实验对比哪种好选择哪种即可。具体总结如下表3-2:

表3-2:4种采样策略和2种数据过滤策略
参考: https://arxiv.org/pdf/2406.16554、 Swish激活函数、 LLaMA2论文)
3.3 Deepseek-MOE
1)DeepSeek-MoE(V1版模型)
解决当前MOE模型存在的两方面问题:
- 专家数量小但token信息丰富:将多样的知识分配给有限的专家,有概率导致专家"试着在有限的参数中学习大量不同类型的知识",然而这些知识又难以同时利用,最终会降低专家的专业性。
- 多个专家之间存在知识冗余:在传统路由策略中,分配token给不同专家时可能需要一些"共享知识"。因此,多个专家可能在各自参数中"收敛于共享知识",这就会导致专家参数冗余。
DeepSeek-MoE给出的解决方案见下图:

图3-5:DeepSeek-MoE的细粒度专家和共享专家
在此基础上,DeepSeek-MOE也具有考虑了负载平衡:即自动学习的路由策略可能会遇到负载不平衡的问题,这会导致两个显著的缺陷:[A] 存在路由崩溃的风险,即模型始终选择少数几个专家,其他专家缺乏充分训练;[B] 如果专家分布在多个设备上,负载不平衡会加剧计算瓶颈。
解决2个问题,分别提出了专家级负载loss和设备级负载loss,问题->解决->公式的解释如下图:

图3-6:DeepSeek-MoE的专家级负载和设备级负载,公式推导见https://zhuanlan.zhihu.com/p/18565423596
2)DeepSeek-V2模型
在DeepSeek-MoE的基础上,新增了一个路由机制和两个负载均衡方法,即设备受限的专家路由机制、通信负载均衡loss和设备级Token丢弃策略,它们的问题->解决->公式的解释如下两图:

图3-7a:DeepSeek-V2的设备受限的专家路由机制

图3-7b:DeepSeek-V2的通信负载均衡和设备级Token丢弃策略
3)DeepSeek-V3模型
相比DeepSeek-V2,DeepSeek-V3在MOE架构上的改进有三点:
- 使用 sigmoid 函数计算亲和度,并对所有选定的亲和度进行归一化以产生门值(图3-8a)。
- 提出了无辅助Loss的负载均衡技术和sequence粒度的负载均衡Loss(图3-8b)。
- 接入了节点限制的路由和无token丢弃策略(图3-8c)。

图3-8a:DeepSeek-V3的亲和度计算公式

图3-8b:DeepSeek-V3的无辅助Loss的负载均衡技术和sequence粒度的负载均衡Loss

图3-8c:DeepSeek-V3的节点限制的路由和无token丢弃策略
代码学习:DeepSeek-MoE源码、DeepSeek-V3源码
参考: DeepSeek-MOE论文、 DeepSeek-V2论文、 DeepSeek-V3论文
3.4 Qwen-MOE
【持续更新】
https://qwenlm.github.io/blog/qwen-moe/
3.5 Nvidia-MOE
【持续更新】
3.6 Grok-MOE
【持续更新】
3.7 Skywork-MOE
【持续更新】
https://arxiv.org/pdf/2406.06563
四、参考文献
- MOE综述:https://arxiv.org/pdf/2407.06204
- 姜富春:deepseek技术解读(3)-MoE的演进之路
- Gshard:https://arxiv.org/pdf/2006.16668
- https://arxiv.org/pdf/1701.06538
- Mistral-moe:https://arxiv.org/pdf/2401.04088
相关文章:
大模型Transformer的MOE架构介绍及方案整理
前言:DeepSeek模型最近引起了NLP领域的极大关注,也让大家进一步对MOE(混合专家网络)架构提起了信心,借此机会整理下MOE的简单知识和对应的大模型。本文的思路是MOE的起源介绍、原理解释、再到现有MOE大模型的整理。 一…...
零基础掌握Linux SCP命令:5分钟实现高效文件传输,小白必看!
引言 “为什么我传个文件到服务器要折腾半小时?” 如果你也曾在Linux系统中为文件传输抓狂,今天这篇保姆级教程就是你的救星!SCP命令——一个基于SSH协议的高效传输工具,只需5分钟,彻底告别FTP客户端和繁琐操作&#…...
分类评价指标
基础概念解释 TP、TN、FP、FN 这里T是True,F是False,P为Positive,N为Negative TP:被模型正确地预测为正样本(原本为正样本,预测为正样本) TN:被模型正确地预测为负样本࿰…...
Python项目-基于Django的在线教育平台开发
1. 项目概述 在线教育平台已成为现代教育的重要组成部分,特别是在后疫情时代,远程学习的需求显著增加。本文将详细介绍如何使用Python的Django框架开发一个功能完善的在线教育平台,包括系统设计、核心功能实现以及部署上线等关键环节。 本项…...
子数组问题——动态规划
个人主页:敲上瘾-CSDN博客 动态规划 基础dp:基础dp——动态规划-CSDN博客多状态dp:多状态dp——动态规划-CSDN博客 目录 一、解题技巧 二、最大子数组和 三、乘积最大子数组 四、最长湍流子数组 五、单词拆分 一、解题技巧 区分子数组&…...
linux设置pem免密登录和密码登录
其实现在chatgpt 上面很多东西问题都可以找到比较好答案了,最近换了一个服务器,记录一下。 如果设置root用户,就直接切换到cd .ssh目录下生成ssh key即可,不需要创建用户创建用户的ssh文件夹了 比如说我要让danny这个用户可以用p…...
什么是Flask
Flask是Python中一个简单、灵活和易用的Web框架,适合初学者使用。它提供了丰富的功能和扩展性,可以帮助开发者快速构建功能完善的Web应用程序。 以下是Python Flask框架的一些特点和功能: Flask 是一个使用 Python 编写的轻量级 WSGI 微 Web…...
Spark(8)配置Hadoop集群环境-使用脚本命令实现集群文件同步
一.hadoop的运行模式 二.scp命令————基本使用 三.scp命令———拓展使用 四.rsync远程同步 五.xsync脚本集群之间的同步 一.hadoop的运行模式 hadoop一共有如下三种运行方式: 1. 本地运行。数据存储在linux本地,测试偶尔用一下。我们上一节课使用…...
【cocos creator】热更新
一、介绍 试了官方的热更新功能,总结一下 主要用于安卓包热更新 参考: Cocos Creator 2.2.2 热更新简易教程 基于cocos creator2.4.x的热更笔记 二、使用软件 1、cocos creator v2.4.10 2、creator热更新插件:热更新manifest生成工具&…...
黑金风格人像静物户外旅拍Lr调色教程,手机滤镜PS+Lightroom预设下载!
调色教程 针对人像、静物以及户外旅拍照片,运用 Lightroom 软件进行风格化调色工作。旨在通过软件中的多种工具,如基本参数调整、HSL(色相、饱和度、明亮度)调整、曲线工具等改变照片原本的色彩、明度、对比度等属性,将…...
部署vue+django项目(初版)
1.准备 vscode 插件Remote SSH,连接远程,打开远程中home文件夹。 镜像和容器的一些常用命令 docker images docker ps 查看所有正在运行的容器 docker ps -a docker rmi -f tk-django-app 删除镜像 docker rm xxx 删除容器 docker start xxxx …...
Redis7系列:设置开机自启
前面的文章讲了Redis和Redis Stack的安装,随着服务器的重启,导致Redis 客户端无法连接。原来的是Redis没有配置开机自启。此文记录一下如何配置开机自启。 1、修改配置文件 前面的Redis和Redis Stack的安装的文章中已经讲了redis.config的配置…...
HarmonyOS学习第18天:多媒体功能全解析
一、开篇引入 在当今数字化时代,多媒体已经深度融入我们的日常生活。无论是在工作中通过视频会议进行沟通协作,还是在学习时借助在线课程的音频讲解加深理解,亦或是在休闲时光用手机播放音乐放松身心、观看视频打发时间,多媒体功…...
在rocklinux里面批量部署安装rocklinx9
部署三台Rockylinux9服务器 实验要求 1. 自动安装ubuntu server20以上版本 2. 自动部署三台Rockylinux9服务器,最小化安装,安装基础包,并设定国内源,设静态IP 实验步骤 安装软件 # yum源必须有epel源 # dnf install -y epel-re…...
Manus:成为AI Agent领域的标杆
一、引言 官网:Manus 随着人工智能技术的飞速发展,AI Agent(智能体)作为人工智能领域的重要分支,正逐渐从概念走向现实,并在各行各业展现出巨大的应用潜力。在众多AI Agent产品中,Manus以其独…...
【Java开发指南 | 第三十四篇】IDEA没有Java Enterprise——解决方法
读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 1、新建Java项目2、单击项目名,并连续按两次shift键3、在搜索栏搜索"添加框架支持"4、勾选Web应用程序5、最终界面6、添加Tomcat 1、新建Java项目 2、单击项目名,并连续按两次…...
WinForm模态与非模态窗体
1、模态窗体 1)定义: 模态窗体是指当窗体显示时,用户必须先关闭该窗体,才能继续与应用程序的其他部分进行交互。 2)特点: 窗体以模态方式显示时,会阻塞主窗体的操作。用户必须处理完模态窗体上…...
静态时序分析:SDC约束命令set_ideal_network详解
相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 set_ideal_network命令可以将当前设计中的一组端口或引脚标记为理想网络源(设置端口或引脚对象的ideal_network_source属性为true)&#…...
【学习方法】技术开发者的提问智慧:如何高效获得解答?
技术开发者的提问智慧:如何高效获得解答? 在技术开发过程中,每个人都会遇到无法解决的问题。此时,我们通常会向团队、社区或论坛求助。然而,为什么有些人的问题能迅速得到解答,而有些人的问题却石沉大海&a…...
C++:入门详解(关于C与C++基本差别)
目录 一.C的第一个程序 二.命名空间(namespace) 1.命名空间的定义与使用: (1)命名空间里可以定义变量,函数,结构体等多种类型 (2)命名空间调用(…...
探索:空间网格编码SpatialGridCoding在北斗导航与地理实体管理中的应用
1. 空间网格编码:北斗导航的"数字身份证" 想象一下,当你打开手机导航时,系统如何快速锁定你的位置并规划路线?这背后离不开空间网格编码技术的支持。简单来说,空间网格编码就像给地球表面贴满二维码…...
ES启动失败:深入解析No buffer space available错误及连接数优化策略
1. 当ES启动失败时发生了什么 第一次看到"No buffer space available"这个报错时,我也是一头雾水。那天凌晨三点,线上监控突然报警,ES集群集体罢工,整个搜索服务直接瘫痪。查看日志发现满屏都是"java.net.SocketE…...
无人机控制中的模糊控制:一维与二维模糊控制及其实现要点
无人机 控制方面 模糊控制 有一维模糊和二维模糊两种,文字说明资料已遗失,数学模型可以根据仿真图推导,直接运维simulink会报错,是因为没有导入模糊规则,在运行simulink之前需要在命令窗口输入workreadfis work.fis ,这…...
信息安全毕设容易的项目选题汇总
0 选题推荐 - 网络与信息安全篇 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满…...
大模型应用开发:从Demo到生产,小白程序员必看!收藏这份实战指南
本文深入剖析了将大模型应用从原型阶段推向生产环境所面临的关键挑战,涵盖数据处理(格式多样性、切块策略、数据更新)、检索质量(找不到、找不准、找太多)、生成阶段(幻觉、引用溯源)、规模化工…...
VuePress/Hexo博客作者必看:VSCode Paste Image插件路径配置避坑指南
VuePress/Hexo博客作者必看:VSCode Paste Image插件路径配置避坑指南 当你沉浸在VSCode中撰写技术博客时,是否遇到过这样的场景:本地预览时图片显示完美,但一旦部署到线上,所有图片都变成了令人沮丧的404错误ÿ…...
OpenClaw 全面解析:Token时代的iPhone如何颠覆开发者工作流?
前言:两周15万Star背后的技术革命 2026年初,一个名为 OpenClaw 的开源项目在 GitHub 上以惊人速度走红——两周内突破 15 万 Star,如今已达 310k Star,成为近年来增速最快的开源项目之一。 黄仁勋在最新访谈中将其称为 “Token时代…...
VitePress 博客主题定制与美化实战
1. VitePress主题美化的核心思路 很多开发者在使用VitePress搭建博客时,都会遇到一个共同的问题:默认主题虽然简洁,但缺乏个性。我在实际项目中发现,通过CSS变量覆盖、自定义组件和插件扩展这三个维度,可以打造出极具辨…...
so-vits-svc声压级标准化终极指南:如何避免AI语音转换中的音频质量损伤
so-vits-svc声压级标准化终极指南:如何避免AI语音转换中的音频质量损伤 【免费下载链接】so-vits-svc SoftVC VITS Singing Voice Conversion 项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc so-vits-svc作为当前最先进的AI歌声转换框架ÿ…...
iText7中文渲染完全指南:从乱码到完美显示的技术突破
iText7中文渲染完全指南:从乱码到完美显示的技术突破 【免费下载链接】itext7-chinese-font 项目地址: https://gitcode.com/gh_mirrors/it/itext7-chinese-font 在数字化文档处理领域,PDF格式以其跨平台一致性成为信息传递的首选。然而…...
