社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【深度学习】图解Transformer和MoE的差别

机器学习初学者 • 4 月前 • 112 次点击  

专家混合(MoE)是一种流行的架构,比如最近火爆天的 DeepSeek V3 和 R1 就是这类模型。它利用不同的“专家”来改进 Transformer 模型。

下面的示意图展示了它们与 Transformer 的不同之处。

图片
图片

Transformer 和 MoE 在 decoder 块中有所不同:

  • Transformer 使用前馈网络。

  • MoE 使用 experts,它们是前馈网络,但与 Transformer 中的网络相比更小。

在推理过程中,将选择专家的子集。这使得 MoE 中的推理速度更快。

图片
图片

由于网络包含多个解码器层:

  • 文本会在不同的层中经过不同的专家。

  • 每个 token 选择的专家也各不相同。

但是,模型如何决定哪些专家是理想的呢?

这由路由器(Router)来完成。接下来我们来讨论它。

图片
图片

路由器就像一个多分类分类器,它对专家生成 softmax 分数。根据这些分数,我们选择前 K 个专家。

路由器与网络一起训练,并学习如何选择最合适的专家。

但这并不简单。让我们来看看其中的挑战!

图片
图片

挑战 1)注意训练初期的这一模式:

  • 模型选择“专家 2”

  • 该专家变得稍微更好

  • 可能会再次被选中

  • 该专家学到更多知识

  • 又被选中

  • 学到更多知识

  • 如此循环!

许多专家因此训练不足!

图片
图片

我们通过两个步骤来解决这个问题:

  • 在路由器的前馈输出中添加噪声,使其他专家的 logits 更高。

  • 将除前 K 个之外的所有 logits 设为负无穷大,这样在 softmax 之后,这些分数就变为零。

这样,其他专家也有机会参与训练。

图片
图片

挑战 2)某些专家可能会比其他专家处理更多的 token,导致部分专家训练不足。

我们通过限制每个专家可处理的 token 数量来避免这种情况。

如果某个专家达到上限,输入的 token 就会被传递给下一个最合适的专家。

MoE 具有更多的参数需要加载,但由于每次仅选择部分专家,因此只有一部分参数被激活。

这使得推理速度更快。@MistralAI 的 Mixtral 8x7B 就是一个基于 MoE 的知名大型语言模型(LLM)。

下面是对比 Transformer 和 MoE 的示意图!

图片
图片

(完)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183734