Mixtral of Experts:跑得像 13B 的 47B 稀疏专家模型
Mixtral 每层从 8 个专家中只选 2 个,共 47B 参数、每 token 仅约 13B,以 Apache 2.0 开源,持平或超过 Llama 2 70B 和 GPT-3.5。
快速答案
Mixtral 8x7B 是一个稀疏专家(Sparse MoE)语言模型:它存了 47B 总参数,但每个 token 只激活约 13B,因为每层都有一个路由网络从 8 个专家前馈块里只挑 2 个来算。靠这份 13B 的算力预算,它在 Mistral 评测的每一项基准上都持平或超过 Llama 2 70B 与 GPT-3.5,而且基座版和指令版都以宽松的 Apache 2.0 协议开源。
稀疏路由是怎么工作的
Mixtral 沿用 Mistral 7B 的架构,只把每层那唯一的前馈块换成 8 个,也就是「专家」。一个很小的路由网络读取每个 token 的隐状态,给 8 个专家打分;只有得分最高的 2 个会真正运行,输出再按路由的 softmax 权重加权合并,剩下 6 个专家对这个 token 就闲着。
关键在于:挑选是按 token、按层进行的,不是按整段提示。同一句话里相邻的两个 token 可能被路由到完全不同的专家组合,而一个 token 在第 5 层的专家与它在第 20 层的专家也毫无关系。所以「8x7B」这个名字两头都误导人:专家共享注意力层,总数是 47B 而非 56B;只有前馈路径是稀疏的,所以每 token 真正激活的是 13B,而不是全部 47B。
为什么 47B 参数只花 13B 的钱
这正是它的全部卖点。一个稠密的 47B 模型,会拿 47B 参数去乘每一个 token。Mixtral 永远只碰被选中的 2 个专家,所以每 token 的算力(FLOPs)等同于一个约 13B 的稠密模型,而模型的知识容量却是一个大得多的网络的容量。你拿到的是大模型的质量,付的是中型模型的推理算力。
但要老实说清代价:代价在显存。路由是动态的,你无法预知某个请求会用到哪些专家,因此全部 47B 参数都必须常驻显存。Mixtral 省的是算力和吞吐,省不掉的是显存占用——它要 47B 模型的内存,才能跑出 13B 的速度。这笔账,对一台批量处理大量请求的繁忙服务器很划算,对单台笔记本则很难受。
关键结果
- 参数账: 每层 8 个专家、路由选 2、总参数 47B、每 token 激活约 13B、上下文 32k token。
- 对比 Llama 2 70B: Mixtral 在所有上报基准上持平或胜出,而推理时激活的参数大约只有它的五分之一。
- 差距最大处: Mistral 特别指出 Mixtral 在数学、代码生成、多语言基准上「大幅超越」Llama 2 70B。
- 对比 GPT-3.5: 基座模型在评测套件上持平或超过 GPT-3.5。
- 指令版: Mixtral 8x7B – Instruct 在人评基准上超过 GPT-3.5 Turbo、Claude-2.1、Gemini Pro 以及 Llama 2 70B – chat。
- 协议: 基座与指令版均以 Apache 2.0 开源——商用、微调、再分发全部许可。
为什么现在重要
Mixtral 是把稀疏 MoE 从实验室技巧变成开源社区真能下载、真能部署的那篇论文。在它之前,强力的开源模型都是稠密的(Llama 系列),而 MoE 的成果大多锁在闭源前沿实验室里。Mixtral 给了所有人一个具体、协议宽松、且路由确实带来收益的模型,并重置了性价比前沿:GPT-3.5 级别的质量,约 13B 的推理成本。这里 Apache 2.0 协议和架构同样关键——正是它让 MoE 推理框架、微调版、量化版在几周内遍地开花。
局限与存疑
算力上的胜利是真的,但那笔显存账单不是可选项:你得按 47B 参数备显存,才能享受 13B 的推理速度,这让 Mixtral 在单张消费级显卡上很别扭,也把多数用户逼向量化。论文也没有声称 Mixtral 「理解」自己的路由——分析显示路由并没有把专家干净地分配给人类可读的主题或领域,所以「专家」是个架构标签,不是语义标签,你没法靠指定某个专家来操控它。「8 选 2」是一个固定的设计选择,而非推导出的最优解;而这些基准胜绩是 Mistral 自己对 2023 年模型的评测,因此那是一个快照,不是一项长期成立的断言。这些都不动摇核心结论,但它意味着「跑得像 13B 的 47B」这句话,后面永远要补一句「——前提是你装得下 47B」。
常见问题
Mixtral 8x7B 每个 token 实际用多少参数?
每 token 约激活 13B 参数,总数是 47B。路由在每层从 8 个专家里选 2 个,所以对任一 token 网络的大部分都被跳过——尽管全部 47B 仍必须加载进显存。
Mixtral 真的比 Llama 2 70B 强吗?
在 Mistral 上报的基准上,Mixtral 8x7B 全面持平或超过 Llama 2 70B,在数学、代码、多语言任务上更是大幅领先,而推理时激活的参数大约只有它的五分之一。
Mixtral 8x7B 为什么不是 56B 模型?
因为 8 个专家只替换前馈块;注意力层被所有专家共享。共享参数只算一次而非算八次,总数因此是 47B,不是 56B。
Mixtral 能商用吗?
能。基座版和指令微调版的 Mixtral 8x7B 都以 Apache 2.0 开源,许可商用、微调与再分发。
Mixtral 的专家会按数学、代码这类主题分工吗?
不会按人类可读的方式分工。作者发现路由并不把专家分配给可解释的领域;路由是为性能而学的,所以「专家」不是一个你能主动挑选的主题专才。
一句话:每 token 从 8 个专家里挑 2 个,一个 47B 模型就能像巨人那样思考、却像 13B 那样收费——只要你装得下它。阅读 arXiv 原文。