最近这一两周不少公司已开启春招。
不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。
最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑,分享技术面试中的那些弯弯绕绕。
总结如下:
喜欢本文记得收藏、关注、点赞
最近一星球成员面试月之暗面大模型算法岗,问到:Transformer和MoE的差别在哪里? 今天我来给大家讲解一下
专家混合(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 的示意图: