又有人来问MOE和Dense模型到底差哪了?

AI大模型随机初始化权重并打印网络结构方法(以Deepseekv3为例,单机可跑) 一般而言,在HuggingFace官网,打开对应的模型,然后点击Files and versions,就会出现模型权重文件和一些相对应的代码和json文件。config.json文件:模型的配置文件,包含模型的架构和参数配置信息。configuration_deepseek.py文件:DeepSeekv3模型的配置脚本,定义了模型的具体配置和参数。model-00001-of-000163.safetensors文件:模型的权重文件之一,存储了模型的部分参数(这里表示总共有163个权重文件,特别庞大) 阅读详情

最近更新的比较少,因为一直在打街霸6的天梯

Image

我已经冲到钻石了,离大师一步之遥

Image

然而...今天又被人问了MOE和dense到底区别在哪,但是他说的很多理解是完全错的。其实我以前讲过,但是可能没那么细,所以我今天仔细澄清一下大家理解的误区

如果随便答,其实什么推理省显存,简单的道理,因为activation 少了么,原来要激活整个MLP,现在激活的几个expert之类的云答案,这种很好找的

那么问题来了,激活experts(一般需要*N)就比你dense模型激活少么?

首先MOE的experts和dense的 MLP是什么关系?

估计大部分兄弟随口一云,就会说per_expert_dim * expert_num= MLP

这对么?

看起来好像对的答案,其实是经不起推敲的

我们知道transformer的layer的架构排布是下面这样的

Image

因为我们为了简单就用标准的causal LLM也就是右边的这个来讲,如果不理解transformer的可以看我以前的系列文章:

小周带你读论文-2之"草履虫都能看懂的Transformer老活儿新整"Attention is all you need(3)

首先MH attention 层要经过qkv矩阵之后算注意力然后由liner o 也就是output会产生出来送给MLP层的tensor,这个东西对mlp层计算的dim(维度)是和mlp层的input layer是相同的

那就变了MOE就能不同?

想象都知道不可能得事吗,维度不一样,你怎么矩阵计算呢?

所以这个在互联网上普及的看似正确的答案就是个纯扯淡的意淫流答案。

那实际是怎么样的呢?

我们分两个思路来看

第一,假设你原有一个模型,你就想给它升级MOE

那你升级哪呢?

升级MLP么,对吧,基于我刚才讲的,liner o出来的维度要和mlp维度等价,所以你如果有8个experts,就是相当于给你的整个MLP层扩大了8倍参数

Image

这么做的话呢,首先可以肯定的是,如果你会训练,知道怎么稳定MOE梯度之类的操作,那么效果自然是好的,因为扩参数,想都不用想

但是

你省资源了吗?

那必然是没省,因为你整个参数扩大了,对于transformer模型来讲最大头的参数肯定是MLP,也就是你放大了几倍的参数,weight显存,你占定了,同样的激活,原来我激活一个mlp,哪怕你是最简单的8 experts only激活2个,那也是2倍一样的激活显存,这个不管训练还是推理,你都要投入对应的显存容量来fulfill

所以这个和你初始的要求不太一样啊

所以第二个思路,我重做一个,重头design

我们以qwen的32b和qwen 30B A3B来做一个对比

Image

这俩模型差不多大,对于weight显存的占用肯定是差不多了

那么我们现在来分析左边的dense 32B 和右边的MOE 30B-A3B的区别

一、谁变了、变到哪

  • 层数 L

    dense: num_hidden_layers=64

    MoE: num_hidden_layers=48
    MoE 版显著减少了层数。因为在总参受限了,就30B左右,所以FFN(MLP)大点,地方就那么大,那前面attention层就要受挤压,MoE 会让骨干深度变浅,把参数预算让给 experts。

  • 模型隐维 d_model 与注意力

    dense: hidden_size=5120, num_attention_heads=64, head_dim=128(由图左侧 head_dim=128 可见)

    MoE: hidden_size=2048, num_attention_heads=32, head_dim=128
    MoE 版把 d_model 从 5120 降到 2048;注意力头数也从 64 降到 32,但单头宽度 head_dim 仍是 128。这意味着注意力与残差主干被整体“瘦身”了,刚才把attention的层干浅了,这次把整个模型的dim宽度也干窄了,进一步为了维持30B左右的参数,继续砍

  • FFN/MLP 中间维(dense 的 intermediate_size)

    dense: intermediate_size=25600(≈5× d_model=5120)

    MoE: intermediate_size=6144(这是 MoE 层里每个 expert 的中间维度 d_ff_expert;≈3× d_model=2048)
    关键点:MoE 不是把 dense 的中间维切片,而是每个 expert 自己一套、但更“瘦”。这里清楚显示了业界常用策略:保持输入输出维为 d_model,降低专家的中间宽度来控参控算。当然有人也会杠,那为什么没有人在liner o,也就是proj o 后面加一个降为的liner来和mlp的expert对齐,这个问题我不回答,大家自己琢磨琢磨,留个彩蛋,当然你想明白这个问题就自然会心一笑。

  • MoE 相关字段

    "moe_intermediate_size": 768(图右存在该字段,通常用于门控/共享投影等 MoE 内部维度,具体实现依赖库)

    "num_experts": 128

    "num_experts_per_tok": 3(就是 top-k=3)

    还有 router/负载均衡的若干超参(如 router_aux_loss_coeff 等)
    这是一个较大 N 的 MoE(128 个专家),每个 token 激活 3 个。从训练的角度这个确实省激活,其实推理就还好。别看好像省了125个experts,但是对于推理来讲,它不是训练,不用考虑反向。这种没那么大的模型,activation的显存能省,但是省不了你们想那么多,除非你input的seq特别长,batch太大。

  • KV heads

    dense: num_key_value_heads=64(与总头数一致)

    MoE: num_key_value_heads=4(显著更少,采用 GQA:少量 KV 头共享给多查询头)
    这进一步压缩了注意力状态与推理缓存(KV cache),降低显存与带宽压力。

二、从这些变化得出的结论

  • MoE 版把“共享、每 token 必算”的主干(d_model、注意力头数、层数)都缩小了;把参数预算转移到“稀疏激活”的专家集合上。在总参固定下,MoE 也没有超能力,所以只能让注意力/层数变小或变浅。

  • 每个 expert 的中间维度被降了:dense 的 25600(≈5×5120)对比 MoE 每 expert 的 6144(≈3×2048),其实单个的mlp(一个expert)的表达能力是被降低了,我们知道mlp层的核心诉求就是需求隐空间的语义信息,那降低了怎么办?用多experts来承载多样性。

  • 同时引入 GQA(num_key_value_heads 远小于总头数)来进一步节约注意力侧的参数与 KV cache,适配大 N、top‑k 的 MoE 设计,保障吞吐和显存可行。

三、对训练/推理与效果的含义

  • 训练/推理 FLOPs

    每 token 的 MoE 计算量主要随 k=3 与 d_ff_expert=6144 走;N=128 对单 token FLOPs 影响不大(更多影响参数量与路由)。

    注意力侧因 d_model 变小、头数变少、GQA 化,计算与 KV cache 显著下降,有利于吞吐。

  • 表达力与路由

    虽然单个 expert 比 dense 的 FFN 更瘦,但有 128 个专家且 top‑3 激活,整体表达多样性提升;负载均衡和路由质量变得关键。

  • 长上下文与注意力质量

    d_model 与头数变小对注意力分辨率不利,但通过层数/专家多样性、训练策略与数据规模可以部分补偿。具体效果要看实际评测。这个也是moe的一个弱点(同等参数下),当然如果你能给upset做到671B又做到1T,那当我没说

    Image

四、可复制的设计要点(如果你要做同类改型)

  • 保持子层输入/输出维一致为 d_model(方便残差与实现),把“瘦身”放在 expert 的中间维 d_ff_expert。

  • 通过减少 L、d_model、注意力头数和使用 GQA 来为 MoE 挪参数预算。

  • 选择合适的 N 与 k,常见 k=1–2;这里采用 k=3,配合更强的路由/均衡与较瘦的 expert。

  • 关注 router 正则(如 router_aux_loss_coeff)与 capacity 设置,保证均衡与稳定训练。

好,那么我们总结一下

看这两个模型config.json的配置,并对比,非常清晰地展示了标准业界的 MoE 的典型取舍:在总参相近时,MoE 模型显著缩小了主干(d_model、层数、注意力头/GQA),并把 FFN 从 dense 的单路大宽度,改成多专家的中等宽度;每个 expert 的维度被刻意降了,以换取“多专家 + 稀疏激活”的表达力与性价比。

如何判断模型是 Dense 还是MoE架构? MoE模型在训练过程中面临复杂性增加、训练稳定性问题、计算资源需求高和设计实现复杂等挑战。 阅读详情

相关推荐

Transformer 架构对比:Dense、MoE 与 Hybrid-MoE 的优劣分析

1.LLM基础架构类型。

web15085415935的博客 2349

【大模型训练】moe_shared_expert_intermediate_size 参数

在 Megatron 的实现中,为了优化计算,通常不会为每个共享专家单独创建一个模块。而是将所有的共享专家(例如 2 个)的gate_proj权重**堆叠(stack)**在一起,形成一个更大的权重矩阵。up_proj也是如此。假设模型隐藏层维度是 4096。单个共享专家的中间层维度是 1024。模型有个共享专家。那么,Megatron 内部会创建一个gate_proj权重,其形状是,也就是。这个2048就是所有共享专家中间层维度的总和。因此,在...# 这里进行计算...

王尚权 qq:2515162716 1008

人工智能 - 大模型Dense、MoE 与 Hybrid-MoE 架构的比较

UltraMem是一种显存优化型大模型架构,专为突破千亿参数级模型的训练/推理内存瓶颈设计,通过动态资源调度实现“用有限显存训无限大模型”的目标。

3187

DeepSeek-VL2 模型的配置

flyfish

二分掌柜的 1370

基-2 16点fft的verilog实现

本文是采用输入8位数据,输出8位数据的16点fft实现,旋转因子采用8位rom存储,分为cos和sin2个rom存储;输入数据以及每一级的输出数据采用8位的ram进行存储,分为实部和虚部进行存储。采用顺序输入,那么输出则为倒序。生成rom,可先在matlab中,计算出cos和sin的值,然后写入coe文件,再由ip核生成,具体过程自行百度,懒得百度的话,可以发我的邮箱来获得具体的程序。因为本文采用...

juniorofMFC的博客 9989

Oracle19c安装,基本配置教程(超详细)

安装有出错的风险,卸载也是比较麻烦的,所以先提前设置一个还原点,在windows中的步骤如下,如果对自己有信心,可以直接跳过该部分开始安装oracle在设置中进入创建还原点的界面开始创建还原点上面已经成功创建了还原点,如果安装oracle时出现问题,自己也无法解决,恢复到安装之前即可,恢复步骤如下经过上面的步骤,Oracle我们就能够正常使用了,我们就使用自己在sql plus里面创建的账号即可,创建的表会默认存放在我们自己创建的表空间里面。

秃头披风侠的博客 7万+

Pangu Pro MoE 模型配置详解

本文详细解析了Pangu Pro MoE模型的核心参数配置、混合专家(MoE)设计原理以及路由专家与共享专家的协同作用。文章首先介绍了模型的基础参数架构,包括词汇表大小、隐藏层维度等关键配置项;其次深入探讨了MoE的分组专家设计和动态路由机制;最后分析了路由专家与共享专家在模型中的具体功能与性能影响。 ## 模型的核心参数与配置 Pangu Pro MoE 模型的配置通过 `PanguPro

gitblog_00718的博客 1033

清华电子系保研面试全记录:五轮硬核考核+工程硕博专项解析(附真题)

本文详细解析了清华大学电子工程系保研面试的完整流程,重点剖析了其标志性的五轮专业面试(涵盖电路、电磁场、信号系统、计算机与AI)和综合组群面,并深入解读了工程硕博改革专项的考核要点与备战策略。文章提供了各专业组的真题示例与应对方法,旨在帮助电子信息相关专业学子系统准备,从容应对这场高强度的知识与综合素质挑战。

u0v1w2x3的博客 587

AI智能体研发-模型篇(二):DeepSeek-V2-Chat 训练与推理实战

DeepSeek-V2-Chat 训练与推理实战

瓦罗兰特顶级C位的博客 3746

ClaudeCode入门01-环境安装(小白入门:手把手教你配置,超简单的一种接入方式)

文手把手教你从零搭建 Claude Code 开发环境。针对国内网络现状,我们采用 OpenRouter + Claude Code Router 的方案,支持支付宝/微信充值,无需科学上网即可完成配置。内容涵盖 Node.js 安装(macOS/Windows/Linux)、OpenRouter 注册与充值、Claude Code 和 Router 安装配置,以及一键启动脚本的编写。跟着截图一步步操作,10分钟搞定全部环境!

yueyeguzhuo的专栏 278

【python爬虫--爬取电商商品及对其销量、好差评等数据进行分析】Python爬虫爬取电商商品及大数据分析-实战

选择目标电商网站:这里选择爬取两个不同电商网站(比如京东、淘宝)上的商品数据,包括商品名称、价格、销量和评价信息。编写爬虫:通过爬虫获取商品信息并保存数据。数据清洗与对齐:将两个电商网站抓取到的数据进行统一清洗和对齐。数据分析:进行销量分析、好评与差评分析等。

Dreams°的博客 4011

Dense 与 MoE 系列模型架构的全面对比与应用策略

人工智能领域正经历着一场架构革命,从。本文将全面剖析这两种模型架构的本质差异、各自优势与挑战,并提供战略性的选择框架,帮助读者在实际应用中做出明智决策。

lovely_yoshino的博客 1万+

DeepSeek在实时计算与流处理系统中的突破性实践

对于技术决策者而言,现在正是将DeepSeek实时计算技术纳入企业架构蓝图的关键时机,那些能够率先构建实时智能能力的企业,将在数据驱动的商业竞争中赢得决定性优势。DeepSeek通过创新的流处理架构,成功将复杂事件处理(CEP)的延迟降低到亚秒级,同时保证了计算结果的精确性。DeepSeek研发的神经架构搜索(NAS)与知识蒸馏联合优化框架,可在保持模型精度的前提下,将参数量压缩至原始模型的1/100,实现边缘设备的实时AI推理。随着5G和物联网技术的普及,对实时处理能力的需求将呈指数级增长。

Programming Talk 289

MoE混合专家模型(Mixture of Experts)和Dense密集模型(Dense Models)的区别到底是什么?如何选呢?

‌MoE混合专家模型(Mixture of Experts)和Dense密集模型(Dense Models)的区别如下‌:

2401_85375186的博客 3462

YOLOv8极速瘦身实战:LAMP剪枝让模型又快又准

一个庞大的模型虽然强大,但在实际部署,尤其是资源受限的边缘设备(如无人机、移动电话、嵌入式系统)上,却面临着严峻的挑战:高昂的内存占用、巨大的计算量以及随之而来的高延迟和高能耗。本教程从LAMP剪枝的深刻理论出发,详细解释了它如何通过最小化最坏情况下的L2失真,并借助巧妙的数学简化,最终推导出一种高效、无超参数、层自适应的剪枝策略。它如同为臃肿的模型进行一次精准的“瘦身手术”,通过移除网络中冗余或不重要的权重、神经元甚至整个结构,来显著降低模型的参数量和计算量(FLOPs),从而实现推理加速和资源节约。

FJN110的博客 257

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

从dense到MoE -- sparse upcycling

原创 HZLin2024年07月19日 22:33广东【往期文章】【本文已在同名 微信公众号 / 知乎 / 个人博客linsight.cn 上线】目前已经有很多优秀的dense大模型,那么要通过MoE获得更强的模型,用已有的dense模型进行初始化是一个自然的想法。Google的对此做了一些实验,由于实验是在2022年做的,模型用的是T5系列语言模型和Vision Transformer系列视觉模型。

具身机器人和通用AI 1949

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

MOE和Dense

摘要 Dense模型(稠密模型)在推理时激活全部参数,计算路径固定,适合对确定性要求高的场景;MoE(混合专家模型)通过门控网络动态选择Top-K专家子网络进行稀疏激活,以较低计算成本扩展模型容量,适用于超大规模LLM。核心区别在于MoE解耦了模型容量与推理计算,实现“参数多但计算省”。Dense优势在于稳定性和无路由开销,而MoE则通过专家分工提升效率,但面临显存占用大、路由均衡等工程挑战。技术选型需权衡参数预算与计算预算,面试需区分总参数和激活参数对推理成本的影响。

qq_62097431的博客 381

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Dense与MoE大模型架构后续发展解读

Snowflake Arctic 模型作为一个引人注目的真实案例,验证了混合 MoE 架构在特定的商业相关任务上实现最先进的智能,并且与更传统的Dense或纯 MoE 模型相比,具有显著更高的效率和更低的训练成本的潜力。这种透明度有助于建立用户对系统的信任。此外,研究人员正在探索各种技术,例如金字塔残差 MoE (PR-MoE) 架构,以通过仅在网络中那些能够提供最大收益的部分策略性地应用计算成本更高的 MoE 层,从而进一步提高训练效率,最终在不显着影响模型质量的情况下降低整体参数规模和计算成本。

m0_59235699的博客 1983
上一篇: Murati的thinking machines的论文到底讲了什么
下一篇: 草履虫也能学会的强化学习系列(6)
周博洋K
博客等级 码龄9年 2005粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值