DeepSeekMoE:迈向混合专家语言模型的终极专业化

一、结论写在前面

论文提出了MoE语言模型的DeepSeekMoE架构,目的是实现终极的专家专业化(expert specialization)。通过细粒度的专家分割和共享专家隔离,DeepSeekMoE相比主流的MoE架构实现了显著更高的专家专业化和性能。从较小的2B参数规模开始,论文验证了DeepSeekMoE的优势,展示了其接近MoE模型上限性能的能力。此外,论文证明DeepSeekMoE具有比GShard更高水平的专家特化。

放大到16B参数规模,论文在2T标记上训练DeepSeekMoE 16B,并展示了其与DeepSeek 7B和LLaMA2 7B可比的卓越性能,仅需要大约40%的计算量。另外,论文进行了监督微调用于对齐,基于DeepSeekMoE 16B构建了一个MoE聊天模型,进一步展示了其适应性和通用性。此外,论文初步探索以将DeepSeekMoE放大到145B参数:DeepSeekMoE 145B相对于GShard架构仍保持实质性优势,并展示了与DeepSeek 67B可比的性能,仅使用28.5%(可能甚至18.2%)的计算量。

论文公开了了DeepSeekMoE 16B的模型checkpoint,它可以在40GB内存的单GPU上部署。

Figure 1 | DeepSeekMoE 16B与开源模型在Open LLM Leaderboard上的比较。红色虚线是从除DeepSeekMoE 16B之外的所有模型的数据点线性拟合得到的。DeepSeekMoE 16B始终以很大的优势胜过具有类似激活参数数量的模型,并在性能上与LLaMA2 7B相媲美,后者的激活参数数量大约是其2.5倍

二、论文的简单介绍

2.1 论文的背景

最近的研究和实践通过充分的可用训练数据经验性地证明,扩大语言模型的参数和计算预算可以获得显著更强的模型。然而,必须承认的是,将模型扩展到极大规模的努力也与极高的计算成本相关联。考虑到成本,混合专家(Mixture-of-Experts,MoE)架构已成为一种流行的解决方案。它可以实现参数扩展,同时将计算成本保持在适度水平。

尽管MoE架构展示出有前景的潜力,但现有MoE架构可能存在知识杂交(f knowledge hybridity )和知识冗余(knowledge redundancy)的问题,这限制了专家专业化,即每个专家获得非重叠和专注的知识。传统的MoE架构用MoE层代替Transformer中的前馈网络(Feed-Forward Networks,FFN)。每个MoE层由多个专家组成,每个在结构上与标准FFN相同,每个token分配给一个或两个专家。这种架构体现出两个潜在问题:

(1)知识杂交:现有的MoE实践通常采用有限数量的专家(例如8或16),因此分配给特定专家的标记可能会涵盖不同的知识。因此,指定的专家将倾向于在其参数中汇集不同类型的知识,这些知识很难同时利用。

(2)知识冗余:分配给不同专家的token可能需要共同知识。因此,多个专家可能会在各自的参数中收敛到共享知识的获取,从而导致专家参数中的冗余。这些问题共同阻碍了现有MoE实践中的专家专业化,使其无法达到MoE模型的理论上限性能。

2.2 论文的方案

Figure 2 | DeepSeekMoE的示意图。子图(a)展示了具有传统top-2路由策略的MoE层。子图(b)说明了精细的专家细分策略。随后,子图(c)展示了共享专家隔离策略的集成,构成了完整的DeepSeekMoE架构。值得注意的是,在这三种架构中,专家参数和计算成本保持不变
 

DeepSeek MoE设计上述结构的前提在于假设:特定专家能可以覆某种领域知识。专家的细粒度切分可以避免一个专家覆盖太多领域把知识学杂了;共享专家可以让一些公共知识每次都参与计算。

同时期国外开源的Mistral of Experts也放了技术报告,它是完全照着GPT-4解密报告复现的MoE,模型结构就是经典的GShard方式。技术报告里的Sec. 5 Routing analysis展示很多路由工作的特征,这些都是非常新鲜的一手资料。有一些结论很有趣:

Mixtral of Experts

  1. 路由规则与文本的语义主题无关,这意味着专家并不专门精通某一领域的知识。
  2. 路由规则展示出了一定的语法特性,例如,某些关键词经常被分配给同一位专家。
  3. 路由规则还展示了位置的局部性,相邻的token通常被路由到同一位专家,这表明token在句子中的位置与路由选择有关。

结论1是比较颠覆传统认知的,又给了公众号做标题党一次机会。

混合专家系统里根本没专家?开源MoE模型论文引网友热议

那么也就是说按照Mistral报告的观察,DeepSeek-MoE设计的动机可能不太成立。我觉得DeepSeek开发者可以参考Mistral的Sec 5做实验看看结论是否一致。

为应对上述两个潜在问题,论文提出了DeepSeekMoE,这是一种创新的MoE架构,专门设计用于实现终极专家专业化。架构包含两大主要策略:

细粒度专家细分

在专家数量有限的情况下,分配给特定专家的标记更有可能涵盖各种类型的知识。因此,指定的专家将意图在其参数中学习非常不同类型的知识,并且它们很难同时被利用。然而,如果每个标记可以路由到更多的专家,不同的知识将有可能分解并在不同的专家中学到。在这种情况下,每个专家仍然可以保持高水平的专业化,有助于在专家之间实现更专注的知识分布。

为了实现这一目标,在保持一致的专家参数数量和计算成本的同时,通过更细粒度地分割专家。更细致的专家分割使得激活的专家组合更加灵活和适应。具体而言,在图 2(a) 中显示的典型 MoE 架构之上,我们通过将每个专家 FFN 的中间隐藏维度减小到其原始大小的 1/m 倍来将每个专家细分为 m 个较小的专家。由于每个专家变得较小,相应地,我们也增加激活的专家数量到 m 倍,以保持相同的计算成本,如图 2(b) 所示。

从组合的角度看,细粒度专家分割策略极大地增强了激活专家的组合灵活性。举例来说,考虑 N = 16 的情况。典型的 top-2 路由策略可以产生 16 2 = 120 种可能的组合。相比之下,如果每个专家分为 4 个较小的专家,细粒度的路由策略可以产生 64 8 = 4,426,165,368 种潜在的组合。组合灵活性的激增增强了实现更准确和有针对性的知识获取的潜力。

共享专家隔离

在传统的路由策略中,分配给不同专家的标记可能需要一些共同的知识或信息。因此,多个专家可能会在各自的参数中收敛于获取共享知识,从而导致专家参数的冗余。然而,如果有专门负责捕捉和 cons共享知识的专业专家,跨不同上下文的参数冗余将得到缓解。这种冗余的减轻将有助于构建更具参数效率的模型,并拥有更专业化的专家。

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

负载平衡考虑

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

专家级平衡损失:为了缓解路由崩溃的风险,论文还采用了专家级平衡损失。

设备级平衡损失:除了专家级平衡损失外,论文引入了设备级平衡损失。当旨在缓解计算瓶颈时,就不必在专家级别强制执行严格的平衡约束,因为对负载平衡的过度约束会损害模型性能。相反,论文的主要目标是确保设备之间的平衡计算

2.3 论文的效果

从一个仅有2B参数的适度规模开始,验证了DeepSeekMoE架构的优势。在跨越多种任务的12个零试验或少试验基准测试中进行评估。实证结果表明,DeepSeekMoE 2B大大超过了GShard 2B,甚至匹配了GShard 2.9B,一个更大的MoE模型,具有1.5倍的专家参数和计算量。值得注意的是,DeepSeekMoE 2B的性能几乎接近具有相等参数数量的密集对应物,这为MoE语言模型设定了严格的上限。为了获得更深入的见解,对DeepSeekMoE进行了精心的消融研究和专家专业化分析。这些研究验证了细粒度专家细分和共享专家隔离的有效性,并提供了支持DeepSeekMoE可以实现高水平专家专业化的经验证据。

将模型参数扩大到16B,并在包含2T个标记的大规模语料上训练DeepSeekMoE 16B。评估结果显示,与仅使用约40%的计算量,DeepSeekMoE 16B达到与在相同2T语料上训练的密集模型DeepSeek 7B相当的性能。

还将DeepSeekMoE与开源模型进行了比较,评估结果表明,DeepSeekMoE 16B始终以大幅度超过参数数量相近的模型,并与LLaMA2 7B的性能相当,后者的激活参数数约为前者的2.5倍。图1展示了在Open LLM Leaderboard1上的评估结果。

另外,论文进行了监督微调(SFT)用于对齐,将模型转换为聊天模型。评估结果显示,在聊天设置中,DeepSeekMoE Chat 16B也取得了与DeepSeek Chat 7B和LLaMA2 SFT 7B相当的性能。这些结果鼓舞我们进一步进行扩展DeepSeekMoE到145B的初步尝试。实验结果仍然一致验证了其相对于GShard架构的重大优势。此外,它显示了与DeepSeek 67B相当的性能,仅使用28.5%(可能甚至只有18.2%)的计算量。

Table 1 | 验证实验的评估结果。粗体字表示最佳结果。与其他MoE架构相比,DeepSeekMoE表现出明显的性能优势

Table 2 | DeepSeekMoE、更大的GShard模型和更大的dense模型之间的比较。在“#专家”一行中,𝑎 + 𝑏表示𝑎个共享专家和𝑏个路由专家。在“#激活专家”一行中,𝑎 + 𝑏表示𝑎个激活的共享专家和𝑏个激活的路由专家。DeepSeekMoE在性能上与包含1.5倍专家参数和计算的GShard模型相媲美。此外,DeepSeekMoE几乎接近具有16倍FFN参数的dense模型的性能,这在模型容量方面为MoE模型设定了上限

Figure 3 | DeepSeekMoE的消融研究。为清晰展示,性能经过归一化处理。所有比较的模型具有相同数量的参数和激活参数。我们可以看到,精细的专家细分和共享专家隔离都有助于更强大的整体性能

Figure 4 | 关于禁用顶级路由专家比例的Pile损失。值得注意的是,DeepSeekMoE对禁用顶级路由专家比例的敏感性更大,表明DeepSeekMoE中路由专家之间的冗余较低

Table 3 | DeepSeek 7B和DeepSeekMoE 16B之间的比较。粗体字表示最佳或接近最佳。仅占40.5%的计算量,DeepSeekMoE 16B在性能上与DeepSeek 7B相媲美

Table 4 | LLaMA2 7B和DeepSeekMoE 16B之间的比较。仅占39.6%的计算量,DeepSeekMoE 16B在大多数基准测试上胜过LLaMA2 7B

Table 5 | LLaMA2 SFT 7B、DeepSeek Chat 7B和DeepSeekMoE Chat 16B之间的比较,这三个模型都在相同的SFT数据上进行了微调。与两个7B dense模型相比,DeepSeekMoE Chat 16B在大多数基准测试上仍然在仅占40%的计算量下达到相当或更好的性能

Table 6 | DeepSeek 67B(Dense)和约140B总参数规模的MoE模型之间的比较。在“#专家”和“#激活专家”一行中,𝑎 + 𝑏分别表示𝑎个共享专家和𝑏个路由专家。粗体字表示最佳或接近最佳的性能,最后一列除外。DeepSeekMoE 145B,甚至仅有一半激活专家参数的DeepSeekMoE 142B在性能上大大优于GShard 137B。此外,以28.5%的计算量,DeepSeekMoE 145B在性能上与DeepSeek 67B相媲美

论文贡献总结如下:

  • 架构创新。我提出了DeepSeekMoE,这是一种创新性的MoE架构,旨在实现终极的专家特化,它采用细粒度专家分割和共享专家隔离两种主要策略。

  • 经验证明进行了广泛的实验来经验证实DeepSeekMoE架构的有效性。实验结果验证了DeepSeekMoE 2B中的高水平专家特化,并表明DeepSeekMoE 2B几乎可以接近MoE模型的上限性能。

  • 可扩展性。将DeepSeekMoE扩大到训练一个160亿参数的模型,并展示仅使用约40%的计算量,DeepSeekMoE 16B就达到了DeepSeek 7B和LLaMA2 7B的可比性能。我们还进行了将DeepSeekMoE扩大到1450亿的参数的初步尝试,突出了其相对于GShard架构的持续优势,并展示了与DeepSeek 67B可比的性能。

  • MoE的对齐。成功地对DeepSeekMoE 16B进行了监督微调来创建对齐的聊天模型,展示了DeepSeekMoE 16B的适应性和通用性。

  • 公开发布。向公众发布了DeepSeekMoE 16B的模型checkpoint。值得注意的是,这个模型可以在不需要量化的情况下在具有40GB内存的单GPU上部署。

论文标题:DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models

论文链接:https://arxiv.org/pdf/2401.06066.pdf

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人抓取与操作经典规划算法(深蓝)——2

1 经典规划算法 位姿估计:(1)相机系位姿 (2)机器人系位姿 抓取位姿:(1)抓取位姿计算 (2)抓取评估和优化 路径规划:(1)笛卡…

【Qt】06-对话框

对话框 前言一、模态和非模态对话框1.1 概念1.2 模态对话框1.2.1 代码QAction类 1.2.2 模态对话框运行分析 1.3 非模态对话框1.3.1 代码局部变量和成员变量setAttribute 类 1.3.2 现象解释 二、标准对话框2.1 提示对话框 QMessageBox2.1.1 现象及解释 2.2 问题对话框2.2.1 现象…

< OS 有关 > Android 手机 SSH 客户端 app: connectBot

connectBot 开源且功能齐全的SSH客户端,界面简洁,支持证书密钥。 下载量超 500万 方便在 Android 手机上,连接 SSH 服务器,去运行命令。 Fail2ban 12小时内抓获的 IP ~ ~ ~ ~ rootjpn:~# sudo fail2ban-client status sshd Status for the jail: sshd …

是否需要显式使用 epoll_ctl ( fd , EPOLL_CTL_DEL , ... ) 来从红黑树里显式删除过期的套接字

(1)关于 epoll 操作的三大系统函数: epoll_create ( … ) 、 epoll_ctl ( … ) 、 epoll_wait(…)。具体的函数原型略。这些函数完成了 epoll 对象的创建、 套接字往 epoll 红黑树中的添加、修改 与 删除 。 本文的整理…

【Hadoop】Hadoop 概述

Hadoop 概述 Hadoop 是什么Hadoop 发展历史Hadoop 三大发行版本Hadoop 优势(4 高)Hadoop 组成(面试重点)HDFS 架构概述YARN 架构概述MapReduce 架构概述HDFS、YARN、MapReduce 三者关系 大数据技术生态体系 Hadoop 是什么 Hadoop…

网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。

一、前言 我从24年11月份开始学习网络爬虫应用开发,经过2个来月的努力,于1月下旬完成了开发一款网络爬虫软件的学习目标。这里对本次学习及应用开发进行一下回顾总结。 前几天我已经发了一篇日志(网络爬虫学习:应用selenium从搜…

week08_文本匹配任务

1、文本匹配任务概述 狭义: 给定一组文本,判断其是否语义相似 今天天气不错 match 今儿个天不错呀 √ 今天天气不错 match 你的代码有bug 以分值形式给出相似度 今天天气不错 match 今儿个天不错呀 0.9 今天天气不错 match…

Kafka 副本机制(包含AR、ISR、OSR、HW 和 LEO 介绍)

文章目录 Kafka 副本机制(包含AR、ISR、OSR、HW 和 LEO 介绍)1. 副本的基本概念2. 副本同步和一致性2.1 AR(Assigned Replicas)2.2 ISR(In-Sync Replicas)2.3 OSR(Out-of-Sync Replicas&#xf…

【JavaEE】_MVC架构与三层架构

目录 1. MVC架构 2. 三层架构 3. MVC架构与三层架构的对比 3.1 MVC与三层架构的对比 3.2 MVC与三层架构的共性 1. MVC架构 在前文已介绍关于SpringMAC的设计模式,详见下文: 【JavaEE】_Spring Web MVC简介-CSDN博客文章浏览阅读967次,点…

【Matlab高端绘图SCI绘图模板】第006期 对比绘柱状图 (只需替换数据)

1. 简介 柱状图作为科研论文中常用的实验结果对比图,本文采用了3组实验对比的效果展示图,代码已调试好,只需替换数据即可生成相关柱状图,为科研加分。通过获得Nature配色的柱状图,让你的论文看起来档次更高&#xff0…

【QT】 控件 -- 显示类

🔥 目录 [TOC]( 🔥 目录) 1. 前言 2. 显示类控件2.1 Label 1、显示不同文本2、显示图片3、文本对齐、自动换行、缩进、边距4、设置伙伴 3.2 LCD Number 3.3 ProgressBar 3.4 Calendar Widget 3. 共勉 🔥 1. 前言 之前我在上一篇文章【QT】…

前端-Rollup

Rollup 是一个用于 JavaScript 的模块打包工具,它将小的代码片段编译成更大、更复杂的代码,例如库或应用程序。它使用 JavaScript 的 ES6 版本中包含的新标准化代码模块格式,而不是以前的 CommonJS 和 AMD 等特殊解决方案。ES 模块允许你自由…

网络直播时代的营销新策略:基于受众分析与开源AI智能名片2+1链动模式S2B2C商城小程序源码的探索

摘要:随着互联网技术的飞速发展,网络直播作为一种新兴的、极具影响力的媒体形式,正逐渐改变着人们的娱乐方式、消费习惯乃至社交模式。据中国互联网络信息中心数据显示,网络直播用户规模已达到3.25亿,占网民总数的45.8…

STM32调试手段:重定向printf串口

引言 C语言中经常使用printf来输出调试信息,打印到屏幕。由于在单片机中没有屏幕,但是我们可以重定向printf,把数据打印到串口,从而在电脑端接收调试信息。这是除了debug外,另外一个非常有效的调试手段。 一、什么是pr…

利用飞书机器人进行 - ArXiv自动化检索推荐

相关作者的Github仓库 ArXivToday-Lark 使用教程 Step1 新建机器人 根据飞书官方机器人使用手册,新建自定义机器人,并记录好webhook地址,后续将在配置文件中更新该地址。 可以先完成到后续步骤之前,后续的步骤与安全相关&…

混合专家模型MoE的全面详解

什么是混合专家(MoE)? 混合专家(MoE)是一种利用多个不同的子模型(或称为“专家”)来提升LLM质量的技术。 MoE的两个主要组成部分是: 专家:每个前馈神经网络&#xff08…

基于Arcsoft的人脸识别

目录 一、前言 二、使用方法 三、获取SDK 四、人脸检测/人脸识别 五、代码实现 一、前言 face++,百度ai,虹软,face_recognition,其中除了face_recognition是python免费的一个库安装好响应的库直接运行就好,另外三个需要填入相关申请的信息id和key。 分别对应着相应的人…

电梯系统的UML文档13

5.2.6 CarPositionControl 的状态图 图 24: CarPositionControl 的状态图 5.2.7 Dispatcher 的状态图 图 25: Dispatcher 的状态图 5.3 填补从需求到状态图鸿沟的实用方法 状态图能对类的行为,一个用例,或系统整体建模。在本文中,状态图…

Ollama windows安装

Ollama 是一个开源项目,专注于帮助用户本地化运行大型语言模型(LLMs)。它提供了一个简单易用的框架,让开发者和个人用户能够在自己的设备上部署和运行 LLMs,而无需依赖云服务或外部 API。这对于需要数据隐私、离线使用…

C++二叉树进阶

1.二叉搜索树 1.1二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一颗空树,或者具有以下性质的二叉树 若它的左子树不为空,则左子树上所有结点的值小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值…