大语言模型中MoE究竟是怎么工作的?
这一节继续讲大语言模型的基础知识——MoE(混合专家)。先回顾一下上几节的内容:之前学过 Transformer 里的 self-attention,它让我们拿到了带有上下文信息的向量。
这个向量接下来会做残差连接和归一化,然后进入下一层——FFN(前馈网络)。为什么要加 FFN?因为在 self-attention 里,算 Q、K、V 的本质都是一些线性变换,学不到很深的东西。学过深度学习的都知道,网络里需要有激活函数(比如 ReLU、GELU)来做非线性变换,模型才能学到更丰富的知识。FFN 干的正是这件事——它相当于一个全连接的深度神经网络。
但这里有个问题:如果我们只有一个大的 FFN,那么所有从 self-attention 出来的向量都会丢进同一个 FFN——写代码的、写作文的、做其他事情的,全都经过同一个网络。有没有更好的办法,既能加速这一层,又能让它更专业?MoE 就是答案。
MoE 的思路是:把一个大的 FFN 拆成一个个小参数的 FFN,然后在上面再搭一个「路由」(router)。每个从 self-attention 出来的向量先经过 router,由它判断这个 token 属于写作类型还是编码类型,再丢给对应的 FFN。因为有些 FFN 更擅长写代码,有些更擅长写作——这些分工是在训练时学好的。
说白了,这个 router 加上一堆 FFN 组成的「专家池」,就是我们所说的 MoE(混合专家模型)。








