【大模型LLM面试合集】大语言模型架构_MoE论文

1.MoE论文

参考文章:

  • Mixture of Experts-Introduction
  • Understanding the Mixture-of-Experts Model in Deep Learning

论文相关:

  • 论文名称:Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer
  • 论文地址:Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer

混合专家(Mixture of Experts,MoE)就像是神经网络世界中的一种团队合作技术。想象一下,把一项大任务分解成更小的部分,让不同的专家来处理每个部分。然后,有一个聪明的法官,他根据情况决定遵循哪位专家的建议,所有这些建议都融合在一起。

尽管它最初是用神经网络来解释的,但你可以将这个想法用于任何类型的专家或模型。这有点像你把不同的味道结合在一起做一道美味的菜,这属于一组很酷的综合学习方法,称为元学习。

因此,在本文中,将了解专家组合模型的技巧。

1.摘要

  • 神经网络的吸收信息的容量(capacity)受限于参数数目。
  • 条件计算(conditional computation)**针对于每个样本,激活网络的部分子网络进行计算**,它在理论上已证明,可以作为一种显著增加模型容量的方法。
  • 在实际中,在牺牲少量计算效率的情况下,实现了 1000 倍模型容量(model capacity) 的提升。
  • 引入了稀疏门控专家混合层(Sparsely-Gated Mixture-of-Experts Layer),包括数以千计的前馈子网络。对于每一个样本,有一个可训练的门控网络(gating network)会计算这些专家(指前馈子网络)稀疏组合。
  • 专家混合(MoE)应用于语言建模和机器翻译任务中,对于这些任务,从训练语料库中吸收的巨量知识,是十分关键的。
  • 在我们提出的模型架构里,MoE 包含 1370 亿个参数,以卷积的方式放在堆叠 LSTM 层之间。
  • 在大型语言建模和及其翻译的基准测试中,该模型以更少的计算成本,实现了比最先进方法更好的结果。

2.介绍和相关工作

2.1 条件计算

充分利用训练数据和模型大小的规模,一直以来都是深度学习成功的关键。

  • 当训练集足够大,增加神经网络的容量(即参数数目),可以得到更高的预测准确度。
  • 对于传统的深度学习模型,对每一个样本都会激活整个模型,这会导致在训练成本上,以大约二次方的速度增长,因为模型大小和训练样本数目都增加了
  • 当前计算能力和分布式计算的进展,并不能满足这样的需求。

因此有很多工作提出了各种形式的条件计算,它们在不显著增加计算成本的情况下**,尽量增加模型的容量**。

  • 在这些算法里,以每个样本为基础(on a per-example basis),会激活或冻结网络中的大部分。
  • 这种门控决策机制,可以是二进制的,也可以是稀疏而连续的;可以是随机性的,也可以是确定性的
  • 门控决策通过有各种形式的强化学习和反向传播来训练。

在这里插入图片描述

Figure 1:MoE 层嵌入到循环语言模型中。在本例中,稀疏的门控函数选择两个专家来执行计算。门控网络会调整专家的输出。

尽管这种思想在理论上很有前景,但是目前为止,还没有工作展现在模型容量、训练时间或模型质量上有足够的提升。我们把原因归结为这些挑战:

  • 现代计算设备(特别是 GPU),相比分支(branching)而言,在数值计算上更快。
  • 大的批量大小对于性能很关键。而条件计算减少了批量大小。
  • 网络带宽会成为性能瓶颈。
  • 损失项可能对于实现好的效果是必需的,因此损失项可能会影响模型质量和负载平衡。
  • 对于大型数据集,模型容量是最关键的。目前条件计算的文献处理的图像识别数据集都相对太小了,难以为大模型提供足够多的信号。

本文首先解决了上述挑战,并且最后看到了条件计算的前景。

  • 我们得到了 1000 倍的模型容量提升,只花费了少量计算开销
  • 得到的结果也优于最顶尖的结果

2.2 本文方法:稀疏门控专家混合层

我们的条件计算方法,就是引入了一个新的通用神经网络组件类型:稀疏门控专家混合层

MoE 包含:

  • 一些专家,每个专家都是一个简单的前馈神经网络
  • 一个可训练的门控网络,它会挑选专家的一个稀疏组合,用来处理每个输入。
  • 所有网络都是使用反向传播联合训练的。

尽管该技术是通用的,但是本文聚焦在语言建模和机器翻译任务中(这些任务都受益于非常大的模型)。

  • 具体说来,如图一所示,我们把 MoE 以卷积的方式(convolutionally)放在多层 LSTM 层之间。
  • 在文本的每个位置上,就会调用 MoE 一次,进而可能选择不同的专家组合
  • 不同的专家会倾向于变得高度专业化(基于语法和语义)

3.混合专家层的结构

3.1 MoE层

MoE 层包括 :

  • n 个“专家网络”: E 1 , ⋯ , E n E1,⋯,En E1,,En
  • 一个门控网络 G G G,其输出是一个稀疏的 n n n 维向量。

尽管从理论上讲,每个专家网络只要保持一致的输入大小和输出大小就可以了;但是,在本文的研究里,我们限制了专家网络具有相同的网络结构,而网络参数保持独立。

给定输入 x x x,定义 G ( x ) G(x) G(x)是门控网络的输出; E i ( x ) Ei(x) Ei(x) 是第 i i i 个专家网络的输出。于是 MoE 模块的输出为:

y = ∑ i = 1 n G ( x ) i E i ( x ) y=\sum_{i=1}^{n} G(x)_{i} E_{i}(x) y=i=1nG(x)iEi(x)

基于 G ( x ) G(x) G(x) 输出的稀疏性,可以节省计算量。

  • G ( x ) i = 0 G(x)i=0 G(x)i=0时,我们无需计算 E i ( x ) Ei(x) Ei(x)
  • 在我们的实验中,我们有数以千计的专家,但是针对每个样本,只需要用到少量的专家
  • 如果专家数目非常大,我们可能要采用层次化的 MoE;本文我们不会使用层次化的 MoE,相关细节感兴趣可以见附录 B。

在这里插入图片描述

3.2 层次化MoE

如果专家数量很大,可以通过使用两级层次MoE来降低分支因子。在分层MoE中,主选通网络选择“专家”的稀疏加权组合,每个专家本身就是具有自己选通网络的专家的二次混合。

主选通网络是 G p r i m a r y Gprimary Gprimary,次选通网络为 ( G 1 , G 2 , … , G a ) (G1,G2,…,Ga) G1G2Ga,专家网络为 ( E 0 , 0 , E 0 , 1 , … , E a , b ) (E0,0,E0,1,…,Ea,b) E0,0E0,1Eab。MoE的输出由以下公式给出:

y H = ∑ i = 1 a ∑ j = 1 b G p r i m a r y ( x ) i ⋅ G i ( x ) j ⋅ E i , j ( x ) y_{H}=\sum_{i=1}^{a} \sum_{j=1}^{b} G_{p r i m a r y}(x)_{i} \cdot G_{i}(x)_{j} \cdot E_{i, j}(x) yH=i=1aj=1bGprimary(x)iGi(x)jEi,j(x)

3.3 门控网络

(1)Softmax Gating

一种朴素的想法是,用一个矩阵乘上输入,然后经过一个 Softmax 函数,这种方法实际上是一种非稀疏的门控函数:

G σ ( x ) = Softmax ⁡ ( x ⋅ W g ) G_{\sigma}(x)=\operatorname{Softmax}\left(x \cdot W_{g}\right) Gσ(x)=Softmax(xWg)

(2)Noise Top-K Gating

在 Softmax 门控网络基础上,**加入两个元素:**稀疏性和噪声。在执行 Softmax 函数之前:

我们加入了可调的高斯噪声,噪声项是为了帮助负载均衡(load balancing),我们在附录 A 有详细讨论。

并且保留前 k 个值,其他设置为 − ∞ -\infty 。这种稀疏性是为了节省计算资源,尽管这种形式的稀疏性,从理论上会造成一些可怕的输出间断性但在实际使用中,并没有观察到这种问题

每个分量的噪音量,通过另一个可训练的权重矩阵 W n o i s e W_{noise} Wnoise 来控制。

G ( x ) = Softmax ⁡ ( KeepTopK ⁡ ( H ( x ) , k ) ) G(x)=\operatorname{Softmax}(\operatorname{KeepTopK}(H(x), k)) G(x)=Softmax(KeepTopK(H(x),k))

H ( x ) i = ( x ⋅ W g ) i + S t a n d a r d N o r m a l ( ) ⋅ Softplus ⁡ ( ( x ⋅ W noise  ) i ) H(x)_{i}=\left(x \cdot W_{g}\right)_{i}+ StandardNormal ()\cdot \operatorname{Softplus}\left(\left(x \cdot W_{\text {noise }}\right)_{i}\right) H(x)i=(xWg)i+StandardNormal()Softplus((xWnoise )i)

K e e p T o p K ( v , k ) i = { v i if  v i is in the top  k elements of  v − ∞ otherwise.  KeepTopK (v, k)_{i}=\left\{\begin{array}{ll}v_{i} & \text { if } v_{i} \text { is in the top } k \text { elements of } v \\ -\infty & \text { otherwise. }\end{array}\right. KeepTopK(v,k)i={vi if vi is in the top k elements of v otherwise. 

3.4训练门控网络

使用简单的反向传播来训练门控网络以及接下来的模型。

4.解决性能挑战

4.1 批量减小问题(The Shrinking Batch Problem)

由于门控网络对每个样本,在 n n n 个专家中,选择 k k k 个。那么对于 b b b个样本的批次,每个转接都会收到更加更加小的批次(大概 k b n < < b \frac{kb}{n} << b nkb<<b)。这会导致朴素的 MoE 实现在专家数量增加时,非常低效。解决批量减小问题,就是需要让原始的批量大小尽可能的大。然而,批量大小会收到内存的限制。我们提出如下技术来提高批量大小:

  • 混合数据并行和模型并行(Mixing Data Parallelism and Model Parallelism):相当于变相的扩大b,假设有d个device,每个device上一次处理b个样本,那么在这次训练中,batch=bd,从而每个expert会接收kbd/n个样本。
  • 充分利用卷积
  • 增加循环 MoE 的批量大小

4.2 网络带宽

5.平衡专家的利用率

我们观察到,门控网络倾向于收敛到一种不好的状态,即对相同的少量专家,总是会得到较大的权重这种不平衡是不断自我强化的,随着更好的专家不断训练学习,它们更有可能被门控网络选中。面对这种问题,过去文献有的用硬性约束,有的用软性约束

而我们采用软性约束方法。我们定义对于一个批次训练样本专家重要度(the importance of an expert),即该专家在一个批次上的门控输出值的和。并且定义损失项 L i m p o r t a n c e L_{importance} Limportance ,加入到模型的总损失上。该损失项等于所有专家重要度的方差的平方,再加上一个手工调节的比例因子 w i m p o r t a n t w_{important} wimportant。这个损失项会鼓励所有专家有相同的重要度

I m p o r t a n c e ( X ) = ∑ x ∈ X G ( x ) Importance (X)=\sum_{x \in X} G(x) Importance(X)=xXG(x)

L importance  ( X ) = w importance  ⋅ C V ( Importance  ( X ) ) 2 L_{\text {importance }}(X)=w_{\text {importance }} \cdot C V(\text { Importance }(X))^{2} Limportance (X)=wimportance CV( Importance (X))2

尽管现在的损失函数可以保证相同的重要度,专家仍然可能接收到差异很大的样本数目。例如,某些专家可能接收到少量的大权重的样本;而某些专家可能接收到更多的小权重的样本。为了解决这个问题,我们引入了第二个损失函数:$L_{load} $,它可以保证负载均衡。附录 A 会包含该函数的定义。

6.实验

6.1 10 亿词汇的语言建模基准

MoE模型:所提出的模型由两个堆叠的LSTM层组成,它们之间有一个MoE层。

使用包含4、32和256名专家的平面MoE以及包含256、1024和4096名专家的分层MoE来训练模型。

每个专家都有大约100万个参数。

对于所有MoE层,每次输入都有4名专家活跃。

在这里插入图片描述

左图:有4名始终活跃的专家的模型与计算匹配的基线模型表现相似(不足为奇),而最大的模型(4096名专家)在测试集上的困惑度降低了24%,令人印象深刻。

右图:与LSTM模型相比,MoE模型在相似的计算预算下实现了更低的困惑。

在这里插入图片描述

对于没有MoE的基线模型,观察到的计算效率在1.07–1.29 TFLOPS/GPU之间。

对于所提出的低计算MoE模型,计算效率在0.74-0.90 TFLOPS/GPU之间,但4专家模型没有充分利用可用的并行性。

计算量最高的MoE模型在1.56 TFLOPS/GPU时效率更高,这可能是由于矩阵更大。

6.2 1000 亿词汇的谷歌新闻语料库

在这里插入图片描述

当训练超过1000亿个单词时,测试困惑度显著提高,达到65536个专家(680亿个参数),比计算匹配的基线低39%,但在131072个专家时会下降,这可能是稀疏性过大的结果。

6.3 机器翻译

这里使用的MoE模型是GNMT的修改版本。

为了减少计算,编码器和解码器中的LSTM层的数量分别从9和8减少到3和2。

MoE层被插入编码器(在层2和3之间)和解码器(在层1和2之间)中。每个MoE层包含多达2048名专家,每个专家都有大约200万个参数,总共为模型增加了大约80亿个参数。

在这里插入图片描述

Results on WMT’14 En>Fr newstest2014

在这里插入图片描述

Results on WMT’14 En>De newstest2014

所提出的方法在WMT’14 En>Fr和En>De基准上获得了40.56和26.03的BLEU分数,优于GNMT和Deep-Att。

在这里插入图片描述

在Google Production数据集上,MoE模型在训练了六分之一的时间后,测试BLEU得分也提高了1.01。

在这里插入图片描述

7.结论

  • 该工作是第一个展现基于深度网络的条件计算的重大胜利。
  • 我们探讨了设计考虑、条件计算的挑战、从算法和工程上的解决方案。
  • 虽然我们聚焦在文本领域上,条件计算仍然可以在其他领域发挥作用。我们期望有更多条件计算的实现和应用。

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

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

相关文章

秋招突击——7/9——复习{Java实现——LRU,Java实现——搜索插入位置}——新作{二分查找——搜索二维矩阵}

文章目录 引言复习Java实现——LRU缓存对照实现 Java实现——搜索插入位置java实现知识补充 新作搜索二维矩阵个人实现参考实现 总结 引言 以后都要向使用Java刷算法进行过滤了&#xff0c;所以今天主要是复习为主&#xff0c;复习两道之前做过的题目&#xff0c;然后做两道新…

如何在 Microsoft Edge 上使用开发人员工具

Microsoft Edge 提供了一套强大的开发人员工具&#xff0c;可帮助 Web 开发人员检查、调试和优化他们的网站或 Web 应用程序。 无论您是经验丰富的 Web 开发人员还是刚刚起步&#xff0c;了解如何有效地使用这些工具都可以对开发过程产生重大影响。 在本文中&#xff0c;我们…

Java版Flink使用指南——分流导出

大纲 新建工程编码Pom.xml自定义无界流分流 测试工程代码 在之前的案例中&#xff0c;我们一直使用的是单个Sink来做数据的输出。实际上&#xff0c;Flink是支持多个输出流的。本文我们就来讲解如何在Flink数据输出时做分流处理。 我们将基于《Java版Flink使用指南——自定义无…

【目标检测】使用自己的数据集训练并预测yolov8模型

1、下载yolov8的官方代码 地址&#xff1a; GitHub - ultralytics/ultralytics: NEW - YOLOv8 &#x1f680; in PyTorch > ONNX > OpenVINO > CoreML > TFLite 2、下载目标检测的训练权重 yolov8n.pt 将 yolov8n.pt 放在ultralytics文件夹下 3、数据集分布 注…

国际网课平台Udemy上的亚马逊云科技AWS免费高分课程和创建、维护EC2动手实践

亚马逊云科技(AWS)是全球云行业最&#x1f525;火的云平台&#xff0c;在全球经济形势不好的大背景下&#xff0c;通过网课学习亚马逊云科技AWS基础备考亚马逊云科技AWS证书&#xff0c;对于找工作或者无背景转行做AWS帮助巨大。欢迎大家关注小李哥&#xff0c;及时了解世界最前…

文件操作和IO流(Java版)

前言 我们无时无刻不在操作文件。可以说&#xff0c;我们在电脑上能看到的图片、视频、音频、文档都是一个又一个的文件&#xff0c;我们需要从文件中读取我们需要的数据&#xff0c;将数据运算后也需要将结果写入文件中长期保存。可见文件的重要性&#xff0c;今天我们就来简…

分布式锁(仅供自己参考)

分布式锁&#xff1a;满足分布式系统或集群式下多进程可见并且互斥的锁&#xff08;使用外部的锁&#xff0c;因为如果是集群部署&#xff0c;每台服务器都有一个对应的tomcat&#xff0c;则每个tomcat的jvm就不同&#xff0c;锁对象就不同&#xff08;加锁的机制&#xff0c;每…

独立开发者系列(23)——Linux掌握小结

只要开发系统&#xff0c;就绕不开使用Linux服务器 &#xff0c;而Linux除了使用BT面板进行初级管理&#xff0c;很多稍微高级点的管理&#xff0c;还是需要命令行进行的。这里总结在不需要精通的情况下&#xff0c;掌握常见命令和环境的相关配置。 &#xff08;1&#xff09…

HI3559AV100四路IMX334非融合拼接8K视频记录

下班无事&#xff0c;写篇博客记录海思hi3559av100四路4K视频采集拼接输出8K视频Demo 一、准备工作&#xff1a; 软件&#xff1a;Win11系统、VMware虚拟机Ubuntu14、Hitool、Xshell等 硬件&#xff1a;HI3559AV100开发板4路imx334摄像头、串口线、电源等 附硬件图&#xff1…

来一场栈的大模拟(主要是单调栈)

一.栈模拟 二.单调栈求最大矩形面积 通常&#xff0c;直方图用于表示离散分布&#xff0c;例如&#xff0c;文本中字符的频率。 现在&#xff0c;请你计算在公共基线处对齐的直方图中最大矩形的面积。 图例右图显示了所描绘直方图的最大对齐矩形。 输入格式 输入包含几个测…

哪里有主机游戏店收费系统,佳易王电玩ps5ps4计时计费系统操作教程

哪里有主机游戏店收费系统&#xff0c;佳易王电玩ps5ps4计时计费系统操作教程 以下软件操作教程以&#xff0c;佳易王计时计费管理系统为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件程序图文讲解 1、主机游戏计时软件、电玩店计费软…

HumanoidBench——模拟仿人机器人算法有未来

概述 论文地址&#xff1a;https://arxiv.org/pdf/2403.10506 仿人机器人具有类似人类的外形&#xff0c;有望在各种环境和任务中为人类提供支持。然而&#xff0c;昂贵且易碎的硬件是这项研究面临的挑战。因此&#xff0c;本研究开发了使用先进模拟技术的 HumanoidBench。该基…

GTK是如何加密WLAN组播和广播数据的?

1. References WLAN 4-Way Handshake如何生成GTK&#xff1f;_tk bigtk gtk igtk-CSDN博客 2. 概述 在Wi-Fi网络中&#xff0c;单播、组播和广播帧的加密算法是由AP决定的。其中组播帧和广播帧的加密使用GTK密钥&#xff0c;其PTK的密钥结构如下图所示&#xff1a; GTK的组成…

2024 Q3 NAND闪存价格|企业级依然猛涨,消费级放缓

在企业领域持续投资于服务器基础设施&#xff0c;特别是在人工智能应用的推动下&#xff0c;企业级SSD需求增加的同时&#xff0c;消费电子市场却依旧疲软。加之NAND供应商在2024年下半年积极扩大生产&#xff0c;预计到2024年第三季度&#xff0c;NAND闪存供应充足率将上升至2…

“郑商企航”暑期社会实践赴美丽美艳直播基地开展调研

马常旭文化传媒网讯&#xff08;记者张明辉报道&#xff09;导读&#xff1a;2024 年 7 月 3 日&#xff0c;商学院暑期社会实践团“郑商企航”在河南省郑州市新密市岳村镇美丽美艳直播基地&#xff0c;展开了一场意义非凡的考察活动&#xff0c;团队成员深度调研了直播基地的产…

【系统架构设计】计算机组成与体系结构(二)

计算机组成与体系结构 计算机系统组成存储器系统前言主存储器存储器存储数量&#xff08;计算&#xff09; 辅助存储器&#xff08;以磁盘为例&#xff09;Cache存储器 流水线 计算机系统组成 存储器系统 前言 存储器用来存放程序和数据的部件&#xff0c;是一个记忆装置&am…

【自动驾驶/机器人面试C++八股精选】专栏介绍

目录 一、自动驾驶和机器人技术发展前景二、C在自动驾驶和机器人领域的地位三、专栏介绍四、订阅需知 一、自动驾驶和机器人技术发展前景 随着人工智能、机器学习、传感器技术和计算能力的进步&#xff0c;自动驾驶和机器人的技术水平不断提升&#xff0c;使得它们更加智能、可…

fatal error: napi.h: No such file or directory

使用Cmake-js构建基于node-addon-api的C扩展 基于node-addon官方的eample改造测试&#xff1a;https://github.com/nodejs/node-addon-examples Cmake-js的github给了一个例子&#xff0c;但是是基于NAN的&#xff0c;而不是node-addon-api&#xff1a;https://github.com/cma…

如何压缩视频大小不改变画质,视频太大怎么压缩变小

在现代生活中&#xff0c;视频已经成为我们记录生活、分享快乐的重要工具。但随之而来的问题就是视频文件体积过大&#xff0c;不仅占用大量存储空间&#xff0c;还难以在社交平台上快速分享。别担心&#xff0c;下面我就来教大家几种简单有效的方法&#xff0c;让视频文件轻松…

回溯算法-以医院信息管理系统为例

1.回溯算法介绍 1.来源 回溯算法也叫试探法&#xff0c;它是一种系统地搜索问题的解的方法。 用回溯算法解决问题的一般步骤&#xff1a; 1、 针对所给问题&#xff0c;定义问题的解空间&#xff0c;它至少包含问题的一个&#xff08;最优&#xff09;解。 2 、确定易于搜…