热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >图解MoE是什么,以及大模型为什么需要?

图解MoE是什么,以及大模型为什么需要?

来源:互联网 更新时间:2026-08-13 14:14

MoE,全称 Mixture of Experts,混合专家模型。很多人猜测 GPT-4 就采用了 MoE 架构,通过让多个模型并行工作来加速推理。阿里通义千问(Qwen)同样使用了 MoE,效果相当出色。

这篇文章专门面向完全不了解 MoE 的读者,用最直观的方式讲清楚它的基本原理。

1 动机:为什么要提出 MoE?
MoE 之前的模型有什么问题?

先看一个关键场景:当模型在预测下一个 token 时,需要动用大量神经元进行计算,比如下图这个 7x8 的神经元网络(虽然图里是 7x8,但意会一下就好)。

图解MoE是什么,以及大模型为什么需要?

问题在于,经验表明,真正对最终结果起决定性作用的神经元,可能只占很小一部分,就像图中那些黄色的点。

于是就有了一个很自然的想法:能不能把这些关键的神经元重新排列,比如分组,让它们各自组成独立的子模型?这样一来,当模型需要查询某个特定领域的“专家知识”时,就只需要跟对应子模型里的神经元打交道,而不用跟整个网络矩阵硬算。

2 MoE 是什么?

具体怎么实现“把相关神经元排到同一列”?关键在于设计一个 Router(路由器)。它的职责很明确:决定当前输入的数据应该交给哪个子模型(也叫“专家”)去处理。这就是 MoE 的核心操作。

Router 本身也是一个映射机制:输入一些特征向量,它会输出一个 one-hot 向量,精准指定由哪个子网络来承担本次推理任务。

所以推理流程就变成了这样:输入数据先经过 Router,Router 指定一个专家,然后数据交给那个专家计算,最终得到输出 token。训练时,根据 loss 同时更新对应专家的参数和 Router 的参数。这里的 loss 可以简化为:Loss = Actual - Predicted tokens。

这样做的直接好处是:虽然模型的参数量和原来完全一样,但推理时只有一个专家参与计算,速度自然快很多。

3 这么做有什么问题?

不过,这套方案在实践中会遭遇一个典型的麻烦:训练过程容易导致“富者愈富、穷者愈穷”。某个专家如果稍强一些,Router 就会倾向于把更多数据分配给它,让这个专家越来越强,而其他专家则缺乏训练机会,整体效果反而下降。怎么破解?

一种常见策略是给 Router 的输出增加噪声。比如 Router 原本预测出 [0,0,0,0,0,0,1,0],加上噪声后变成 [0.04, 0.01, 0.04, 0.06, 0.03, 0.05, 0.75, 0.02],然后在这个概率分布上随机采样。这样能让数据分散到所有专家,避免出现“旱的旱死、涝的涝死”的局面。

另一种方法是对 Router 的选择施加惩罚。在原有的 loss 上增加一项:如果 Router 没有把数据均匀分配给所有专家,就给它惩罚,即 Loss = Actual - Predicted tokens + Penalty。这会迫使 Router 尽量公平分配数据。

4 MoE 有什么影响

MoE 能减少内存消耗吗?

答案是否定的。假设在边缘设备(比如笔记本)上运行 LLaMA 7b 的 Int4 量化模型,把它改成 MoE 形式后,参数量不变,推理时占用的显存也不会变。但好处是计算速度会更快,因为只需要在一个专家上做运算。

MoE 会减少计算开销吗?

答案是肯定的。可以把不同专家部署在不同 GPU 上,比如 8 个专家放在 8 块 GPU 上。当多个用户同时发送请求时,Router 可以实时分组,让每个 GPU 上的专家分别计算,计算完成后汇总结果,再交由 Router 进行下一轮分配和计算。这个过程可以高效并行。

MoE 会让训练变慢吗?

确实会。因为给 Router 增加噪声后,原本属于某个专家的数据可能被错分给其他专家,这会导致整体的训练和收敛速度变慢。

针对这个问题,学术界提出了改进方案:fast feed forward networks(快速推理网络)或 binary tree networks(二叉树网络)。它不再使用单一 Router 向 8 个专家分发数据,而是用多个 Router 逐层下发。每个 Router 只需预测一个概率值 p,由 p 决定数据是往左下方还是右下方传递(0/1 决策)。这种设计天然能保证数据分布比较均匀,无需额外添加噪声或惩罚。这样一来,MoE 的训练速度可以逼近标准 GPT,同时推理时依然保持加速优势。

5 MoE 的实验结果

下面的表格展示了不同配置下的效果。一个专家的宽度设为 32,所以 width=64 表示有 2 个专家,width=128 表示有 4 个专家。在 fast feedforward 中,w=128 意味着二叉树有两层,共 3 个 Router 向 4 个专家分发数据。表中 MA 代表记忆能力,ETT 是训练所需的 epoch 数量,GA 是生成能力指标。

从表格第一行数字可以清楚地看到:单纯的 MoE(中间列)虽然训练轮数远多于标准的前馈网络(左边列),但 MA 效果反而更差。而 fast feedforward 在训练轮数和效果上都和标准前馈网络接近,说明它在保持训练效率方面非常关键。

另一张表展示了 fast feedforward 的效果变化。l=32 表示有 128/32=8 个专家,l=1 表示有 128/1=128 个专家。可以看到,随着 Router 二叉树层数增加,推理速度越来越快,但效果也会有轻微下降。

需要提醒的是,上面这两张表是在较小规模的网络上做的实验,对于 GPT-3 这样的大模型是否具有同样的敏感度,目前还不能完全确定。

6 总结 MoE

从宏观视角看,在传统神经网络中,每个神经元都可以连接到下一层的所有其他神经元。而 MoE 的做法是对神经元进行分组,限制每个神经元只能连接到本组内的下一层神经元。这种方法在思路上有点像 multi-heads,但两者有本质区别:multi-heads 分组是为了增强各组内部的特征表达,并没有减少计算量;而 MoE 在推理时能够显著削减计算开销。

最终的结果是:MoE 以牺牲少许精度为代价,能让推理速度提升数倍。对于大模型部署来说,这无疑是一个巨大的利好。

如今,MoE 已经衍生出多种变体,比如 LLaMA-MoE 等,有兴趣的读者可以自行深入研究。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc