DeepSeekMoE论文精读

Abstract

在大型语言模型时代,Mixture-of-Expert (MoE) 是一种很有前途的架构,用于在扩展模型参数时管理计算成本。然而,像GShard这样传统MoE架构从N个专家激活topk个,在确保专家专业化方面面临挑战,即每个专家都获得不重叠和聚焦的知识。作为改进,提出了 DeepSeekMoE 架构,以实现最终的专家专业化。它涉及两个主要策略:(1)将专家精细分割为mN个,并从中激活mk个,从而允许更灵活地组合激活的专家;(2) 隔离出1个共享专家,旨在捕获常识并减少路由专家的冗余。从具有 2B 、16B,145B参数的适度规模开始,我们证明 DeepSeekMoE 2B 的性能

1 Introduction

最近的研究和实验表明,在有足够可用的训练数据的情况下,使用增加参数和计算预算来扩展语言模型可以产生非常强大的模型,但是计算成本太高了,MoE可以降低计算成本并达到同样的效果。
传统的MoE也存在一些问题,存在知识混合和知识冗余的问题,限制了专家的专业性。
传统的 MoE 架构用 MoE 层取代了 Transformer 中的FFN。每个 MoE 层由多个专家组成,每个专家在结构上与标准 FFN 相同,并且为每个token分配给一到两名专家(分配专家给的是token不是sequense)。这种架构表现出两个潜在的问题:(1)知识混合性:现有的架构实现部署有限数量的专家(例如,8 或 16 人),因此分配给特定专家的代币可能会涵盖不同的知识。(2)知识冗余:分配给不同专家的代币可能需要常识。
提出了DeepSeekMoE架构,使专家更专业:1)Fine-Grained Expert Segmentation:在保持参数数量不变的同时,通过拆分 FFN 中间隐藏维度,将专家细分为更细粒度。2)Shared Expert Isolation:我们将某些专家隔离为共享专家,这些专家始终被激活,旨在捕获和巩固不同背景下的常识。通过将常识压缩到这些共享专家中,将减少其他路由专家之间的冗余。
DeepSeekMoE的创新点如下:

  • 架构创新。一种创新的 MoE 架构,旨在实现最终的专家专业化,它采用了细粒度专家分割和共享专家隔离两种主要策略。
  • 经验验证。进行了广泛的实验,以实证验证 DeepSeekMoE 架构的有效性。
  • 可扩展性。放大了 DeepSeekMoE 来训练 16B 模型,并表明只需大约 40% 的计算,DeepSeekMoE 16B 就实现了与 DeepSeek 7B 和 LLaMA2 7B 相当的性能。
  • MoE对齐。我们成功地对 DeepSeekMoE 16B 进行了SFT,以创建对齐的聊天模型,展示了 DeepSeekMoE 16B 的适应性和多功能性。
    • 公开发布。发布了 DeepSeekMoE 16B 的模型检查点。值得注意的是,该模型可以部署在具有 40GB 内存的单个 GPU 上,无需量化

2 Preliminaries: Mixture-of-Experts for Transformers

通用MoE架构

3 DeepSeekMoE Architecture

DeepSeekMoE Architecture

3.1 Fine-Grained Expert Segmentation

为了追求目标,在保持专家参数数量和计算成本一致的同时,以更细粒度的细分专家。具体来说,在图(a)所示的典型 MoE 架构之上,每个专家 FFN 分割成 m 个较小的专家,方法是将 FFN 中间隐藏维度减小到其原始大小的 1/m 倍。由于每个专家变得更小,作为回应,我们还将激活的专家数量增加到m倍以保持相同的计算成本,如图(b)所示。

3.2. Shared Expert Isolation

使用传统的路由策略,分配给不同专家的token可能需要一些常识或信息。因此,多个专家可能会汇聚在获取各自参数的共享知识时,从而导致专家参数的冗余。但是,如果有共享专家致力于在不同环境中捕获和整合共同知识,则其他路由专家之间的参数冗余将得到缓解。这种冗余的减少将有助于使用更专业的专家来建立更具参数效率的模型。

为了实现该目标,除了细粒度的专家细分策略外,我们还进一步隔离了Ks专家作为共享专家。无论路由器模块如何,每个token都将确定性地分配给这些共享专家。为了保持恒定的计算成本,其他路由专家中激活的专家数量将减少Ks个,如图(c)所示

3.3. Load Balance Consideration

自动学习的路由策略可能会遇到负载不平衡的问题,这体现了两个明显的缺陷。首先,存在路由崩溃的风险,即模型总是只选择少数专家,从而阻止其他专家进行充分的训练。其次,如果专家分布在多个设备上,负载不平衡会加剧计算瓶颈。

Expert-Level Balance Loss。为了降低路由崩溃的风险,我们还采用了专家级平衡损失。损失的计算如下:


Expert-Level Balance Loss

Device-Level Balance Loss。除了专家级平衡损失外,我们还引入了设备级平衡损失。当旨在缓解计算瓶颈时,没有必要在专家级别强制执行严格的平衡约束,因为对负载平衡的过度约束会损害模型性能。相反,我们的主要目标是确保跨设备进行平衡计算。如果我们将所有路由的专家划分为组 {E1, E2, ..., ED},并将每个组部署在单个设备上,则设备级平衡损失的计算方法如下


Device-Level Balance Loss

在实践中,我们设置了一个较小的专家级平衡因子来降低路由崩溃的风险,同时设置一个较大的设备级平衡因子以促进跨设备的平衡计算。

6 Alignment for DeepSeekMoE 16B

先前的研究表明,MoE 模型通常不会从微调中获得显着收益。然而,Shen 等人提出的研究结果表明,MoE 模型确实可以从指令调优中受益。为了评估 DeepSeekMoE 16B 是否能够从微调中受益,我们进行了监督微调,构建了基于 DeepSeekMoE 16B 的聊天模型。实验结果表明,DeepSeekMoE Chat 16B 也实现了与 LLaMA2 SFT 7B 和 DeepSeek Chat 7B 相当的性能。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 摘要 大语言模型(LLM)的迅速扩展揭示了当前硬件架构在内存容量、计算效率和互联带宽方面的关键限制。DeepSee...
    lmxc阅读 2,425评论 0 0
  • 随着 Mixtral 8x7B 的发布(公告[https://mistral.ai/news/mixtral-of...
    MatrixOnEarth阅读 5,689评论 0 0
  • 近期火爆的两篇论文,每个网络工程师都应该深读,均聚焦“规模化+高效化”但侧重点不同。• DeepSeek‑V3...
    lmxc阅读 3,529评论 0 1
  • 4.3 资源高效预填充与混合并行和微批次 预填充阶段负责处理输入提示以生成初始 KV 缓存,对首令牌时间(TTFT...
    lmxc阅读 1,792评论 0 0
  • 1. 背景 根据本qiang~最新的趋势观察,基于MoE架构的开源大模型越来越多,比如马斯克的Grok-1(314...
    mengrennwpu阅读 1,841评论 0 2

友情链接更多精彩内容