高效大型语言模型混合专家的兴起
在自然语言处理 (NLP) 领域,构建更大、更强大的语言模型一直是诸多近期进展的驱动力。然而,随着这些模型规模的扩大,训练和推理的计算需求也日益严峻,突破了现有硬件资源的极限。
混合专家 (MoE) 技术有望减轻这种计算负担,同时支持训练更大、更强大的语言模型。下文我们将讨论 MoE,探索其起源、内部工作原理及其在基于 Transformer 的语言模型中的应用。
专家混合模式的起源
混合专家 (MoE) 的概念可以追溯到 20 世纪 90 年代初,当时研究人员探索了条件计算的概念,即根据输入数据选择性地激活神经网络的各个部分。该领域的先驱工作之一是 Jacobs 等人于 1991 年发表的论文“自适应局部专家混合”,该论文提出了一个用于神经网络集合的监督学习框架,每个网络专注于输入空间的不同区域。
多因素模型 (MoE) 的核心思想是拥有多个“专家”网络,每个网络负责处理输入数据的一个子集。门控机制(通常是神经网络本身)决定由哪个(些)专家来处理给定的输入。这种方法允许模型更高效地分配计算资源,只需为每个输入激活相关的专家,而不是为每个输入调用全部模型容量。
多年来,各种研究人员探索并扩展了条件计算的思想,从而带来了诸如分层 MoE、条件计算的低秩近似以及通过随机神经元和硬阈值激活函数估计梯度的技术等发展。
Transformer 中的混合专家

专家组合
虽然MoE的概念已经存在了几十年,但它在基于 Transformer 的语言模型中的应用才刚刚起步。Transformer 已经成为了当今最先进语言模型的事实标准,它由多层结构组成,每层都包含一个自注意力机制和一个前馈神经网络 (FFN)。
将 MoE 应用于 Transformer 的关键创新在于用稀疏 MoE 层取代密集的 FFN 层,每个 MoE 层由多个专家 FFN 和一个门控机制组成。门控机制决定哪些专家应该处理每个输入 token,从而使模型能够针对给定的输入序列选择性地仅激活一部分专家。
最早展现 MoE 在 Transformer 中潜力的作品之一是 Shazeer 等人于 2017 年发表的论文《超大型神经网络:稀疏门控专家混合层》。该论文引入了稀疏门控 MoE 层的概念,该层采用了一种门控机制,在专家选择过程中增加了稀疏性和噪声,确保每个输入仅激活一部分专家。
此后,其他一些研究进一步推进了 MoE 在 Transformer 中的应用,解决了训练不稳定性、负载平衡和高效推理等挑战。值得关注的例子包括Switch Transformer (Fedus 等人,2021)、ST-MoE (Zoph 等人,2022) 和GLaM (Du 等人,2022)。
混合专家对语言模型的好处
在语言模型中采用 MoE 的主要优势在于,它能够在推理过程中保持相对恒定的计算成本,同时扩大模型规模。通过针对每个输入 token 选择性地激活一部分专家模型,MoE 模型能够实现与更大规模的密集模型相当的表达能力,同时所需的计算量却显著减少。
例如,假设一个语言模型拥有一个包含 70 亿个参数的密集 FFN 层。如果我们用一个包含 8 个专家(每个专家拥有 70 亿个参数)的 MoE 层替换该层,则总参数数量将增加到 560 亿。然而,在推理过程中,如果我们每个 token 只激活两个专家,则计算成本相当于一个包含 140 亿个参数的密集模型,因为它需要计算两个 70 亿个参数的矩阵乘法。
这种推理过程中的计算效率在资源有限的部署场景中尤为重要,例如移动设备或边缘计算环境。此外,训练过程中计算需求的降低可以显著节省能源并降低碳足迹,这与日益重视可持续人工智能实践的趋势相契合。
挑战与考虑
虽然 MoE 模型具有引人注目的优势,但其采用和部署也面临着一些挑战和考虑:
- 训练不稳定性 :众所周知,与密集模型相比,MoE 模型更容易出现训练不稳定性。这个问题源于专家激活函数的稀疏性和条件性,这可能导致梯度传播和收敛困难。一些技术(例如路由器 z-loss,Zoph 等人,2022)已被提出用于缓解这些不稳定性,但仍需进一步研究。
- 微调与过拟合 :MoE 模型在微调过程中更容易过拟合,尤其是在下游任务数据集相对较小的情况下。这种现象归因于 MoE 模型的容量增加和稀疏性,这可能导致训练数据过度专业化。需要谨慎的正则化和微调策略来缓解此问题。
- 内存要求 :虽然 MoE 模型可以降低推理过程中的计算成本,但与类似大小的密集模型相比,它们通常具有更高的内存要求。这是因为即使每个输入只激活一个子集,所有专家权重也需要加载到内存中。内存限制可能会限制 MoE 模型在资源受限的设备上可扩展性。
- 负载平衡 :为了实现最佳计算效率,平衡专家之间的负载至关重要,确保不会出现单个专家过载而其他专家未得到充分利用的情况。这种负载平衡通常通过训练期间的辅助损失和精心调整容量因子来实现,容量因子决定了可分配给每个专家的最大令牌数量。
- 通信开销 :在分布式训练和推理场景中,由于需要在位于不同设备或加速器上的专家之间交换激活和梯度信息,MoE 模型可能会带来额外的通信开销。高效的通信策略和硬件感知模型设计对于降低此类开销至关重要。
尽管存在这些挑战,但 MoE 模型在实现更大、更强大的语言模型方面具有潜在优势,这促使人们进行大量研究以解决和缓解这些问题。
示例:Mixtral 8x7B 和 GLaM
为了说明 MoE 在语言模型中的实际应用,让我们考虑两个值得注意的例子:Mixtral 8x7B 和 GLaM。
Mixtral 8x7B 是Mistral 语言模型的 MoE 变体,由 Anthropic 开发。它由 8 位专家模型组成,每位专家拥有 70 亿个参数,总计 560 亿个参数。然而,在推理过程中,每个 token 仅激活两位专家模型,从而有效地将计算成本降低至 140 亿个参数的密集模型的水平。
Mixtral 8x7B 表现出色,性能超越了拥有 700 亿个参数的 Llama 模型,同时推理速度也大幅提升。Mixtral 8x7B 的指令调整版本 Mixtral-8x7B-Instruct-v0.1 也已发布,进一步增强了其遵循自然语言指令的能力。
另一个值得关注的例子是谷歌语言模型 (GLaM),这是谷歌开发的大规模语言模型 (MoE)。GLaM 采用仅解码器的 Transformer 架构,并在 1.6 万亿个词条的海量数据集上进行了训练。该模型在少样本和单样本评估中均取得了令人印象深刻的性能,其质量堪比 GPT-3,但能耗仅为训练 GPT-3 所需能耗的三分之一。
GLaM 的成功归功于其高效的 MoE 架构,该架构允许在保持合理计算需求的同时训练具有大量参数的模型。该模型还展现了 MoE 模型相比密集模型更节能、更环保的潜力。
Grok-1 架构

GROK 专家混合物
Grok-1是一个基于 Transformer 的 MoE 模型,其独特的架构旨在最大限度地提高效率和性能。让我们深入了解一下其主要规格:
- 参数 :Grok-1 拥有惊人的 3140 亿个参数,是迄今为止最大的开放式 LLM。然而,得益于 MoE 架构,在任何给定时间只有 25% 的权重(约 860 亿个参数)处于活动状态,从而增强了处理能力。
- 架构 :Grok-1 采用 8 专家混合架构,每个标记在推理过程中由两个专家处理。
- 层数 :该模型由 64 个 Transformer 层组成,每个层都包含多头注意力和密集块。
- 标记化 :Grok-1 使用 SentencePiece 标记器,词汇量为 131,072 个标记。
- 嵌入和位置编码 :该模型具有 6,144 维嵌入,并采用旋转位置嵌入,与传统的固定位置编码相比,可以对数据进行更动态的解释。
- 注意 :Grok-1 使用 48 个注意力头来处理查询,使用 8 个注意力头来处理键和值,每个注意力头的大小为 128。
- 上下文长度 :该模型可以处理长度最多为 8,192 个标记的序列,利用 bfloat16 精度进行高效计算。
性能和实施细节
Grok-1 表现出色,其 MMLU 得分超过 73%,优于 LLaMa 2 70B 和 Mixtral 8x7B,展示了其在各种测试中的效率和准确性。
然而,值得注意的是,Grok-1 由于规模庞大,需要大量的 GPU 资源。开源版本中的当前实现侧重于验证模型的正确性,并采用了效率较低的 MoE 层实现,以避免使用自定义内核。
尽管如此,该模型支持激活分片和 8 位量化,可以优化性能并减少内存需求。
引人注目的是,xAI 在 Apache 2.0 许可下发布了 Grok-1,使其权重和架构可供全球社区使用和贡献。
此次开源版本包含一个 JAX 示例代码库,演示了如何加载和 Grok-1 模型。用户可以使用 torrent 客户端或直接通过 HuggingFace Hub 下载检查点权重,从而轻松访问这一突破性模型。
混合专家语言模型的未来
随着对更大、更强大的语言模型的需求不断增长,MoE 技术的采用预计将获得进一步的发展。正在进行的研究工作重点是解决剩余的挑战,例如提高训练稳定性、缓解微调过程中的过拟合以及优化内存和通信要求。
一个颇具前景的方向是探索分层的 MoE 架构,其中每个专家本身由多个子专家组成。这种方法有望在保持大型模型表达能力的同时,实现更高的可扩展性和计算效率。
此外,针对 MoE 模型优化的硬件和软件系统的开发也是一个活跃的研究领域。专门设计的加速器和分布式训练框架能够高效处理 MoE 模型的稀疏和条件计算模式,从而进一步提升其性能和可扩展性。
此外,将 MoE 技术与语言建模中的其他进步(例如稀疏注意力机制、高效的标记化策略和多模态表示)相结合,可以产生更强大、更通用的语言模型,能够处理各种各样的任务。
结论
混合专家技术已成为构建更大、更强大的语言模型的有力工具。通过根据输入数据选择性地激活专家,MoE 模型为扩展密集模型所带来的计算挑战提供了一种颇具前景的解决方案。尽管仍有一些挑战需要克服,例如训练不稳定性、过拟合和内存需求,但 MoE 模型在计算效率、可扩展性和环境可持续性方面的潜在优势使其成为一个令人振奋的研发领域。
随着自然语言处理领域不断突破极限,采用 MoE 技术很可能在下一代语言模型的实现中发挥关键作用。通过将 MoE 与模型架构、训练技术和硬件优化方面的其他进步相结合,我们可以期待更强大、更通用的语言模型,真正理解人类语言,并以自然无缝的方式与人类沟通。
