Mixtral 8x7B

  • 论文地址:https://arxiv.org/pdf/2401.04088.pdf
  • 项目地址:https://github.com/mistralai/mistral-src
  • 论文主页:https://mistral.ai/news/mixtral-of-experts/
专家层的混合。每个输入向量由路由器分配给 8 个专家中的 2 个。该层的输出是两个所选专家输出的加权和。在 Mixtral 中,专家是标准前馈块,就像普通变压器架构中一样

Mixtral 8x7B由法国的Mistral AI发布,性能直逼Llama2-70B,超越了GPT-3.5。此前,由于 OpenAI 团队一直对 GPT-4 的参数量和训练细节守口如瓶。Mistral 8x7B 的放出,无疑给广大开发者提供了一种「非常接近 GPT-4」的开源选项。要知道,很早之前就有人爆料,OpenAI 也是采用了「混合专家模型」(Mixture of Experts,MoE)的构架来搭建 GPT-4。

Mixtral 8x7B 是一种具有开放权重的稀疏专家混合模型 (Sparse Mixture of Experts : SMoE),在大多数基准测试中都优于 Llama 2 70B 和 GPT-3.5。Mixtral 可以在小批量大小下实现更快的推理速度,并在大批量大小下实现更高的吞吐量。Mixtral (即 Mixtral 8x7B)与单个 Mistral 7B 架构相同。Mistral 7B 模型同样来自这家法国人工智能初创公司 Mistral AI ,这篇论文发表于去年 10 月,在每个基准测试中,Mistral 7B 都优于 Llama 2 13B,并且在代码、数学和推理方面也优于 LLaMA 1 34B。

与 Mistral 7B 不同的是,Mixtral 8x7B 是一种仅包含解码器的模型,每层由 8 个前馈块(即专家)组成。对于每个 token,在每一层,路由器网络都会选择两名专家来处理当前状态并组合他们的输出。尽管每个 token 只看到两个专家,但所选的专家在每个时间步上都可能不同。因此,每个 token 可以访问 47B 参数,但在推理过程中仅使用 13B 激活参数
从这里我们也可以看出,Mixtral 8x7B 并不是大家认为的有 8 个 Mistral 7B 模型,名字中的 8 代表 8 个专家。

Mixtral 预训练上下文的大小为 32k,在多项基准测试中,它的性能达到或超过 Llama 2 70B 和 GPT-3.5。尤其是,Mixtral 在数学、代码生成和需要多语言理解的任务方面表现出了卓越的能力,并在这些领域显著优于 Llama 2 70B。实验表明,Mixtral 能够成功地从 32k token 的上下文窗口中检索信息,无论序列长度和信息在序列中的位置如何。
除了 Mixtral 8x7B,该研究还推出了 Mixtral 8x7B – Instruct 聊天模型,其性能在人类评估基准上明显超过了 GPT-3.5 Turbo、Claude-2.1、Gemini Pro 和 Llama 2 70B 聊天模型。在 BBQ 和 BOLD 等基准中,Mixtral – Instruct 也显示出更少的偏见。

不过,有研究者表示 Mixtral 中的专家似乎专注于语法而不是领域,特别是在初始层和最终层(参见路由分析部分)

Mixtral 8x7B 如此令人兴奋的原因在于它探索了一种新的架构范式,即「专家混合」的方法,与大多数 LLM 所遵循的方法形成鲜明的对比。MoE 结合了多个专家模型的优势来解决问题,在 MoE 中,仅使用一名或少数专家就能进行预测。这种方法有两个主要组成部分:

  • 路由器:决定对于给定输入信任哪个专家以及如何权衡每个专家对于特定输入的结果
  • 专家:专门研究问题不同方面的个体模型。

在 Mixtral 的案例中,有八位专家,其中两位是被选中的。我们接下来看具体细节。

架构细节

Mixtral 基于 Transformer 架构,支持上下文长度达到 32k token,并且前馈块被 Mixture-of-Expert(MoE)层取代。

稀疏专家混合

对于给定的输入 x,MoE 模块的输出由专家网络输出的加权和决定,其中权重由门控网络的输出给出。即给定 n 个专家网络 {E_0, E_i, …, E_(n−1)},则专家层的输出为:

这里,G (x)_i 表示第 i 个专家的门控网络的 n 维输出,E_i (x) 是第 i 个专家网络的输出。不过实现 G (x) 有多种替代方案,其中简单且高性能的方法是通过在线性层的 Top-K logits 上采用 softmax 来实现。即:

MoE 层可以在具有高性能专用内核的单个 GPU 上高效运行。例如,Megablocks 将 MoE 层的前馈网络(FFN)操作转换为大型稀疏矩阵乘法,显著提高了执行速度。此外,MoE 层可以通过标准模型并行技术以及一种称为专家并行 (EP) 的特殊分区策略分布到多个 GPU 上。 
在 MoE 层执行期间,本应由特定专家处理的 token 将被路由到相应的 GPU 进行处理,并且专家的输出将返回到原始 token 位置。
在 Transformer 模型中,MoE 层独立的应用于每个 token,并取代 Transformer 块的前馈 (FFN) 子块。对于 Mixtral,该研究使用与专家函数 E_i (x) 相同的 SwiGLU 架构,并设置 K = 2。这意味着每个 token 都被路由到具有不同权重集的两个 SwiGLU 子块。将所有这些放在一起,输入 token x 的输出 y 计算如下:

实验及结果

研究者将 Mixtral 与 Llama 进行了比较,并使用自己的评估 pipeline 重新运行了所有基准,以进行公平比较。该研究对以下各种任务的性能进行了测量:常识推理、世界知识、阅读理解、数学、代码等。具体任务详情见原论文.

表 2 列出了 Mixtral、Mistral 7B 和 Llama 2 7B/13B/70B 以及 Llama 1 34B 的详细结果。

图 2 比较了 Mixtral 和 Llama 在不同类别任务中的性能。在大多数指标上,Mixtral 都超过了 Llama 2 70B。特别是在代码和数学基准测试中,Mixtral 的表现更胜一筹。

研究者将 Mixtral 与 Llama 2 系列进行了比较。如图 3 所示,作为一个稀疏专家混合模型,Mixtral 每个 token 仅使用 13B 个激活参数。尽管激活参数减少了 5 倍,Mixtral 在大多数类别中仍然能够胜过 70 亿参数的 Llama 2。

多语言基准测试
与 Mistral 7B 相比,研究者在预训练时大幅提高了多语言数据的采样比例。额外的容量使 Mixtral 在多语言基准测试中表现出色,同时保持了较高的英语准确率。如表 4 所示,Mixtral 在法语、德语、西班牙语和意大利语方面的表现明显优于 Llama 2 70B。

长距离性能
图 4(左)结果表明,无论上下文长度或 passkey 在序列中的位置如何,Mixtral 的检索准确率都达到了 100%。图 4(右)显示,随着上下文大小的增加,Mixtral 在 proof-pile 数据集的一个子集上的困惑度单调降低。

图片

偏见基准测试
研究者使用他们自己的评估框架对 Llama 2 和 Mixtral 在 BBQ 和 BOLD 上进行基准测试,结果如表 5 所示。与 Llama 2 相比,Mixtral 在 BBQ 基准测试中展现出较少的偏见。在 BOLD 的中,更高的平均情感得分意味着更积极的情感,而更低的标准差表示该群组内的偏见较少。总体而言,Mixtral 比 Llama 2 显示出更积极的情感,并且各组内的差异类似。

图片

路由分析
研究者对路由器选择专家的情况进行了少量分析,他们尤其想知道在训练过程中,一些专家是否专攻某些特定领域,如数学、生物学、哲学等。
为了研究这一点,研究者测量了在 The Pile 验证数据集的不同子集中所选专家的分布情况。图 7 展示了第 0 层、第 15 层和第 31 层的结果。

图片

令人惊讶的是,研究者在根据主题分配专家时没有观察到明显的模式。例如,在所有层中,ArXiv 论文(用 Latex 编写)、生物学(PubMed Abstracts)和哲学(PhilPapers)文档的专家分配分布非常相似。只有在 DM 数学中,专家的分布略有不同。
这表明路由器表现出一些结构化的语法行为。
图 8 显示了不同领域(Python 代码、数学和英语)的文本示例,其中每个 token 都用与其所选专家相对应的背景色突出显示。从图 8 中可以看到,连续的 token 往往被分配给相同的专家。
每个 token 都用第一个专家选择着色。专家的选择似乎更符合语法而不是领域,特别是在初始层和最后层。

图片

表 5 显示了每个领域和层中连续 token 获得相同专家分配的比例。对于较高的层,重复连续分配的比例明显高于随机分配。

图片

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注