AI 文摘

大模型专家混合MoE模型详解





作者: AINLP 来源: AINLP

作者:Miller

整理:青稞AI

Mixtral 8x7B 的推出(参见公告[1]和模型卡片[2]在开放 AI 领域引发了广泛关注,特别是对于专家混合(Mixture-of-Experts:MoEs)这一 Transformer 技术的热议。在这篇博客中,我们将深入探讨 MoEs 的构建基础、它们的训练方法,以及在推理服务中需要考虑的各种权衡因素。

太长不看版

MoEs:

  • • 相比于常规密集型模型,MoEs 的预训练过程更加快速

  • • 在具有相同数量参数的模型中,MoEs 展现出更快的推理速度

  • • 由于需要将所有专家模块加载到内存中,因此对 VRAM 的需求较高

  • • 虽然在微调方面面临许多挑战,但最近关于 MoE 指令调优的研究进展显示出积极的前景

什么是“专家混合体”(MoE)?

在提升模型质量的关键因素中,模型的规模占据了重要位置。在固定的计算预算条件下,相比于训练一个步骤多但规模小的模型,训练一个步骤少但规模大的模型更为高效。

专家混合体让我们能够在远低于常规的计算资源下进行模型预训练,这意味着你可以在相同的计算预算下显著扩大模型或数据集的规模。尤其值得注意的是,MoE 模型在预训练阶段能够比其密集型等效模型更快地达到相同的质量。

那么,MoE 究竟是什么呢?在 Transformer 模型的背景下,MoE 主要由以下两个核心部分组成:

  • • 稀疏的 MoE 层取代了传统的密集型前馈网络(FFN)层。MoE 层内部设有一定数量的“专家”(例如 8 个),每个专家实际上是一个独立的神经网络。在实际应用中,这些专家一般是 FFN,但它们也可以演变成更复杂的网络结构,甚至可以是 MoE 自身,从而构建起层级化的 MoE 结构!

  • • 一个门控网络或路由器负责决定将哪些 tokens 分配给哪个专家。比如,在下面的图示中,“More”这个 token 被送往第二个专家,而“Parameters”这个 token 被送往第一个专家。正如我们稍后将会探讨的,我们可以将一个 token 送往多个专家。如何将 token 正确地路由到一个专家是在使用 MoE 时需要做出的重要决策之一:这个路由器由可学习的参数构成,并且会与网络的其他部分同时进行预训练。

MoE layer from the Switch Transformers paper

在 MoEs(混合专家系统)架构中,我们将 Transformer 模型中的每个前馈网络(FFN)层替换为 MoE 层,这个层由一个门控网络和一定数量的专家共同构成。

MoEs 虽然能够高效地进行预训练并且在推理速度上超越密集型模型,但同时它们也面临一些挑战:

  • • 在训练阶段:MoEs 提供了极高的计算效率预训练,但在微调过程中却面临泛化的困难,这常常导致过拟合的问题。

  • • 在推理阶段:虽然 MoE 模型拥有众多参数,但在推理时只有部分参数被使用。这意味着与拥有同等参数数量的密集型模型相比,MoE 的推理速度要快得多。然而,所有的参数都需要加载到 RAM 中,因此对内存的需求相当高。例如,对于一个像 Mixtral 8x7B 的 MoE,我们需要有足够的 VRAM 来支持一个 47B 参数的密集模型。为何是 47B 而非 8 x 7B = 56B 呢?这是因为在 MoE 模型中,只有 FFN 层被当做独立的专家,其他部分的模型参数则是共享的。同时,假设每个令牌只用两个专家进行推理,那么推理速度(FLOPs)相当于使用一个 12B 模型(不是 14B 模型),因为它计算的是 2x7B 的矩阵乘法,但某些层是共享的(我们会很快详细解释这一点)。

现在我们已经对 MoE(混合专家系统)有了一个基本的认识,我们来看看是哪些研究进展推动了它们的发明。

MoEs 发展简史

MoEs(混合专家模型)最早出现在 1991 年的研究论文 Adaptive Mixture of Local Experts 中。这一概念与集成方法类似,旨在通过监督程序来控制一个由不同网络组成的系统,其中每个网络负责处理训练样本的特定子集。这些网络,被称为“专家”,各自专精于输入空间的不同区域。那么如何选择这些专家呢?答案是由一个门控网络来决定,它负责为每个专家分配权重。在训练阶段,专家和门控网络都会接受训练。

在 2010 至 2015 年间,有两个不同研究领域为 MoE 的进一步发展作出了显著的贡献:

  • 专家作为关键组件 :在传统的 MoE 架构里,整个系统由一个门控网络和若干专家构成。将 MoEs 作为整个模型的构成,已经在支持向量机(SVM)、高斯过程以及其他技术中得到应用。Eigen、Ranzato 和 Ilya 的研究则探讨了将 MoEs 作为更深层次网络的组成部分。这样的设计使得 MoEs 可以作为多层网络中的某个层级存在,实现模型的大规模化与高效率并存。

  • 条件计算 :传统网络会将所有输入数据通过每一个层级进行处理。在这个时期,Yoshua Bengio 对基于输入标记来动态激活或关闭组件的方法进行了研究。

这些研究工作推动了在自然语言处理(NLP)领域对混合专家模型的探索。具体地,Shazeer 和团队(2017年,其中包括 Geoffrey Hinton 和 Jeff Dean,被称为 Google 的 Chuck Norris)通过引入稀疏性,将这一理念应用到了一个 137B 的 LSTM 上(当时是 NLP 领域的主流架构,由 Schmidhuber 发明),这使得模型即使在大规模应用下也能保持快速的推理能力。这项工作主要专注于翻译领域,但同样面临着多种挑战,如高昂的通信成本和训练过程的不稳定性。

MoE layer from the Outrageously Large Neural Network paper

MoEs 让训练数万亿参数的模型成为可能,例如已开源的 1.6T 参数的 Switch Transformers 等模型。虽然 MoEs 在计算机视觉领域也有所探索,但本篇博客将重点介绍其在自然语言处理(NLP)领域的应用。

什么是稀疏性?

稀疏性是基于条件计算的概念。在传统的密集型模型中,所有输入都使用所有参数,而稀疏性则允许我们只运行系统的一部分

现在,让我们深入了解 Shazeer 对翻译中 MoEs 的研究。条件计算的理念(网络的某些部分仅在处理单个样例时被激活)使得可以在不增加计算量的情况下扩大模型的规模,这就导致每个 MoE 层中使用了数千个专家。

这种架构带来了一系列挑战。例如,虽然较大的批处理规模通常能提高性能,但在 MOEs 中,当数据通过活跃的专家时,批处理规模实际上是减小的。举个例子,如果我们的批处理输入包含 10 个 token,可能有五个 token 最终由同一个专家处理,另外五个 token 则分别由五个不同的专家处理,导致批处理规模不均和资源利用不足。接下来的“提高 MoEs 效率”部分将讨论更多挑战和解决方法。

如何解决这个问题?一个经过训练的门控网络(G)负责决定将输入的哪一部分发送给哪些专家(E):

y=Σi=1nG(x)iEi(x)

在这个框架中,所有的专家系统都会处理每一项输入——这是一个加权的乘法过程。但如果 G 的值等于 0 呢?如果出现这种情况,我们就没必要进行相应的专家系统运算,这样就能节省计算资源。常见的门控函数是什么呢?在传统的做法中,我们通常使用一个简单的网络搭配 softmax 函数来实现。这个网络会自学习,确定应该将输入数据发送给哪一个专家系统。

Gσ(x)=Softmax(x⋅Wg)

Shazeer 的研究也探索了其他的门控机制,如 Noisy Top-k 门控。这种方法引入了一些(可调整的)噪声,然后只保留前 k 个最高值。具体来说:

1.加入一些噪声

H(x)i=(x⋅Wg)i+StandardNormal()⋅Softplus((x⋅Wnoise)i)

    1. 只取 Top k 的结果

KeepTopK(v,k)i={vi−∞if viis in the top k elements of votherwise

    1. 使用softmax 函数

G(x)=Softmax(KeepTopK(H(x),k))

这种稀疏性展现出了一些有趣的特性。通过采用较低的 k 值(如一或两个),我们能够比在激活许多专家的情况下更快地进行训练和推理。那为何不单选顶尖专家呢?最初的猜测是,为了让门控学会如何向不同的专家路由,需要路由到不止一个专家,因此至少需要选择两位专家。在 Switch Transformers 一节中将重新审视这个决策。

那我们为什么要加入噪声呢?这是为了实现负载平衡!

MoEs 中 tokens 的负载均衡

我们之前讨论过,如果所有 tokens 都只被送往少数几位热门专家,那么训练过程将变得低效。在典型的 MoE 训练中,门控网络倾向于激活相同的几位专家,这种现象会自我加强,因为常被选中的专家训练速度更快,从而更频繁地被选择。为了改善这种情况,为此,我们引入了辅助损失来鼓励平等重视所有专家,确保每位专家接收到大致相同数量的训练实例。接下来的章节还将探讨“专家容量”这一概念,设定专家处理 tokens 的数量上限。在Transformers 模型中,这种辅助损失通过 aux_loss 参数来实现。

MoEs and Transformers

Transformers 模型清楚地证明了:增加参数数量可以提高性能。因此,谷歌使用 GShard 来探索如何扩展Transformers 的参数规模至 6000 亿以上。

GShard 通过在 Encoder 和 Decoder 中的每个其他 FFN 层使用 top-2 门控来替换为 MoE 层。下一张图将展示这种设置在 Encoder 部分的效果。这种配置对大规模计算非常有利:当系统扩展到多个设备时,MoE 层在这些设备间共享,而所有其他层则被复制。这一点将在“高效实现 MoEs”部分进一步探讨。

MoE Transformer Encoder from the GShard Paper

为了在处理大量数据时保持效率和负载平衡,GShard 的研发团队不仅引入了类似于前文所讨论的辅助损失机制,还进行了若干关键性的调整:

  • 随机路由策略 :在 top-2 的配置中,我们总是优先选择最佳专家,但选择第二位专家时,则依据其权重所占的比例来确定。

  • 专家处理能力限制 :我们可以设置一个上限,来界定单个专家能处理的 token 数量。如果两位专家的处理能力都已达到上限,则该 token 会被视作溢出,通过残差连接传输到下一个层级(或在其他情况下可能被完全舍弃)。这一概念对于混合专家模型(MoEs)来说至关重要。为什么需要设置专家的处理能力限制?由于所有张量的形状在编译时已经静态决定,而我们无法预知每个专家将处理多少token,因此设定一个固定的处理能力上限是必要的。GShard 论文的重要贡献之一是对适合于混合专家模型(MoEs)的并行计算模式进行了阐释。然而,这个议题不在本篇博客的讨论范畴之内。

注意 :在进行推理时,只有部分专家会被激活。同时,还有一些计算过程是共享的,例如适用于所有 token 的自注意力机制。这就是为什么在讨论拥有 8 个专家的 47B 模型时,我们可以用相当于 12B 密集型模型的算力来运行它的原因。如果我们采用 top-2 配置,那么会使用到 14B 的参数。但是由于像注意力操作这样的计算是共享的,实际上使用的参数数量是 12B。

Switch Transformers

虽然混合专家模型(MoEs)展示了巨大的潜力,但在训练和微调过程中面临着稳定性的挑战。Switch Transformers 是一项令人振奋的研究,深入探讨了这些问题。

研究者们甚至在 Hugging Face 上发布了一个拥有 1.6 万亿参数和 2048 个专家的 MoE,你可以通过 transformers 来运行它。与 T5-XXL 相比,Switch Transformers 实现了 4 倍的预训练速度提升。

Switch Transformer Layer of the Switch Transformer paper

与 GShard 的做法相同,作者们将前馈神经网络(FFN)层替换为混合专家模型(MoE)层。Switch Transformers 的论文提出了一个独特的 Switch Transformer 层,这一层接收两个不同的输入(token)并拥有四个专家。

与最初采用至少两位专家的思路不同,Switch Transformers 采用了一种简化的单专家策略。这种方法带来的影响包括:

  • • 路由计算的需求减少

  • • 每个专家处理的批次规模可以至少减半

  • • 降低了通信成本

  • • 确保了质量

Switch Transformers 也对专家容量(expert capacity)的概念进行了探索。

Expert Capacity=(number of expertstokens per batch)×capacity factor

上面提出的容量建议是将批处理中的 token 数量均匀分配给各专家。如果我们使用的容量因子超过 1,就可以为token 分配不均衡的情况提供一定的缓冲。但是容量的增加会增加设备间通信的成本,因此这是一个需要慎重考虑的权衡。特别地,Switch Transformers 在较低的容量因子(1-1.25)下表现优异。

Switch Transformer 的作者们也重新审视并简化了之前章节中提及的负载平衡损失。在每个 Switch 层,训练期间会将辅助损失添加到模型的整体损失中。这种损失鼓励实现均匀的路由分配,并可以通过超参数来调整其权重。

作者们还进行了选择性精度的实验,例如在训练专家时使用 bfloat16,而其余计算则使用全精度。降低精度有助于减少处理器间的通信成本、计算成本和存储张量的内存。最初的实验中,专家和门控网络都使用 bfloat16 进行训练,这导致了训练过程的不稳定。特别是在路由计算方面:由于路由器涉及指数函数,因此需要较高的精度。为了减轻不稳定性,路由计算也使用了全精度。

Using selective precision does not degrade quality and enables faster models

这个notebook[3]展示了如何对 Switch Transformers 进行微调以实现摘要生成,但建议先阅读微调部分。

Switch Transformers 在 encoder-decoder 结构中实现了类似于 T5 的混合专家模型(MoE)。GLaM 论文则探讨了通过训练与 GPT-3 质量相当但能耗仅为三分之一的模型来提升这些模型的规模(确实,得益于训练 MoE 所需较低的计算量,他们能够将碳排放降低到十分之一)。作者们关注的重点是 decoder-only 模型,并集中于少样本和单样本评估,而不是微调。他们采用了 Top-2 路由和更大的容量因子。此外,他们还探讨了容量因子作为一个可以在训练和评估期间根据所需计算量进行调整的指标。

Stabilizing training with router Z-loss

之前讨论的平衡损失可能会导致稳定性问题。我们可以采用多种方法来增强稀疏模型的稳定性,但这可能会牺牲模型的质量。例如,引入 dropout 可以提升稳定性,但可能会降低模型的质量。另一方面,增加更多乘积组件可以提高模型质量,但可能会减少稳定性。

在 ST-MoE 中引入的路由器 z-loss,通过对进入门控网络的较大对数值施加惩罚,显著提升了训练稳定性,同时没有造成质量下降。这种损失通过鼓励降低值的绝对大小,减少了舍入误差,这对于门控等指数函数尤其重要。我们建议阅读论文以深入了解。

What does an expert learn?

ST-MoE 的作者们观察到,encoder 的专家在处理一组特定 tokens 或基本概念上表现出专业化。例如,可能会出现一个标点符号专家、一个专有名词专家等。相反,decoder 的专家专长程度较低。作者们还在多语言设置中进行了训练。虽然人们可能会想到每个专家专注于一种语言,但实际上恰恰相反:由于 token 路由和负载平衡,没有任何专家专门专注于任何一种特定语言。

Table from the ST-MoE paper showing which token groups were sent to which expert.

How does scaling the number of experts impact pretraining?

更多的专家能提高样本效率和加速训练,但这些收益会逐渐减少(特别是超过 256 或 512 之后),并且在推理时将需要更多的 VRAM。在大规模条件下研究的 Switch Transformers 的特性在小规模下也是一致的,即便是每层只有 2、4 或 8 个专家。

Fine-tuning MoEs

Mixtral is supported with version 4.36.0 of transformers. You can install it withpip install “transformers==4.36.0 –upgrade

密集型模型和稀疏型模型在过拟合方面的表现有显著差异。稀疏型模型更容易发生过拟合,因此我们可以在专家本身探索更强的正则化措施(例如 dropout)。例如,我们可以为密集型层设定一个 dropout 率,而对稀疏型层则采用一个更高的 dropout 率。

一个问题是在微调时是否应该使用辅助损失。ST-MoE 的作者们进行了关闭辅助损失的实验,发现即使高达 11% 的 tokens 被丢弃,模型质量也没有受到显著影响。丢弃 token 可能是一种有助于防止过拟合的正则化方法。

Switch Transformers 观察到,在预训练困惑度固定的情况下,稀疏模型在下游任务上的表现不如密集模型,特别是在像 SuperGLUE 这种重推理的任务上。另一方面,在知识密集型任务如 TriviaQA 上,稀疏模型表现异常出色。作者们还发现,在微调阶段,减少专家的数量有助于改善性能。另一个确认泛化问题的观察是,该模型在小型任务中表现不佳,但在大型任务中表现良好。

在小型任务(左侧)中,我们可以明显看到过拟合的情况,稀疏模型在验证集上的表现远不如训练集。在较大的任务(右侧)中,MoE 表现良好。这张图片出自 ST-MoE 论文。通过只冻结 MoE 层,我们能够在保证质量的同时加快训练速度。这张图片选自 ST-MoE 论文。

在微调稀疏 MoE 时,一个重要的考虑点是它们需要特定的超参数设置——例如,这些模型通常更适合较小的批量大小和较高的学习率。

稀疏模型在较高的学习率和较小的批量大小下进行微调时,其质量会有所提高。这张图片选自 ST-MoE 论文。

你或许会对微调 MoE 所面临的挑战感到些许沮丧。但令人振奋的是,2023年7月的一篇新论文《MoE 遇见指令调整》进行了如下实验:

  • • 单一任务的微调

  • • 多任务的指令微调

  • • 先进行多任务的指令微调,随后是单一任务的微调

与密集模型相比,稀疏模型从指令调整中受益更多。图片来自 MoEs Meets instructions Tuning 论文

作者在微调 MoE 和其 T5 等效模型时,发现等效模型 T5 的表现更佳。但在微调 Flan T5(T5 指令版)的 MoE 时,MoE 的性能显著提升。不仅如此,Flan-MoE 相较于 MoE 的提升幅度,超过了 Flan T5 相较于 T5 的提升,这意味着 MoE 可能从指令调整中获得的好处远超密集型模型。MoE 从执行更多任务中获益更多。与之前讨论的关闭辅助损失函数相反,这种损失实际上有助于防止过拟合。

When to use sparse MoEs vs dense models?

在那些需要大量算力并且处理速度极快的情况下,专家系统就像是一股不可或缺的力量。如果在预训练过程中计算资源有限,那么稀疏模型无疑是更明智的选择。相反,在只有少量VRAM且处理速度不是那么快的环境下,采用密集模型则更加合适。

但是,我们不能简单地将稀疏模型和密集模型的参数数量进行直接比较,因为这两者在本质上是完全不同的。

实现 MoEs 的快速高效运行

在 MoE 的初始研究中,MoE 层被构建为一种分支结构,这导致计算速度减慢,因为 GPU 并未专门为此设计。此外,由于设备之间需要交换信息,网络带宽成为了一个限制因素。本节内容将探讨一些现有工作,旨在提高这些模型在预训练和推理方面的实用性。通过这些方法,MoEs 的运行速度得到了显著提升。

并行计算

让我们来简要地回顾一下并行计算的几种方式:

  • 数据并行 :所有 CUDA cores 复制相同的权重,并将数据在这些 cores 之间进行分割。

  • 模型并行 :模型在不同 cores 之间分割,而数据在所有 cores 中进行复制。

  • 模型和数据并行 :我们可以同时将模型和数据分割到不同的 cores 中。这里需要特别注意的是,不同 cores 会处理不同批次的数据。

  • 专家并行 :将不同的专家分布在不同的 workers 上。若与数据并行相结合,则每个 cores 将配有不同的专家,并且数据被分割到所有 cores 。

在专家并行模式中,各专家被安置在不同的 workers 上,每个 worker 负责处理一批特定的训练样本。

  • • 对于非 MoE 层,专家并行的工作方式与数据并行相同。

  • • 而在 MoE 层中,序列中的 tokens 会被发送到那些具有相关专家的 workers。

《Switch Transformers》论文中的插图清晰地展示了如何运用多种并行技术在不同cores上对数据和模型进行分割

容量因子和通信成本

提升容量因子(CF)可以提高性能质量,但同时会增加通信成本和激活状态的内存需求。如果 all-to-all 的通信速度较慢,使用较低的容量因子更为合适。一个合理的初始设置是采用 1.25 的容量因子,每个 core 配置一个专家,并使用 top-2 路由。在评估过程中,可以通过调整容量因子来降低计算需求。

服务技术

You can deploymistralai/Mixtral-8x7B-Instruct-v0.1[4]to Inference Endpoints.

MoEs 的一个显著缺点是其庞大的参数数量。在本地使用场景中,人们可能更倾向于选择一个规模较小的模型。现在,我们将快速讨论一些能够帮助服务部署的技术:

  • • 《Switch Transformers》的作者进行了初期的蒸馏实验。通过将 MoE 模型蒸馏回其密集型版本,他们能够保持 30-40% 的稀疏性益处。因此,蒸馏提供了更快的预训练和在生产环境中使用更小模型的优势。

  • • 最近的方法改变了路由策略,允许将完整句子或任务直接路由到专家,这样就能提取出用于服务的子网络。

  • • 专家聚合(MoE):这种技术通过合并专家的权重,在推理时降低了参数数量。

关于高效训练的进一步讨论

FasterMoE(2022年3月)对 MoEs 在高效分布式系统中的表现进行了分析,并研究了不同并行策略的理论极限、调整专家受欢迎程度的技术、减少延迟的精细通信调度,以及一种基于最低延迟选择专家的调整后的拓扑感知门控,从而实现了高达 17 倍的速度提升。

Megablocks(2022年11月)通过引入新型 GPU kernels,有效处理 MoEs 中的动态性,进而探索了高效的稀疏预训练方法。该方法从不丢失 tokens,并能高效适配现代硬件,带来了显著的速度提升。其关键技术是什么?不同于传统 MoEs 的批量矩阵乘法,后者假设所有专家的形状和 tokens 数量相同,Megablocks 将 MoE 层表示为块状稀疏操作,可以适应不均匀的任务分配。

针对不同规模的专家和不同数量的 tokens 的块状稀疏矩阵乘法(参考自 MegaBlocks(https://arxiv.org/abs/2211.15841))

开源 MoEs

目前存在多个用于训练 MoEs 的开源项目:

  • Megablocks:

https://github.com/stanford-futuredata/megablocks

  • Fairseq:

https://github.com/facebookresearch/fairseq/tree/main/examples/moe_lm

  • OpenMoE:

https://github.com/XueFuzhao/OpenMoE

在已公开发布的开源 MoEs 领域,你可以参考:

  • Switch Transformers (Google) : Collection of T5-based MoEs going from 8 to 2048 experts. The largest model has 1.6 trillion parameters

https://huggingface.co/collections/google/switch-transformers-release-6548c35c6507968374b56d1

  • NLLB MoE (Meta) : A MoE variant of the NLLB translation model.

https://huggingface.co/facebook/nllb-moe-54b

-OpenMoE : A community effort that has released Llama-based MoEs.

https://huggingface.co/fuzhao

  • Mixtral 8x7B (Mistral) : A high-quality MoE that outperforms Llama 2 70B and has much faster inference. A instruct-tuned model is also released. Read more about it in the announcement blog post[5].

https://huggingface.co/mistralai

令人兴奋的研究方向

未来的实验将专注于将稀疏 MoE 蒸馏回参数较少但数量相似的密集模型。

MoEs 的量化是另一个研究领域。2023年10月推出的 QMoE[6] 在这个方向上取得了重大进展,通过将 MoEs 量化到每个参数不足 1 bit,使得原本使用 3.2TB 加速器的 1.6T Switch Transformer 压缩到只有 160GB。

总结来说,一些有趣的探索领域包括:

  • • 将 Mixtral 蒸馏为密集型模型

  • • 探索专家模型合并技术及其对推理时间的影响

  • • 对 Mixtral 进行极限量化处理

一些资源

[1]Adaptive Mixture of Local Experts (1991)  
https://www.cs.toronto.edu/~hinton/absps/jjnh91.pdf  
[2]Learning Factored Representations in a Deep Mixture of Experts (2013)  
https://arxiv.org/abs/1312.4314  
[3]Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer (2017)  
https://arxiv.org/abs/1701.06538  
[4]GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding (Jun 2020)  
https://arxiv.org/abs/2006.16668  
[5]GLaM: Efficient Scaling of Language Models with Mixture-of-Experts (Dec 2021)  
https://arxiv.org/abs/2112.06905  
[6]Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity (Jan 2022)  
https://arxiv.org/abs/2101.03961  
[7]ST-MoE: Designing Stable and Transferable Sparse Expert Models (Feb 2022)  
https://arxiv.org/abs/2202.08906  
[8]FasterMoE: modeling and optimizing training of large-scale dynamic pre-trained models(April 2022)  
https://dl.acm.org/doi/10.1145/3503221.3508418  
[9]MegaBlocks: Efficient Sparse Training with Mixture-of-Experts (Nov 2022)  
https://arxiv.org/abs/2211.15841  
[10]Mixture-of-Experts Meets Instruction Tuning:A Winning Combination for Large Language Models (May 2023)  
https://arxiv.org/abs/2305.14705  
[11]Mixtral-8x7B-v0.1  
https://huggingface.co/mistralai/Mixtral-8x7B-v0.1  
[12]Mixtral-8x7B-Instruct-v0.1  
https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1

引用链接

[1]
https://mistral.ai/news/mixtral-of-experts/
[2]
https://huggingface.co/mistralai/Mixtral-8x7B-v0.1
[3]
https://colab.research.google.com/drive/1aGGVHZmtKmcNBbAwa9hbu58DDpIuB5O4?usp=sharing
[4]
https://ui.endpoints.huggingface.co/new?repository=mistralai%2FMixtral-8x7B-Instruct-v0.1&ven
[5]
https://mistral.ai/news/mixtral-of-experts/
[6]
https://arxiv.org/abs/2310.16795

进技术交流群请添加AINLP小助手微信(id: ainlp2)

请备注具体方向+所用到的相关技术点

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括LLM、预训练模型、自动生成、文本摘要、智能问答、聊天机器人、机器翻译、知识图谱、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。

**

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具