深度求索开源国内首个 MoE 大模型 | DeepSeekMoE:在专家混合语言模型中实现终极专家专业化

文章目录

  • 一、前言
  • 二、主要内容
  • 三、总结

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、前言

在大语言模型时代,混合专家模型(MoE)是一种很有前途的架构,用于在扩展模型参数时管理计算成本。然而,传统的 MoE 架构(如 GShard)会激活 N 位专家中的 top-K 专家,但在确保专家专业化(即每位专家获取的知识不重叠且重点突出)方面面临挑战。作为回应,研究者提出了 DeepSeekMoE 架构,以实现终极的专家专业化。它涉及两个主要战略:

  • 将专家细分为 m N mN mN 个,并从中激活 m K mK mK 个,使激活的专家组合更加灵活;
  • K s K_{s} Ks 专家隔离为共享专家,旨在捕获共同知识并减少路由专家中的冗余。

从 2B 参数的适度规模开始,研究者证明 DeepSeekMoE 2B 的性能可与 GShard 2.9B 相媲美,后者的专家参数和计算量为 GShard 2.9B 的 1.5 倍。此外,在参数总数相同的情况下,DeepSeekMoE 2B 的性能几乎接近其密集型对应模型,这为 MoE 模型设定了上限。随后,研究者将 DeepSeekMoE 扩展到 16B 参数,结果表明其性能与 LLaMA2 7B 相当,计算量仅为 LLaMA2 7B 的 40%。此外,研究者将 DeepSeekMoE 的参数扩展到 145B 的初步尝试,不断验证了其相对于 GShard 架构的巨大优势,并显示其性能可与 DeepSeek 67B 相媲美,只需 28.5%(甚至可能是 18.2%)的计算量。

多重发布。模型、代码、论文均已同步发布:

  • 模型下载:https://huggingface.co/deepseek-ai
  • 微调代码:https://github.com/deepseek-ai/DeepSeek-MoE
  • 技术报告:https://github.com/deepseek-ai/DeepSeek-MoE/blob/main/DeepSeekMoE.pdf

DeepSeekMoE 架构


二、主要内容

这篇论文试图解决什么问题?

这篇论文旨在解决大语言模型(LLMs)在扩展参数规模时所面临的计算成本问题。具体而言,它提出了一种名为 DeepSeekMoE 的新型 Mixture-of-Experts(MoE)架构,以实现专家的终极专业化。

MoE 架构通过将模型分解为多个专家,每个专家专注于特定任务,从而在保持参数规模的同时降低计算成本。然而,现有的 MoE 架构在确保专家专业化方面面临挑战,即每个专家获取的知识应该是不重叠且专注的。DeepSeekMoE 通过以下两个主要策略来解决这一问题:

  • 细粒度划分专家:通过将专家划分为更小的单元,更灵活地激活专家组合,从而实现更精细的知识分解和专业化。
  • 共享专家隔离化:将部分专家设定为共享专家,它们始终处于激活状态,用以捕获和整合不同上下文中的共同知识,从而降低其他路由专家中的参数冗余。

在这项研究中,通过实验验证了 DeepSeekMoE 在不同规模(2B、16B 和 145B 参数)上的性能。与此同时,研究者将其性能与现有的 MoE 模型(如 GShard)和密集模型(如 Dense×16)进行了比较。结果表明,DeepSeekMoE 在保持计算效率的同时,能够实现接近甚至超越现有模型的性能水平。

有哪些相关研究?

相关研究主要集中在以下几个方面:

  • Mixture-of-Experts(MoE)架构:MoE 是一种用于处理不同样本的独立专家模块的技术,最早由 Jacobs 等人(1991 年)提出。在自然语言处理(NLP)领域,Shazeer 等人(2017 年)引入了 MoE 到语言模型训练中,并构建了基于 LSTM 的大规模 MoE 模型。
  • Transformer 语言模型的 MoE 扩展:随着 Transformer 成为 NLP 中最流行的架构,许多研究尝试将 Transformer 中的前馈网络(FFN)替换为 MoE 层来构建 MoE 语言模型。例如,GShard(Lepikhin 等人,2021 年)和 Switch Transformer(Fedus 等人,2021 年)使用可学习的 top-2 或 top-1 路由策略来扩展 MoE 语言模型。而 Hash Layer(Roller 等人,2021年)和 StableMoE(Dai 等人,2022 年)则采用固定路由策略以实现更稳定的路由和训练。
  • MoE 训练策略和挑战:Zoph(2022)关注了 MoE 模型在训练过程中出现的不稳定性和微调困难,并提出了 ST-MoE 来应对这些挑战。此外,还有一些研究如 Flan-MoE(Shen 等人,2023)专注于使用稀疏 MoE 扩展指令微调语言模型。
  • 大规模语言或多模态模型:近年来,基于现有 MoE 架构涌现出许多大规模语言或多模态模型,例如 Falcon-40B(Almazrouei 等人,2023)、GPT-Neo(Black 等人,2021)和 BLOOM(Scao 等人,2022)。
  • 专家专业化:DeepSeekMoE 架构旨在通过细粒度分割专家和隔离共享专家来提高专业化水平。相较于现有基于 top-1 或 top-2 路由策略的 MoE 模型,该架构提供了改进专家专业化的新途径。

这些研究为 DeepSeekMoE 提供了理论基础和实践经验。DeepSeekMoE 在这些研究的基础上,通过创新的架构设计,旨在实现更高水平的专家专业化和性能。

这项研究如何解决这个问题?

论文提出了 DeepSeekMoE 架构,旨在解决当前 Mixture-of-Experts(MoE)模型在专家专业化方面所面临的挑战。DeepSeekMoE 采用了两个主要策略来提高专家的专业化程度:

  • 精细分割专家(Fine-Grained Expert Segmentation):

    1. 该策略将专家划分为更小的单元,通过减少 FFN(Feed-Forward Network)中间隐藏层的维度,同时保持参数数量不变。
    2. 同时增加激活的专家数量,以保持相同的计算成本,从而允许更灵活和适应性的激活专家组合。
    3. 这种分割策略允许更精细地分解和学习不同专家的多样化知识,使每个专家能够保留更高的专业化水平。
  • 隔离共享专家(Shared Expert Isolation):

    1. 该策略将一部分专家隔离为共享专家,这些专家始终被激活,旨在捕获和整合不同上下文中的共同知识。
    2. 通过将共同知识压缩到这些共享专家中,减轻其他路由专家之间的参数冗余,提高参数效率,并确保每个路由专家能够专注于独特方面。

通过这两个策略,DeepSeekMoE 的目标是训练一个参数高效的 MoE 语言模型,其中每个专家都高度专业化。论文首先从 2B 参数规模开始验证 DeepSeekMoE 架构的优势,并在后续实验中将模型参数扩展到 16B 和 145B,展示了与现有的 MoE 模型(例如 GShard)和密集模型(例如 Dense×16)相比显著的性能提升,同时保持较低的计算成本。

DeepSeekMoE 模型效果领人印象深刻:

  • DeepSeekMoE 2B 可接近 MoE 模型的理论上限 2B Dense 模型性能(即相同 Attention / {/} /FFN 参数配比的 2B Dense 模型),仅用了17.5% 计算量。
  • DeepSeekMoE 16B 性能比肩 LLaMA2 7B 的同时,仅用了 40% 计算量(如下图),也是本次主力开源模型,40G 显存可单卡部署。
  • DeepSeekMoE 145B 上的早期实验进一步证明该 MoE 架构明显领先于 Google 的 MoE 架构 GShard,仅用 28.5%(甚至 18.2%)计算量即可匹配 67B Dense 模型的性能。

在这里插入图片描述

  • 不同激活参数量的模型(横轴)
  • 在 Open LLM Leaderboard 上的效果(纵轴)

开源 MoE 模型表现

在相同语料下训练了 2 万亿 tokens,DeepSeekMoE 16B 模型(实际激活参数量为 2.8B)性能匹敌 DeepSeek 7B Dense 模型(左下图),而同时节省了 60% 的计算量。

与目前 Dense 模型的开源代表 LLaMA2 相比,DeepSeekMoE 16B 在大部分数据集上的性能依旧领先 LLaMA2 7B(右下图),但仅用了 40% 计算量。

在这里插入图片描述

多尺度模型进阶

DeepSeekMoE 包含三个模型规模:2B → \rightarrow 16B → \rightarrow 145B。

DeepSeekMoE 2B(性能验证)。研究者首先基于 2B 总参数的规模,对 DeepSeekMoE 的架构进行了充分的探索和研究,相同总参数量的对比下,DeepSeekMoE 大幅优于相同总参数下的其他 MoE 架构。

在这里插入图片描述

与更大规模(总参数量或者计算量)的模型相比,DeepSeekMoE 2B 能匹配 GShard 2.8B (1.5 倍专家参数量和专家计算量)的性能,同时能非常接近 MoE 模型的理论性能上限,即相同 Attention/FFN 总参数量下 2B Dense 模型的性能。

在这里插入图片描述

消融实验进一步证明了共享专家分离和细粒度专家划分两个策略的有效性。

在这里插入图片描述

此外,研究者还验证了 DeepSeekMoE 相比于 GShard,有更好的专家化程度,体现在更少的专家知识冗余和更精准的专家知识命中上,具体请参见技术报告的第 4.5 节。

DeepSeekMoE 16B (开源版本)。基于在 2B 规模上建立的对模型架构的认知,研究者训练了总参数量为 16.4B 的 DeepSeekMoE 16B 模型,并将其开源以促进研究社区的发展。开源模型效果如下:

在仅用 40% 计算量的前提下,DeepSeekMoE 16B 能达到与 DeepSeek 7B(左图) 和 LLaMA2 7B(右图)相匹配的性能,在知识密集性任务上,DeepSeekMoE 16B 的优势尤其突出。

在这里插入图片描述

研究者同时还对 DeepSeekMoE 16B 进行了 SFT 以构建了一个对话模型,评测显示,其同样能够与基于 DeepSeek 7B 和 LLaMA2 7B 构建的对话模型性能相匹配。

在这里插入图片描述

DeepSeekMoE 145B(持续研究)。“DeepSeek” 正在持续研究更大规模的 DeepSeekMoE 模型,基于 200B 语料训练得到的初步实验结果显示,DeepSeekMoE 145B 依旧保持对 GShard 137B 的极大领先优势,同时能够以 28.5%(甚至18.2%) 的计算量达到与 DeepSeek 67B Dense 模型相匹配的性能。

🚀 👏 关于 DeepSeek。DeepSeek 始终坚持:

  • 长期主义,专注于人工智能的底层技术和基础研究,不断挑战前沿性难题。
  • 开放共享,以开源汇聚更多的创造力和生产力,促进应用的创新与生态的繁荣。
  • 怀抱雄心,致力于探索 AGI 的本质,带着对世界的好奇,务实地实现浪漫的目标。
  • DeepSeek 会持续为开源社区贡献更多优秀的作品,并共享他们的研究成果,不断发掘 AI 领域新的惊喜。

三、总结

🆕 🌟 DeepSeekMoE 在 MoE 架构上做了两大创新:

  • 细粒度专家划分:不同于传统 MoE 直接从与标准 FFN 大小相同的 N 个专家里选择激活 K 个专家(如 Mistral 7B×8 采取 8 个专家选 top-2 专家),研究者把 N 个专家粒度划分更细,在保证激活参数量不变的情况下,从 m N mN mN 个专家中选择激活 m K mK mK 个专家(如 DeepSeekMoE 16B 采取 64 个专家选 8 个专家),如此可以更加灵活地组合多个专家。
  • 共享专家分离:研究者把激活专家区分为共享专家(Shared Expert)和独立路由专家(Routed Expert),这种策略有利于将共享和通用的知识压缩进公共参数,减少独立路由专家参数之间的知识冗余。

有什么可以进一步探索的点?

尽管 DeepSeekMoE 在专家专业化和性能提升方面取得了显著成果,但仍有一些潜在的研究方向可以进一步探索。这些包括但不限于:

  • 专家分割的粒度:虽然论文中提到了对专家进行精细分割,但是否存在进一步优化专家分割的空间?是否存在一个最佳的粒度大小,能够在专业化和计算效率之间实现最佳平衡?
  • 共享专家的作用:论文中提到了共享专家用于捕获共同知识,但共享专家的数量和结构是否需要进一步调整?例如,是否可以通过动态调整共享专家的数量来适应不同的任务需求?
  • 训练策略的改进:论文中提到了专家级平衡损失和设备级平衡损失,但是否有其他训练策略可以进一步提高模型的性能和稳定性?例如,是否可以探索更复杂的路由策略或优化损失函数?
  • 当涉及到模型的泛化能力时,DeepSeekMoE 在多个任务上表现出色。然而,其在新领域或未见过的数据上的泛化能力尚待深入研究。或许可以探索一些方法来进一步提高模型的泛化能力。
  • 在计算效率的优化方面,虽然 DeepSeekMoE 已经在计算效率上有所提升,但仍存在进一步优化的空间。例如,研究者可以探索更高效的硬件加速或软件优化策略,以进一步提升模型的计算效率。
  • 关于模型的可解释性,我们需要深入探讨 DeepSeekMoE 的专家结构是否为我们提供了一种新的视角来理解模型的决策过程。通过分析专家的行为,或许可以提高模型的可解释性,并为模型决策过程带来更清晰的解释。
  • 在考虑模型的安全性和伦理性时,随着模型规模的扩大,我们需要确保模型能够产生安全和符合伦理标准的结果。或许可以设计机制来防止模型生成有害或偏见内容,从而确保模型的安全性和伦理性。
  • 最后,在跨领域应用方面,尽管 DeepSeekMoE 在语言任务上表现良好,但其在其他领域(如图像、视频处理)的应用潜力也值得进一步探索。或许可以将 DeepSeekMoE 架构扩展到多模态学习中,以实现跨领域应用并发挥其潜力。

这些潜在研究方向将有助于深化对 DeepSeekMoE 模型性能及其在实际应用中的潜力理解,并且为未来的研究提供了广阔的空间,有助于进一步推动大语言模型的发展。


📚️ 参考链接:

  • 深度求索开源国内首个 MoE 大模型,技术报告、模型权重同时发布
  • CSDN | DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models
  • 首个国产开源 MoE 大模型来了!性能媲美 Llama 2-7B,计算量降低 60%
  • 国产第一个基于混合专家技术的大模型开源:幻方量化旗下公司开源 DeepSeekMoE-16B,未来还有 1450 亿参数的 MoE 大模型
  • 沈向洋:致 AI 时代的我们 —— 请不要忽视写作的魅力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/339209.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法专栏学习】成贤学院,程序员的福利站到了,判断子序列,经典算法实战。

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

使用宝塔面板安装wiki.js详细教程

因为在安装过程中遇到了一些问题,花费了很长时间在解决问题上。根据这篇教程可以少踩很多坑。点赞加关注吧。 准备运行环境 Nodejs 在宝塔面板的软件商店中找到nodejs版本管理器并安装。 点击设置,选择一个稳定版安装。 PostgreSQL 官方推荐的数据库是…

Nginx之负载均衡、静态代理与动态代理配置

Nginx之负载均衡配置 文章目录 Nginx之负载均衡配置1. 负载均衡基本配置1. 配置upstream2. 配置location3. 访问 2. Nginx常用负载均衡策略1. 轮询(默认)2. 权重3. ip_hash策略4. 最少连接策略5. 负载均衡其他几个配置 3. 静态代理1. 基于静态在一文件后缀的匹配2. 基于静态资源…

Python - 深夜数据结构与算法之 高级字符串

目录 一.引言 二.经典算法实战 1.Longest-Common-Sub-Seq [1143] 2.Edit-Distance [72] 3.Longest-Palindromic-Str [5] 4.Distinct-Sub-Seq [115] 5.Regular-Exp-Match [10] 三.总结 一.引言 上一节介绍了字符串的基本操作,本文介绍字符串更复杂的一些操作…

YOLOv8改进 | 主干篇 | 低照度图像增强网络SCINet改进黑暗目标检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是低照度图像增强网络SCINet,SCINet(自校正照明网络)是一种专为低光照图像增强设计的框架。它通过级联照明学习过程和权重共享机制来处理图像,优化了照明部分以提升图像质量。我将该网络集成在YOLOv8的主干上针对于图像的输入进行增…

BurpSuite Pro 2023.12.1.2下载与破解-最新版BurpSuite Pro

本文在我的博客地址是:https://h4cker.zip/post/f05ae2e66da503f6383dffe48cdf5bac 上一次BurpSuite的分享还是在2020年 由于CSDN有防盗链,我自己的博客都无法访问这篇博文的图片了 至于为什么再写一次,是因为我看到群里这张图:…

高效能方法 - 任务清单优先级

任务清单是有优先级的,首先要尽所能保证A级别的事项完成,或许不能估计B级或者C级,那这结果也是不错的。 博恩崔西在《吃掉那只青蛙》一书中指出:在你决定要做什么,并对其进行排序的时候,你首要解决那些最难…

腾讯云服务器价格查询,2024更新

腾讯云服务器租用优惠价格表:轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年,540元三年、2核4G5M带宽218元一年,2核4G5M带宽756元三年、轻量4核8G12M服务器646元15个月;云服务器CVM S5实例2核2G配置280.8元一年、2核4G…

x-cmd pkg | yq - 命令行 YAML处理工具

目录 简介首次用户支持格式转换友好的显示和操作语法与 jq 类似竞品和相关作品进一步阅读 简介 yq (YAML Query) 是一个轻量级的 YAML、JSON、XML 处理器,主要用于查询和提取 YAML 数据。 本 yq 的包来自 mikefarah/yq 项目,语法类似于 jq 。相比 kisly…

《WebKit 技术内幕》之八(2):硬件加速机制

2 Chromium的硬件加速机制 2.1 GraphicsLayer的支持 GraphicsLayer对象是对一个渲染后端存储中某一层的抽象,同众多其他WebKit所定义的抽象类一样,在WebKit移植中,它还需要具体的实现类来支持该类所要提供的功能。为了完成这一功能&#x…

python if条件判断的基础及应用

当前版本: Python 3.8.4 简介 if 语句是一种用于根据一个或多个条件的结果来执行不同代码块的控制流结构,它会检查给定的条件是否为真。如果条件为真,则执行与之关联的代码块;如果条件为假,则执行与之关联的其他代码块…

工作小计- RGB相关算子实现

项目中的模型一直都是直接操作NV12的yuv格式数据,这次的模型只支持RGB格式的输入,正好来自己实现对应的算子。 这里记录一下对应算子的实现过程,主要涉及到NV12到RGB的变换,RGB的crop/resize操作,对于数据的Norm/ToFlo…

python 正则表达式学习(1)

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 1. 特殊符号 1.1 符号含义 模式描述^匹配字符串的开头$匹配字符串的末尾.匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包…

芯片工程系列(1)封装基础知识、分来、步骤与方法.md

英文缩写 环氧树脂模塑料(Epoxy Molding Compound,EMC)引线框架封装(Leadframe),基板封装(Substrate),Substrate 基板晶圆片级芯片规模封装(Wafer Level Chi…

ESP32-UDP通信 (Arduino)

ESP32配置UDP通信 介绍 用户数据报协议UDP UDP(User Datagram Protocol)是一种在计算机网络中常用的传输层协议,它与TCP(Transmission Control Protocol)一样属于传输层协议的一种。UDP主要用于在网络中传输数据&…

小程序学习-20

建议每次构建npm之前都先删除miniprogram_npm

第15届蓝桥杯嵌入式省赛准备第三天总结笔记(使用STM32cubeMX创建hal库工程+串口接收发送)

因为我是自己搞得板子,原本的下程序和串口1有问题,所以我用的是串口2,用的PA2和PA3 一,使用CubeMX配置串口 选择A开头的这个是异步通信。 配置串口参数,往届的题基本用的9600波特率,所以我这里设置为9600…

【Linux】解决能访问github但克隆不了的问题

文章目录 1.查看你的代理的地址:2.git设置3.尝试clone 1.查看你的代理的地址: 2.git设置 先看看当前的git设置 $ git config --list然后git中要设置好对应的地址 git config --global http.proxy 127.0.0.1:78903.尝试clone $ git clone https://git…

异或运算的骚操作,由浅入深拿捏一类型的题

文章目录 🚀前言🚀异或运算的基本用法🚀一组数中一种数出现了奇数次,其他种数出现了偶数次,找出这个数🚀一组数中有两种数出现了奇数次,其他种数出现了偶数次,求这两个数✈️得到一个…

4D毫米波雷达——FFT-RadNet 目标检测与可行驶区域分割 CVPR2022

前言 本文介绍使用4D毫米波雷达,实现目标检测与可行驶区域分割,它是来自CVPR2022的。 会讲解论文整体思路、输入数据分析、模型框架、设计理念、损失函数等,还有结合代码进行分析。 论文地址:Raw High-Definition Radar for Mu…