当前位置: 首页 > article >正文

混合专家MoE没你想的那么玄乎:拆开GPT-4和DeepSeek V4的核心架构

上周跟一个朋友聊天他说他在读 MoE 的论文读了两天没太搞明白。我说你换个角度想——MoE 就像一家大型公司的组织架构。传统的大模型就像一个全能型员工一个人啥都得会。MoE 换了个思路你不是要让一个人啥都会吗那我换一下请一群专家每人只负责一个领域。出问题的时候让一个调度员判断该找谁。就这么简单。当然真要实现起来还是有不少技术细节。这篇文章我打算把 MoE 拆开揉碎了讲附带我最近看论文和实践的一些理解。先说说为什么要有 MoE传统 Transformer 模型有个硬伤——计算成本跟参数量是跟着模型规模一起膨胀的。GPT-3 是 1750 亿参数一张 A100 都装不下得上几十张卡并行跑。问题在于你输入今天天气怎么样这种简单问题的时候模型也需要激活全部 1750 亿参数。这不是浪费吗MoE 的思路就是只激活需要的那部分。把模型拆成多个专家子网络每个专家擅长处理不同类型的输入。输入来了路由机制选几个专家激活其他专家休息。效果立竿见影MoE 版本的模型参数总量可以做到很大比如万亿级别但每次推理只激活其中的一小部分计算成本和推理速度跟小模型差不多。这大概是 MoE 最核心的竞争力。MoE 的结构长什么样标准的 MoE 层由三部分组成专家网络通常就是几个 FFN前馈网络每个专家是一组独立的参数路由Router也叫门控网络决定每个 token 分配给哪些专家负载均衡确保 token 不会全部涌向同一个专家具体流程是这样的输入一个 token首先通过 Router 计算它跟各个专家的匹配度Router 给每个专家打一个分数。然后选 Top-K 个得分最高的专家。把 token 发给选中的专家让专家处理它。最后把专家输出做加权求和Router 的分数就是权重。我在实验里复现了一个简单的 MoE 层核心代码大概这样classMoELayer(nn.Module):def__init__(self,d_model,num_experts,top_k2):super().__init__()self.routernn.Linear(d_model,num_experts)self.expertsnn.ModuleList([FeedForward(d_model)for_inrange(num_experts)])self.top_ktop_kdefforward(self,x):# 计算路由权重routing_weightsF.softmax(self.router(x),dim-1)# 选Top-K个专家top_k_weights,top_k_indicestorch.topk(routing_weights,self.top_k,dim-1)top_k_weightstop_k_weights/top_k_weights.sum(dim-1,keepdimTrue)# 初始化和输出final_outputtorch.zeros_like(x)fori,expertinenumerate(self.experts):mask(top_k_indicesi).any(dim-1)ifmask.any():final_output[mask]top_k_weights[mask]*expert(x[mask])returnfinal_output当然这是简化版真正的工业实现要考虑负载均衡、专家容量、通信优化这些问题。但核心逻辑就是这几行代码。路由策略软路由 vs 硬路由这块是 MoE 论文里争论最多的话题之一。软路由token 分配给所有专家每个专家分配不同的权重。优点是梯度能回传到所有专家训练更稳定。缺点是计算量更大——激活了所有专家那还要 MoE 干嘛硬路由token 只分配给 Top-K 个专家其他专家不参与计算。这带来一个训练问题——非 Top-K 的专家没有梯度可能永远得不到训练。这个专家坍缩问题困扰了 MoE 很久。现在的工业实现GPT-4、DeepSeek V4、Mixtral 8x7B基本都是硬路由 Top-2。至于专家坍缩靠的是辅助损失函数和负载均衡策略来解决。负载均衡MoE 最头疼的问题想象一下如果 Router 总是把大部分 token 分配给同一个或少数几个专家剩下的专家就失业了。这不仅浪费了模型容量还会让模型性能下降。这个问题在训练初期特别容易出现——Router 的初始权重是随机的很容易让 token 集中到一两个幸运的专家上。解决策略到现在已经发展了好几代Batch-wise 负载均衡损失Switch Transformer 方案在损失函数里加一项负载均衡的惩罚鼓励 token 在各个专家间均匀分布。Expert Choice2023年论文反向思路——不再让 token 选专家而是让专家选 token。每个专家选最重要的一批 token。这个方案理论上更优实际效果也挺好。DeepSeek V4 的方案用了一种动态关联的负载均衡策略据他们论文的说法把专家之间的 token 分配偏差控制在了 5% 以内。DeepSeek V4 的 MoE 有多猛说到 MoE 就绕不开 DeepSeek V4。它的架构是目前 MoE 落地做的最极致的案例之一。DeepSeek V4 总参数量是 1.6T万亿但每次推理只激活 380 亿参数。激活率低于 3%。1.6T 是什么概念如果用传统 Dense 模型这个体量光推理成本就是一个天文数字。但 MoE 让它能在消费级场景跑起来。虽然 1.6T 不可能单卡跑但 380 亿激活参数的推理效率已经比很多百亿级 Dense 模型高了一个数量级。DeepSeek V4 用了 256 个专家Top-2 路由。这意味着每个 token 只激活 2 个专家。它还引入了一个叫 Multi-Head Latent Attention 的机制在注意力层也做了参数共享优化。本质上也是 MoE 的思维——注意力阶段就控制计算量不给后面的 FFN 层留太多输入。GPT-4 的 MoE 还没公开OpenAI 一直没有公开 GPT-4 的具体架构。但根据多方分析和泄露信息普遍认为 GPT-4 使用了 8 组专家每组约 220B 参数Top-2 激活。也就是推理时激活约 440B 参数。这个规模跟 DeepSeek V4 比显得有点保守但 GPT-4 发布更早那时 MoE 的工程实践经验还没那么丰富。有意思的是GPT-4 的专家分组设计据说是按功能域划分的——有的专家组擅长代码有的擅长推理有的擅长创意生成。这种领域专家的设计哲学跟 MoE 的直觉更接近。而 DeepSeek V4 的专家是更细粒度的256 个专家分布在不同的层级上每个专家不绑定特定领域。Router 动态学习 token 和专家的匹配关系。这两种设计思路目前没有定论谁更好只能说是不同的设计哲学。MoE 的工程挑战理论说完了聊聊工程实践里 MoE 最让人头疼的问题。通信瓶颈MoE 的一个核心特性——每个 token 要去不同的专家——天然要求跨设备通信。在分布式训练中专家分布在不同的 GPU 上token 需要频繁的 all-to-all 通信。我做过实验通信开销可以占到总训练时间的 30% 以上。优化方式包括专家放置策略把频繁被一起调用的专家放在同一节点、梯度压缩、异步通信。显存压力虽然推理时只激活部分专家但训练时所有专家的参数都要加载到显存里。1.6T 参数的 MoE 训练光存参数就需要 3.2TB半精度。训练 DeepSeek V4 据说用了上千张 GPU。专家负载不均衡前面说的负载均衡问题在训练中需要持续监控。一旦发现某个专家罢工需要及时调整损失函数的权重。推理部署MoE 模型的推理部署比 Dense 模型复杂。因为不同输入会激活不同的专家缓存和批处理策略都要重新设计。MoE 适合什么样的项目如果你正在考虑要不要在自己的项目里用 MoE我的建议分三种情况训练新模型如果你有大规模算力资源想从头训一个超大模型MoE 几乎是必选项。1B 以下的小模型用 Dense 更好参数量的优势体现不出来。微调已有 MoE 模型DeepSeek V4、Mixtral 8x7B 都开源了可以用它们的权重做微调。注意 MoE 模型的微调跟 Dense 模型不太一样——路由参数要不要冻结专家怎么调度这些都需要调。推理已有 MoE 模型直接用就好MoE 的推理接口跟普通模型没区别。优点是速度更快、成本更低。写在最后MoE 的核心思想其实很简单——别把所有鸡蛋放在一个篮子里。但实现起来确实有不少坑。说实话我觉得 MoE 对普通开发者的意义不在于从头训一个 MoE 模型而是在于理解它之后你能更好地用这些模型。知道它的路由机制你就知道为什么某些提示词效果更好。知道负载均衡的设计你就知道为什么某些场景下 MoE 模型的输出质量波动比 Dense 模型大。知道通信瓶颈在哪你就知道为什么 MoE 模型的推理服务提供商定价跟普通模型不一样。理解底层原理用起来才顺手。

相关文章:

混合专家MoE没你想的那么玄乎:拆开GPT-4和DeepSeek V4的核心架构

上周跟一个朋友聊天,他说他在读 MoE 的论文,读了两天没太搞明白。我说你换个角度想——MoE 就像一家大型公司的组织架构。 传统的大模型就像一个全能型员工,一个人啥都得会。MoE 换了个思路:你不是要让一个人啥都会吗?…...

Video DownloadHelper CoApp终极指南:从零开始轻松下载网络视频

Video DownloadHelper CoApp终极指南:从零开始轻松下载网络视频 【免费下载链接】vdhcoapp Companion application for Video DownloadHelper browser add-on 项目地址: https://gitcode.com/gh_mirrors/vd/vdhcoapp Video DownloadHelper CoApp是Video Down…...

职场人的「深夜困境」:为什么我选择用AI社交平台倾诉

职场五年,我学会了一件事:白天把情绪藏好,晚上一个人消化。白天开会、汇报、对接客户,所有的情绪都要收着。到了晚上,躺在床上,脑子却停不下来。翻来覆去睡不着的时候,你会找谁?我试…...

CANN基础设施机器人使用指南

【免费下载链接】infrastructure 本仓库用于托管CANN社区基础设施团队的公开信息,包括不限于:会议日程,成员信息,服务文档和配置等信息 项目地址: https://gitcode.com/cann/infrastructure 🚀 CANN社区Bot用户…...

CANN/HCCL Ring集合通信算法

Ring 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann/hccl 算法…...

【2026年最新】网安学习路线!最详细没有之一!看了这么多分享网安学习路线的一个详细的都没有!

零基础小白,到就业!入门到入土的网安学习路线! 在各大平台搜的网安学习路线都太粗略了。。。。看不下去了! 我把自己报班的系统学习路线,整理拿出来跟大家分享了! 建议的学习顺序: 一、网络安…...

数字电源控制技术:从效率优化到智能管理

1. 数字电源控制技术的革新突破在电力电子领域工作了十五年,我见证了电源技术从模拟控制到数字控制的革命性转变。2007年那场PCIM China展会上,Ericsson展示的数字控制POL稳压器让我至今记忆犹新——它用25.412.7mm的尺寸实现了20A输出,这个尺…...

Tekla 图纸还在人工调?一个项目浪费几十小时,自动调图到底能省多少时间

正文在钢结构深化行业,很多人都以为建模最耗时间。但真正做过项目的人都知道,模型完成之后,真正拖慢交付周期的,往往是图纸后处理。一个典型流程:建模完成 → 自动生成图纸 → 图纸员人工调图 → 校审 → 修改 → 出图…...

CANN工具SIG项目

tools SIG 【免费下载链接】community 本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息 项目地址: https://gitcode.com/cann/community 简介 欢迎来到tools SIG!我们致力于构建模型压缩和…...

CANN/sip BLAS点积算子文档

Dot 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库,基于华为Ascend AI处理器,专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持Atlas 200I/500 A2 推理产品At…...

Dify与Langfuse集成:构建可观测AI应用的全链路实践

1. 项目概述:当Dify遇上Langfuse,如何构建可观测的AI应用 如果你正在用Dify搭建AI应用,那你一定遇到过这样的场景:用户反馈说“昨天那个回答挺好的,今天怎么不行了?”;或者产品经理问你“我们调…...

CANN/CATLASS样例设计文档

CATLASS 样例设计文档 【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass 本文档汇总当前一些样例的设计思路和代码拆解,读者可按照个人兴趣查阅…...

多模态大模型评测指南:从盲测竞技场到技术选型实战

1. 项目概述:一个开放的多模态模型竞技场如果你最近在关注大模型,尤其是那些能“看懂”图片的视觉语言大模型,那你可能已经发现,各种新模型如雨后春笋般涌现,每个都宣称自己性能卓越。但作为开发者或研究者&#xff0c…...

体验低延迟与高稳定的大模型API调用服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 体验低延迟与高稳定的大模型API调用服务 在需要与大模型进行高频、连续交互的开发或学习场景中,服务的响应速度和稳定性…...

2026年 自动化缝纫模板机 机器人工作站市场洞察与排名

前言在智能制造浪潮下,模板机机器人工作站成为服装、家纺等行业升级关键。这类设备以高效、精准、稳定等特性,提升生产效率与降低成本。市场上相关品牌与产品众多,为助企业挑选,现从多维度评估并排名。2026 年模板机机器人工作站 …...

CANN/asc-tools NPU检查工具

npu_check 【免费下载链接】asc-tools Ascend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。 项目地址: https://gitcode.com/cann/asc-tools 概述 Ascend C Tools提供的孪生调试分为debug功能和npu check功能,debug功能包含诸如是否合法使用…...

CANN/PTO-ISA安全说明

安全说明 【免费下载链接】pto-isa Parallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platf…...

全域矩阵运营系统分布式任务调度架构设计与工程化落地

摘要随着全域矩阵运营系统的规模化落地,系统需要承载数十万账号的定时内容发布、跨平台数据同步、账号健康巡检、合规风险扫描、运营 SOP 执行等海量、异构、强业务关联的任务场景。通用分布式任务调度框架仅能实现基础的定时任务触发,无法适配矩阵系统多…...

基于改进YOLOv8斑点叉尾鮰鱼损伤检测系统的研究与实现

摘要:斑点叉尾鮰是我国重要的淡水养殖经济鱼类,在高密度集约化养殖过程中,鱼体损伤问题频发,直接影响商品鱼品质和养殖经济效益。传统的鱼体损伤检测主要依赖人工目视判别,存在效率低、主观性强、难以实现批量化检测等…...

昇腾CANN/GE Concat No Task特性分析

Concat No Task 特性分析 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、T…...

通过curl命令快速测试Taotoken各大模型接口响应与功能

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken各大模型接口响应与功能 对于需要在无SDK环境或进行底层接口调试的开发者而言,直接使用c…...

2025最权威的十大降AI率平台推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 维普AIGC检测系统的主要目的乃精确辨认学术文本里那帮通过人工智能给弄出来的内容。在用户使…...

WorkshopDL:革命性跨平台Steam创意工坊下载技术指南

WorkshopDL:革命性跨平台Steam创意工坊下载技术指南 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 1. 问题洞察 你是否曾经在GOG平台购买了《巫师3》,…...

键盘上的麦克风按钮:笔记本静音/开启的终极指南

键盘上的麦克风按钮:笔记本静音/开启的终极指南 在视频会议、直播或录制视频时,你是否曾因为找不到麦克风开关而手忙脚乱?其实,很多笔记本电脑都在键盘上藏了一个“物理静音键”,只要按对键,就能瞬间掌控声音的“话语权”。 今天这篇博文,我们就来详细扒一扒不同品牌笔…...

核心概念扫盲:Pawn、PlayerController 和 GameMode

📌 核心概念扫盲:Pawn、PlayerController 和 GameMode 在写避坑指南前,先用最通俗的大白话把这三个“铁三角”搞清楚,否则后面配置起来会非常迷糊: Pawn(棋子/角色):游戏世界里的“身体”。它可以是一个行走的战士(Character 是 Pawn 的子类,专门做人形角色),也可…...

如何让你的Atom编辑器说中文:三步实现完整中文汉化体验

如何让你的Atom编辑器说中文:三步实现完整中文汉化体验 【免费下载链接】atom-simplified-chinese-menu Atom 的简体中文汉化扩展,目前最全的汉化包。包含菜单汉化、右键菜单汉化以及设置汉化 项目地址: https://gitcode.com/gh_mirrors/at/atom-simplified-chine…...

CANN/sip复数矩阵逐点乘

ComplexMatDot 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库,基于华为Ascend AI处理器,专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持 Atlas 200I/500 A2…...

如何用Python自动化工具轻松完成智慧树课程学习:Autovisor终极指南

如何用Python自动化工具轻松完成智慧树课程学习:Autovisor终极指南 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为智慧树平台繁琐的手动学习…...

CANN/ops-cv仿真工具使用指南

简介 【免费下载链接】ops-cv 本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-cv CANN Simulator是一款面向算子开发场景的SoC级芯片仿真工具,用于分析运行在AI仿真器上的…...

Atom编辑器终极中文汉化指南:告别英文困扰,轻松打造专属编程环境

Atom编辑器终极中文汉化指南:告别英文困扰,轻松打造专属编程环境 【免费下载链接】atom-simplified-chinese-menu Atom 的简体中文汉化扩展,目前最全的汉化包。包含菜单汉化、右键菜单汉化以及设置汉化 项目地址: https://gitcode.com/gh_mirrors/at/a…...