尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
深度学习13——MoE模型
1. Dense 模型与 MoE 模型Dense 模型Dense 模型中每个 token 都会经过同一套完整参数。在 Transformer 中一层通常包含Attention → FFN其中 FFN 的参数量和计算量通常占较大比例。无论输入哪个 tokenDense 模型都会激活完整的 FFN。特点所有参数对每个 token 都参与计算训练过程相对稳定实现简单通信开销较低参数量增加时每个 token 的计算量也会同步增加。MoE 模型MoE 全称为Mixture of Experts中文为“混合专家模型”。MoE 的核心目标是在显著增加模型总参数量的同时只让每个 token 激活少量参数从而控制实际计算量。MoE 通常不是替换整个 Transformer而是将普通 FFN 替换成多个专家 FFNAttention → MoE FFN多个专家通常具有相同的网络结构但拥有不同的参数。例如Expert 0一套 FFN 参数 Expert 1一套 FFN 参数 ... Expert 7一套 FFN 参数2. Router 如何选择专家每个 token 不会经过全部专家而是先交给一个 Router也称为 Gate 网络。Router 通常是一个较小的线性层token 隐藏向量 → Router → 每个专家的分数假设有 8 个专家某个 token 的 Router 输出为Expert 00.05 Expert 10.40 Expert 20.02 Expert 30.25 Expert 40.08 Expert 50.04 Expert 60.12 Expert 70.04如果使用 Top-2 路由就选择分数最高的两个专家Expert 1 Expert 3这个 token 只进入这两个专家计算其他六个专家不参与该 token 的前向传播。不同 token 可以选择不同的专家token A → Expert 1、Expert 3 token B → Expert 0、Expert 6 token C → Expert 1、Expert 5因此MoE 是一种稀疏激活模型。3. MoE 的参数量与计算量假设一个 Dense 7B 模型中Attention 等非 FFN 参数约 1.4B FFN 参数约 5.6B 总参数约 7B总参数量总参数量 共享参数 8 个专家参数 1.4B 8 × 5.6B 46.2B现在将 FFN 替换为 8 个专家每个专家都有约 5.6B 参数而 Attention 等参数仍然共享。如果每个 token 只选择两个专家激活参数量 共享参数 2 个专家参数 1.4B 2 × 5.6B 12.6B可以近似理解为总参数量约 46B 每个 token 实际激活约 13B 参数因此 MoE 可以做到模型总容量很大 但单个 token 的计算量明显低于同规模 Dense 模型需要注意激活参数量不完全等于实际 FLOPs但可以用于直观比较计算规模。4. MoE 节省计算但不等于节省全部显存虽然每个 token 只经过少量专家但模型仍然需要保存所有专家的参数。原因是当前 token 可能选择 Expert 1、Expert 3 下一个 token 可能选择 Expert 0、Expert 7因此推理或训练时所有专家参数都必须存在于设备显存、CPU 内存或多卡系统中。可以概括为总参数量约 46.2B 每个 token 激活参数量约 12.6B 参数存储仍需容纳全部 46.2BMoE 主要减少的是每个 token 的 FFN 计算量每一步实际激活的参数数量。它不会自动减少全部模型权重的存储空间优化器状态占用多卡训练时的通信开销。而且在多 GPU 场景中不同专家可能分布在不同 GPU 上token 需要在设备之间发送这种方式称为 Expert Parallelism可能带来较高通信成本。因此MoE 的理论计算量较低但实际训练和推理速度不一定按参数比例直接提升。5. MoE的问题专家坍缩与负载不均衡专家坍缩专家坍缩是指 Router 长期只选择少数几个专家。例如有 8 个专家但大多数 token 都被路由到Expert 1 Expert 3其他专家很少收到 token。这会导致热门专家负载过高冷门专家训练不足多个专家没有形成差异化能力设备负载不均衡部分 token 因容量不足被丢弃或重新路由模型训练不稳定。理想情况下不是要求每个专家使用次数绝对相同而是避免流量过度集中。6. 常见的负载均衡方法辅助负载均衡损失训练时加入额外的辅助损失鼓励 Router 将 token 较均匀地分配给不同专家。总损失可以写成total_loss language_model_loss balance_coefficient × load_balance_loss负载均衡损失通常同时考虑每个专家被实际选择的 token 比例Router 分配给每个专家的平均概率。它不是简单地规定“某专家被选择一次就增加一次惩罚”而是当流量过度集中在少数专家时提高辅助损失。辅助损失权重过小可能无法解决专家坍缩权重过大又可能干扰模型根据 token 内容选择合适专家。专家容量限制每个专家在一个 batch 中能够处理的 token 数量通常有上限。例如每个专家最多接收 100 个 token当某个专家超过容量后额外 token 可能会被丢弃进入第二候选专家被重新分配通过残差路径跳过专家计算。专家容量通常与下面因素有关总 token 数 专家数量 每个 token 选择的专家数量 capacity factor容量限制可以防止单个专家负载过大但容量过小可能导致大量 token 无法进入首选专家。Router 噪声训练时可以在 Router logits 中加入少量噪声router_logits → 加入噪声 → 再选择 Top-k 专家作用是增加早期探索防止 Router 过早固定在少数专家上让不同专家有机会接收到训练样本。这并不是直接强制选择低分专家而是轻微扰动专家排序使分数接近的专家都有机会被选择。推理阶段通常关闭这类随机噪声。Router 正则化与稳定化还可以使用Router logits 正则化限制 Router logits 过大合理初始化 Router调整 Router 学习率对 Router 使用更高精度计算设置共享专家或始终激活的专家。这些方法主要用于避免 Router 过早饱和和训练数值不稳定。7. Dense 与 MoE 对比对比项DenseMoEFFN 数量每层通常一套每层包含多个专家 FFN每个 token 激活范围激活全部 FFN 参数只激活 Top-k 专家总参数量相对较小可以非常大单 token 计算量随总参数量增加低于同总参数量 Dense 模型权重存储保存全部参数仍需保存全部专家参数KV Cache主要由 Attention 决定通常不会因 FFN MoE 直接变化训练稳定性相对稳定Router 和负载均衡更复杂多卡通信相对简单可能产生较大 All-to-All 通信主要问题扩大参数会直接增加计算量专家坍缩、负载不均、通信开销核心区别可以概括为Dense 每个 token 使用同一套完整 FFN。 MoE 模型拥有多套专家 FFN 但每个 token 只选择其中少数几个参与计算。MoE 并不是让模型“用更少参数”而是保存大量参数形成更大的模型容量同时通过稀疏激活控制每个 token 的实际计算量。
RELATED

相关推荐

工业机器视觉系统如何选择?从海康机器人、基恩士到国产视觉方案的发展趋势

工业机器视觉系统如何选择?从海康机器人、基恩士到国产视觉方案的发展趋势

随着智能制造的发展,机器视觉已经成为自动化生产线中的重要技术组成部分。从电子制造、新能源电池,到汽车零部件、半导体加工,越来越多的企业开始利用工业相机、视觉算法和自动化设备替代传统人工检测和定位方式。但对于很多刚接触机器视觉的…

📅 2026/9/15 20:06:06
【FAST-LIO2 延迟维修】ROS2 实机部署 Odometry 延迟 1300ms → 68ms 修复全记录

【FAST-LIO2 延迟维修】ROS2 实机部署 Odometry 延迟 1300ms → 68ms 修复全记录

前言 我们在前几期已经部署好了完整的 ROS2 Humble FAST-LIO2 Mid-360 实机链路 【10天速通ROS2-PX4无人机】(二) FAST-LIO2 仿真部署,200HZ IMU前推的无限魅力 本期就来讲讲在实际部署经常会遇到的延迟问题,从时钟同步、消息格式、QoS、缓冲区堆积、…

📅 2026/9/25 1:52:13
AO3镜像站完整指南:3步轻松访问全球同人创作宝库

AO3镜像站完整指南:3步轻松访问全球同人创作宝库

AO3镜像站完整指南:3步轻松访问全球同人创作宝库 【免费下载链接】AO3-Mirror-Site 项目地址: https://gitcode.com/gh_mirrors/ao/AO3-Mirror-Site Archive of Our Own(AO3)是全球最大的非营利性同人创作平台,汇聚了数百…

📅 2026/9/10 1:22:08
MORE NEWS

更多资讯

📰

开放式代码评审实践:让每一行代码都被认真读过

1. 开放式代码评审:让每一行代码都被认真读过先聊个场景。你花了几个小时写了一个功能,提交了合并请求,两天后评审人才姗姗来迟,留下一句“LGTM”就合入了。你心里清楚,这份代码里有几处设计瑕疵,有些边界条…

📰

Atlas 300V 24G推理卡实战:YOLO模型部署与踩坑全解析

1. 先回答那个热搜问题:Atlas 300V 24G到底是不是运算加速卡1.1 从产品命名拆解硬件身份最近后台被问得最多的一条搜索词就是“atlas部署yolo”,紧跟着的就是“atlas 300v 24g 是运算加速卡吗”。我猜很多人是在二手平台或者电商页面上看到这块卡&#x…

📰

7-Zip安装与高效使用指南:压缩解压底层原理与实战技巧

1. 为什么7-Zip是Windows下真正值得花5分钟装上的“隐形生产力工具”你有没有过这样的经历:双击一个.rar文件,弹出“需要购买WinRAR才能解压”的提示框,点“试用”又跳出倒计时广告;或者下载了一个几十GB的开发镜像包,…

📰

Echoes of Agreement: Argument Driven Opinion Shifts in Large Language Models

《Echoes of Agreement: Argument Driven Opinion Shifts in Large Language Models》总结与翻译 一、文章主要内容 (一)研究背景与问题 现有研究多聚焦大型语言模型(LLMs)在政治话题上的偏见评估,但模型对政治话题的立场输出受提示词影响极大,而当提示词本身隐含特定…

📰

2026年彩钢瓦厂房翻新哪家商家专业求推荐,综合成本低服务商实力参考

彩钢瓦厂房翻新行业基础科普:什么是彩钢瓦厂房翻新,哪些场景需要做翻新改造彩钢瓦厂房因自重轻、施工快、造价低的优势,成为国内工业生产厂房、仓储库房最常用的屋面形式,但彩钢瓦属于金属材质,长期暴露在户外环境中&a…

📰

yml/yaml 文件报错 found character that cannot start any token:用 TaoToken 统一 Key 排查配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬