论文解读:Mixtral 8×7B——MoE 如何让大模型更高效?

随着大语言模型参数量越来越大,模型能力不断提升,但训练成本、推理速度和显存占用也越来越高。
一个自然的问题是:
能不能让模型拥有大量参数,但每次只使用其中一部分?
Mistral AI 在论文 《Mixtral of Experts》 中提出了 Mixtral 8×7B。它采用稀疏混合专家模型,也就是 Sparse Mixture of Experts,简称 MoE,在模型容量和计算成本之间取得了新的平衡。
一、论文基本信息
论文名称: Mixtral of Experts
研究团队: Mistral AI
发布时间: 2024 年1月
论文链接: arXiv 原文页面
论文介绍了基础模型 Mixtral 8×7B,以及经过指令微调的 Mixtral 8×7B Instruct。两个版本均以 Apache 2.0 许可证发布。
二、Mixtral 想解决什么问题?
传统大语言模型通常采用“稠密模型”结构。
所谓稠密模型,就是每输入一个 Token,模型中的大部分参数都要参与计算。模型参数越多,每次推理需要的计算量通常也越大。
Mixtral 使用的 MoE 架构则不同。它在每一层中准备了多个“专家网络”,但处理一个 Token 时,只激活其中少数几个专家。
这样就能做到:
模型拥有较大的参数容量;
每次推理不必使用全部参数;
在控制计算成本的同时,提高模型能力。
可以把它理解为一个由多个专业成员组成的团队。每次遇到任务时,不需要所有成员一起工作,而是由系统选择少数合适的成员处理。
三、Mixtral 8×7B 是什么结构?
Mixtral 8×7B 的基础结构与 Mistral 7B 相似,仍然是只包含解码器的 Transformer。
主要区别在于:普通 Transformer 中的前馈神经网络,被替换成了由 8 个专家网络组成的 MoE 层。
它的处理流程可以简化为:
输入 Token → 自注意力 → 路由器 → 选择两个专家 → 合并结果 → 输出
这里最关键的部分是路由器。
四、路由器是做什么的?
每当一个 Token 进入 MoE 层时,路由器都会给8个专家分别计算一个分数。
随后,系统选择得分最高的两个专家,也就是 Top-2 路由。这两个专家分别处理当前 Token,最后再将它们的输出按照路由权重合并。
例如,输入一句代码相关的问题时,某些专家可能获得较高分数;输入自然语言内容时,路由器又可能选择另外的专家。
不过,“专家”只是神经网络模块,并不代表研究人员提前规定了哪个专家负责数学、哪个专家负责代码。专家之间的分工是模型在训练过程中自己学习形成的。
五、为什么叫 Mixtral 8×7B?
“8×7B”很容易让人认为模型总共有56B参数,但实际情况没有这么简单。
论文报告称,Mixtral 每个 Token 可以访问约 47B 参数,但在一次推理中只会激活约 13B 参数。原因是每层虽然有8个专家,但每个 Token 只会进入两个专家。
因此,Mixtral 的特点可以概括为:
拥有接近大型模型的参数容量,但每次只进行一部分计算。
这也是 MoE 模型相比同规模稠密模型的重要优势。
六、Mixtral 的性能怎么样?
论文在数学、代码、多语言理解和常识推理等任务上对 Mixtral 进行了测试。
论文报告称,Mixtral 8×7B 在其评测集合中能够匹配或超过 Llama 2 70B,并在数学、代码生成和多语言任务上表现出明显优势。模型还支持最长约 32K Token 的上下文。
经过指令微调的 Mixtral 8×7B Instruct,则更适合聊天、问答和执行用户指令。
这些结果说明,模型效果并不只取决于“每次计算使用多少参数”。通过合理的专家路由,MoE 模型可以用较少的激活参数,获得更大的模型容量。
七、MoE 为什么能够提高效率?
假设一个普通模型有几十亿参数,那么处理每个 Token 时,这些参数通常都要参与计算。
而在 Mixtral 中:
8个专家都保存在模型中;
路由器每次只选择两个专家;
没被选中的专家不执行当前 Token 的前馈计算。
因此,它在增加模型总容量时,不会让每个 Token 的计算量按照专家数量同步增长。
这种方式被称为稀疏激活。
它让模型容量与单次计算成本在一定程度上实现了解耦,也是 Mixtral 能够兼顾能力和效率的关键。
八、Mixtral 也有哪些局限?
MoE 并不意味着模型部署完全没有压力。
1. 模型总参数仍然很大
虽然每次只激活部分参数,但所有专家通常仍然需要被存储。因此,模型权重占用的显存或内存并不会只有13B模型那么小。
2. 路由机制更加复杂
系统需要决定每个 Token 应该交给哪些专家。路由不均衡时,可能出现部分专家非常繁忙、部分专家很少被使用的问题。
3. 通信成本可能较高
在多张 GPU 上训练或部署时,不同 Token 可能被分配给不同设备上的专家,因此会产生额外的数据传输和通信开销。
所以,MoE 减少的是每个 Token 的部分计算量,并不代表训练和部署一定比小型稠密模型更简单。
九、这篇论文有什么意义?
Mixtral 8×7B 证明了一条重要的大模型扩展路线:
提升模型能力,不一定要让所有参数在每次推理时同时工作。
MoE 架构让模型可以拥有更多专家和更大的知识容量,同时通过稀疏路由控制实际计算量。
这种设计后来也被更多大语言模型采用。对于需要控制推理成本,又希望保持较强模型能力的应用来说,MoE 已经成为一种重要架构选择。
十、总结
Mixtral 8×7B 的核心思路并不复杂:
在每一层中设置8个专家;
路由器根据当前 Token 选择两个专家;
只有被选中的专家参与计算;
将两个专家的结果合并后继续传递。
它用“多个专家、按需调用”的方式,在模型容量和计算效率之间取得了平衡。
简单来说:
稠密模型像是每次让整个团队一起处理任务,而 Mixtral 会根据问题,只安排两名合适的成员参与。
这篇论文不仅展示了 Mixtral 模型本身,也让 MoE 成为开源大语言模型中更受关注的一条技术路线。