编辑:桃子 好困

【新智元导读】 爆火社区的Mixtral 8x7B模型,今天终于放出了arXiv论文!所有模型细节全部公开了。

还记得一个月前,Mistral AI突然公布的一条磁力链接,引爆了整个AI社区。

紧接着,Mixtral 8x7B的技术细节随之公布,其表现不仅优于Llama 2 70B,而且推理速度提高了整整6倍。

甚至,它在大多数标准基准测试上与GPT-3.5打平,甚至略胜一筹。

今天,这家法国初创正式发布了Mixtral 8x7B混合专家模型(Mixtral of Experts)的论文。

论文地址:https://arxiv.org/abs/2401.04088

网友纷纷表示,最好的开源模型论文终于发布了。

具体技术细节,我们一探究竟。

Mixtral是一个稀疏的混合专家网络,而且是一个纯解码器模型。其中前馈块从一组8个不同的参数组中进行选择。

在每一层,对于每个token,路由网络都会选择其中的两个组「专家」来处理token,并将它们的输出相加。

这项技术不仅增加了模型的参数数量,而且控制了成本和延迟,因为模型每处理一个token只会使用部分参数。

具体来说,Mixtral使用32000个token的上下文信息时进行了预训练。在多项基准测试中,它的性能达到或超过Llama 2 70B和GPT-3.5。

尤其,Mixtral在数学、代码生成和多语言理解任务方面,表现卓越,并在这些领域显着优于Llama 2 70B。

而且研究表明,Mixtral能够成功地从32k token的上下文窗口中检索信息,无论序列长度和信息在序列中的位置如何。

Mixtra基于Transformer架构打造,并使用了「Mistral 7B」论文中一些模型修改方法。

但明显不同的是,Mixtral完全支持32k token的全密集上下文长度,并且前馈块被混合专家层(Mixture-of-Expert layer)所取代。先看如下表1,汇总了模型架构的具体参数。

稀疏混合专家

下图所示,研究人员具体介绍了混合专家层。

这是一个处理输入数据的特殊层,在这里,每个输入数据点都会被分配给8个处理单元(称为「专家」)中的2个。

这个分配过程是由一个路由完成的,但这里的路由并不是我们通常说的网络设备,而是神经网络中的一个组件,它负责决定哪些「专家」来处理特定的数据点。

每个「专家」实际上是一个处理模块,它们各自独立处理被分配的数据,并输出结果。

最终,这层的输出结果是由这2个被选中的「专家」的输出经过特定的加权计算后得到的。

在Mixtral这个系统中,每个「专家」其实就是一个标准的前馈网络模块,这种模块也被用在了我们所说的标准Transformer模型架构中。

混合专家层(Mixture of Experts Layer)

MoE层可以在具有高性能专用内核的单个GPU上高效运行。

比如Megablocks将MoE层的前馈网络(FFN)操作转换为大型稀疏矩阵乘法,显着提高了执行速度,并自然地处理不同专家获得分配它们的可变数量token的情况。

此外,MoE层可以通过标准模型并行技术以及一种称为专家并行(EP)的特殊分区策略分布到多个GPU。

在MoE层执行期间,本应由特定专家处理的token将被路由到相应的GPU进行处理,并且专家的输出将返回到原始token位置。

研究人员对Mixtral和Llama进行了对比研究,为了确保比较的公正性,并重新运行了所有的基准测试,这一次采用了内部开发的评估流程。

研究人员在多种不同的任务上进行了性能评估,这些任务可以分为以下几类:

- 常识推理(零样本): 包括Hellaswag,Winogrande,PIQA,SIQA,OpenbookQA,ARC-Easy,ARC-Challenge,以及CommonsenseQA

- 世界知识(少样本,5个样本): 涵盖了NaturalQuestions和TriviaQA

- 阅读理解(零样本): BoolQ和QuAC

- 数学: GSM8K(少样本,8个样本)使用了多数投票法(maj@8),以及MATH(少样本,4个样本)同样采用了多数投票法(maj@4)

- 编程代码: Humaneval(零样本)和MBPP(少样本,3个样本)

- 综合性测试: MMLU(少样本,5个样本),BBH(少样本,3个样本),还有AGI Eval(少样本,3至5个样本,仅限英语选择题)

可以看到,在所有基准测试中,Mixtral的表现都超过,或至少与Llama 2 70B相当。值得一提的是,在数学和代码生成这两个领域,Mixtral显著优于Llama 2 70B。

Mixtral与不同参数的Llama模型在一系列基准测试中的性能对比

如下表2展示了Mixtral 8x7B、Mistral 7B以及Llama 2 7B/13B/70B和Llama 1 34B的详细结果。

模型参数规模与效率对比

研究人员将Mixtral模型的性能与Llama 2系列做了对比,目的是要探究Mixtral在成本与性能比上的高效性(图3)。

作为一种稀疏的混合专家模型(Sparse Mixture-of-Experts model),Mixtral每处理一个token只需激活13B参数。尽管活跃参数减少了5倍,但Mixtral在大部分领域的表现仍然超过了Llama 2 70B。

此外,需要指出的是,这项分析主要关注活跃参数的数量,这个数量直接关联到推理阶段的计算成本,不过并未涉及内存成本和硬件的使用效率。

用于运行Mixtral的内存成本与其稀疏参数的总数有关,总共为47B,这仍然比Llama 2 70B参数要少。

关于硬件的使用率,研究人员注意到由于专家模型的路由机制,SMoEs层会引入额外的计算成本。

而且当每个硬件设备运行多个专家模型时,由于内存需求增加,也会带来更高的成本。这种模型更适用于可以实现高运算密度的批量处理任务。

与Llama 2 70B和GPT-3.5的性能比较

在表3中,研究人员展示了Mixtral 8x7B与Llama 2 70B、GPT-3.5在性能上的对比结果。

通过对比,研究人员还发现Mixtral在多个方面表现媲美,甚至超越了另外两个模型。

在多模态学习理解(MMLU)的评测中,Mixtral尽管在模型参数量上较小(47B token对比70B),性能却更胜一筹。

至于机器翻译评测(MT Bench),研究人员则是报告了当前最新的GPT-3.5-Turbo模型,即gpt-3.5-turbo-1106版本的性能数据。

可以看到,在所有基准测试中,Mixtral的表现普遍优于Llama 2 70B,唯一的例外是在阅读理解基准测试中,当其激活参数数量仅为Llama 2 70B的1/5时。

特别是在代码和数学领域,Mixtral显著胜过Llama 2 70B。

Mixtral(7B/8x7B)与 Llama 2(7B/13B/70B)在MMLU、常识推理、世界知识、阅读理解、数学和代码方面的比较结果

多语言基准

与Mistral 7B相比较,研究人员在模型预训练阶段,显著提高了多语言数据的比重。

这种增加的模型参数让Mixtral在多语种的性能评估中表现出色,同时还不损失对英语的准确度。

尤其值得一提的是,Mixtral在处理法语、德语、西班牙语和意大利语的任务上,明显胜过了Llama 2 70B,具体成绩可以参见表4。

长距离性能

为了检验Mixtral在处理涉及广泛信息的情境下的表现,研究人员还提出了一项称为passkey检索的任务对其进行测试。

这项任务是专门设计来评估模型在面对一个包含随机插入的passkey的长篇提示信息时,恢复passkey的能力。

图4(左)的结果表明,无论上下文有多长或者passkey出现在文本序列的哪个位置,Mixtral都能保持100%的恢复精度。

而图4(右)则展示了Mixtral在proof-pile数据集的一个子集上的困惑度(perplexity),随着上下文量的增加,其困惑度呈现出单调下降的趋势。

此外,研究人员还开发了Mixtral–Instruct模型,首先在一个指令数据集上进行了监督微调(SFT),然后在一个成对的反馈数据集上采用了直接偏好优化(DPO)。

在MT-Bench的评估中,Mixtral–Instruct取得了8.30的高分(表2),成为了截至2023年12月表现最佳的开源权重模型。

LMSys进行的人工评估结果显示在图6,结果表明Mixtral–Instruct的表现超越了GPT-3.5-Turbo、Gemini Pro、Claude-2.1以及Llama 2 70B chat模型。

最后,研究人员对路由器如何选择「专家」进行了简要分析。特别是在训练期间,是否会有「专家」选择专攻某些特定的领域(如数学、生物学、哲学等)。

为了探究这一点,研究人员对The Pile验证数据集的不同子集进行了「专家」选择分布的测量,结果如图7所示。涉及模型的第0层、第15层和第31层(最后一层)。

出乎意料的是,这里并没有发现明显的基于主题分配「专家」的模式。

比如,在所有层中,无论是arXiv论文(用LaTeX编写)、生物学领域(PubMed摘要)还是哲学领域(PhilPapers文件),「专家」的分配分布都非常相似。

只有在数学领域(DM Mathematics)中,「专家」的分布略有不同。

研究人员认为,这种差异可能是因为数据集本身是合成的,且对自然语言的覆盖上有限,尤其是在模型的第一层和最后一层,隐藏状态分别与输入和输出嵌入高度相关。

而这也表明,路由器确实表现出了一些结构化的句法行为。

图8展示了不同领域(Python 代码、数学和英语)的文本示例。其中,每个token都用不同的背景色标注,便于查看对应分配到的「专家」。

可以发现,像Python中的「self」和英文中的「Question」这样的词语,虽然包含有多个token,但往往被分配给同一个「专家」。同样,相邻的token也会被分配给同一位「专家」。

在代码中,缩进的token也总是被指派给相同的「专家」,这一点在模型的第一层和最后一层尤为显著,因为这些层的隐藏状态与模型的输入和输出更加紧密相关。

此外,根据The Pile数据集,研究人员还发现了一些位置上的邻近性(positional locality)。

表5展示了在不同领域和网络层中,连续token被同一个「专家」选中的比例。

在网络的上层,这种连续性的重复分配远高于随机分配的概率。这一现象对于模型的优化——加速训练和推理过程,有重要的启示。

例如,在专家并行(Expert Parallelism)处理中,那些位置上具有高邻近性的情况更容易导致某些「专家」被过度使用。不过,这种邻近性也可以用于缓存技术。

关于这些「专家」被选择的频率,图10提供了一个更全面的视角,涵盖了所有网络层和不同的数据集。

在这篇论文中,研究人员介绍了第一个性能达到SOTA的开源专家混合网络——Mixtral 8x7B。

在人类评估基准中,Mixtral 8x7B Instruct的表现超越了Claude-2.1、Gemini Pro以及GPT-3.5-Turbo。

Mixtral的一大特点是,它在处理每个token时,仅激活使用13B参数,而这一数值远低于Llama 2 70B所使用的70B参数。

现在,研究人员已经把训练和微调后的模型在Apache 2.0开源许可下公开,以便社区成员可以自由使用。

参考资料:

https://arxiv.org/abs/2401.04088

https://github.com/mistralai/mistral-src

https://mistral.ai/news/mixtral-of-experts/ 返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。