在 LLM 架构中应用多专家模型

张裕  高级会员 | 2024-7-16 03:09:43 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 213|帖子 213|积分 639

LLM、AIGC、RAG 开发交换裙:377891973
本文转载自:在 LLM 架构中应用多专家模型 2024年 3月 14日 By Kyle Kranen and Vinh Nguyen
https://developer.nvidia.cn/zh-cn/blog/applying-mixture-of-experts-in-llm-architectures/


  

一、概述



多专家模型 (MoE) 大型语言模型 (LLM) 架构最近出现了,无论是在 GPT-4 等专有 LLM 中,照旧在开源版本的社区模型中,如 Mistral Mixtral 8x7B。
Mixtral 模型的强劲相对性能引起了极大的兴趣,并引发了许多关于 MoE 及其在 LLM 架构中使用的问题。
那么,什么是 MoE,为什么它很重要?
多专家模型是神经网络的架构模式,它将层或运算 (例如线性层、MLP 或留意力投影) 的计算拆分为多个“专家”子网络。
这些子网络各自独立执行自己的计算,并组合其结果以创建 MoE 层的最终输出。
MoE 架构可以是麋集的,这意味着每个专家都用于每个输入,也可以是希罕的,这意味着每个输入都使用一个专家子集。
本文主要探讨MoE在LLM架构中的应用。
如需相识MoE在其他范畴的应用,请参阅使用希罕的专家混淆模型扩展视觉、适用于多语言ASR流式传输的专家级混淆转换器以及FEDformer:用于恒久序列猜测的频率增强型分解转换器。

二、LLM 架构范畴的专家齐聚一堂

本节提供一些配景信息,并重点介绍在 LLM 架构中使用 MoE 的优势。

1、模型容量

模型容量可以定义为模型能够明白或表达的复杂程度。
通常情况下,(颠末充实训练的) 具有更多参数的模型过去证实具有更大的容量。
如何将 MoE 分解为容量?
参数较多的模型通常具有更大的容量,而 MoE 模型可以通过将模型的各个层更换为 MoE 层 (此中专家子网络的大小与原始层相同),从而有效地增加相对于基础模型的容量。
研究人员已经对MoE模型的正确性举行了观察,该模型使用与全麋集模型相似数目的标志举行训练(MoE大小:E+P参数与全麋集大小相比:EP参数)。
尽管这仍然是一个活跃的研究范畴,但全麋集模型的表现普遍优于MoE模型。
有关更多具体信息,请参阅 适用于路由语言模型的统一扩展定律。
这就提出了一个问题,为什么不直接使用麋集模型?
这里的答案在于希罕 MoE,具体来说,希罕 MoE 在每个使用的参数上都更高效。
请思量 Mixtral 8x7B 是一个使用 8 位专家 MoE 的模型,此中每个令牌仅使用 2 位专家。
在这种情况下,在模型中单个令牌的任何给定前向传递中,批量中任何给定令牌使用的参数数目都要低得多 (共使用 460 亿个参数,此中使用 120 亿个参数)。
与使用全部 8 位专家或雷同大小的全麋集模型相比,这须要的计算量更少。
给定在训练中将令牌分批在一起,则使用大多数 (如果不是全部) 专家。
这意味着在此模式中,与相同大小的麋集模型相比,希罕 MoE 使用的计算量较少,且内存容量相同。
在一个 GPU 小时数备受追逐、时间和本钱高昂的天下里,大规模训练全麋集模型显得尤为昂贵。
据报道,Meta 训练的 Lama 2 模型集(全麋集)耗费了 330 万 NVIDIA A100 预训练的 GPU 小时数。
具体来说,在 1024 个 GPU 上以全容量运行 330 万个 GPU 小时,不包罗任何停机时间,大约须要 134 天。
这还不包罗任何实行、超参数扫描或训练停止。

2、MoE 在低落本钱的同时训练更大的模型

MoE 模型通过提高每个权重的触发器服从来低落本钱,这意味着在具有固定时间或计算本钱限制的机制下,可以处理更多令牌,并可以进一步训练模型。
鉴于具有更多参数的模型须要更多样本才能完全收,这基本上意味着我们可以在固定预算下训练比麋集模型更好的 MoE 模型。

3、 MoE 可低落耽误

在大量提示和批量(此中计算是瓶颈)的情况下,MoE 架构可用于低落第一个令牌的服务耽误。
随着用例(例如 检索增强生成 (RAG) 和自主智能体可能须要多次调用模型,从而增加单次调用耽误。

三、MoE 架构的工作原理是什么?

MoE 模型有两个关键组件。
首先,构成混淆模型的“专家”子网络,用于麋集和希罕 MoE.其次,希罕模型使用路由算法来确定哪些专家会处理哪些标志。
在麋集和希罕 MoE 的某些公式中,MoE 可能包罗一个加权机制,用于执行专家输出的加权匀称值。
在本文中,我们将重点介绍希罕案例。
在许多已发表的论文中,MoE 技术应用于 Transformer 模块内的多层感知器 (MLP).在这种情况下,Transformer 模块内的 MLP 通常被一组专家 MLP 子网络代替,这些子网络会联合其结果,使用匀称值或求和生成 MLP MoE 输出。
研究还表明,MoE 的概念可以推广到 Transformer 架构的其他部分。
最近的论文 SwitchHead: 利用混淆专家留意力加速 Transformer 建议 MoE 也可应用于投影层,这些层将输入转换为 Q、K 和 V 矩阵,以供留意力运算使用。
其他论文则建议将条件执行 MoE 概念应用于留意力头自己。
在特定输入的情况下,路由网络(或算法)用于确定哪些专家被激活。
路由算法可以是简单的(在张量匀称值中统一选择或归并),也可以是复杂的,如在接纳专家选择路由的多专家组合中所述。
在决定给定路由算法对问题的适用性的许多因素中,我们经常讨论两个核心因素:特定路由机制下的模型正确性和特定机制下的负载均衡。
选择精确的路由算法可以在正确性和触发器服从之间举行衡量。
完善的负载均衡路由算法可能会低落每个令牌的正确性,而最正确的路由算法可能会在专家之间分配不均的令牌。
许多提议的路由算法旨在最大化模型正确性,同时最小化任何给定专家提出的瓶颈。
固然 Mixtral 8x7B 使用 Top-K 算法来路由令牌,但诸如 接纳专家选择路由的多专家组合 引入概念,以确保专家不会被过度引导。
这可以防止瓶颈的形成。

四、试验 Mixtral 模型

在实践中,每位专家都会学习什么?他们专注于低级语言结构 (例如标点符号、动词、形容词等),照旧精通高级概念和范畴 (例如编码、数学、生物学和法律)?
为了举行实行,我们使用了Mixtral 8x7B 模型,该模型包罗32个顺序Transformer块,每个块中的MLP层被更换为希罕MoE块,每个MoE块包罗8个专家,每个令牌只激活此中两个专家。
其他层,包罗自留意力层和归一化层,由全部令牌共享。
值得留意的是,当读取 8x7B 的名称时,可以想象专家是 8 个独立的完整网络,每个网络都有 70 亿个参数,每个令牌都由这 8 个完整网络中的一个完全端到端处理 (图 1)。
这种设计将生成一个 8x7B=56B 的模型。


图 1.Mixtral 8x7B 模型的可能表明
固然这无疑是合理的设计,但并不是 Mixtral 8x7B 中使用的设计。
图 2 描述了实际设计,每个令牌都处理了 70 亿个参数。
请留意,令牌及其副本 (由第二专家在每层处理) 总共仅处理 129 亿个参数,而不是 2x7B=14B.由于共享层的原因,整个网络仅处理 470 亿个参数,而不是 8x7B=56B 参数。


图 2.简化的 Mixtral 8x7B 模型架构

因此,每个通过网络的令牌都必须通过雷同格点的结构,
可能的网络实例化。
如果我们将每个实例化都视为“全栈专家”(处理端到端令牌的专家),是否有可能相识它们提供的专业知识?遗憾的是,由于 28%=32%是一个非常大的数字 (+2+10%=46%),它比用于训练 LLM 的全部数据 (大多数 LLM 的数据为+3T 到 10T 令牌) 大几个数目级,因此同一实例化很少会处理任何两个令牌。
因此,我们将研究每个层专家专门研究的是什么,而不是每个完整的专家组合。

五、实行结果

我们使用大规模的多使命语言明白(MMLU)基准测试来评估模型的性能。
该基准测试包罗涉及57个主题的多项选择题,涵盖了广泛的范畴,如抽象代数、天下信仰、专业法、解剖学、天文学和商业道德等。
我们记录了第1层、第16层和第32层8位专家中每个专家的令牌专家作业。
在解析数据后,有几项观察值得留意。

1、负载均衡

得益于负载均衡,专家可以获得均衡的负载,但最忙碌的专家仍可获得比最忙碌的专家多 40 – 60%的令牌。


图 3.全部 MMLU 主题的专家加载分布

2、范畴专家使命分配

某些范畴比其他范畴更能激活某些专家。
在第 32 层中,此中一个示例是抽象代数,它比其他示例更多使用专家 3 和专家 8、


图 4.在第 32 层中,抽象代数的令牌分布情况
另一方面,专业法范畴主要激活专家 4,而相对来说使专家 3 和专家 8 静音。


图 5.在专业定律的第 32 层中,令牌在专家上的分布
另一个引人入胜的例子是天下性的教会,专家 7 收到的令牌比专家 8 少 5 倍多。


图 6.针对天下性教会,在第 32 层中,令牌在专家上的分布
这些实行结果表明,专家的负载分布倾向于在差别的主题范围内保持划一。
但是,当全部样本都完全属于某个主题时,可能会出现很大的分布不均衡。

3、专家推荐的最佳令牌

图 7 中的“cloud”(云) 一词显示了每位专家最频繁处理的令牌。


图 7.专家处理的最常见令牌

4、按令牌划分的首选专家

每个令牌是否都有首选专家?每个令牌好像都有一组首选专家,如下示例所示。
令牌“:”和全部“:”令牌的专家分配在第 1 层由专家 1 和 7 处理,在第 32 层由专家 3 和 8 处理 (图 8)。
图 9、10 和 11 显示了各种令牌的专家分配。


图 8.令牌“:”的专家分配


图 9.令牌“。”的专家分配


图 10.专家分配令牌“what”


图 11.令牌“Who”的专家分配

六、总结

MoE 模型为模型预训练吞吐量提供了显着的优势,支持在与麋集模型相同的计算量上训练更具表现力的希罕 MoE 模型。
这将在相同的计算预算下生成更具竞争力的模型。
MoE 模型可以针对整个网络或现有网络中的特定层。
通常,应用带有路由的希罕 MoE 以确保仅使用部分专家。
我们的实行探索了令牌的分配方式以及专家之间的相对负载均衡。
这些实行表明,尽管接纳了负载均衡算法,但仍然存在很大的分布不均衡,这可能会影响推理服从低下,由于一些专家提前完成工作,而另一些则过载。
这是一个值得关注的积极研究范畴。
您可以尝试 Mixtral 8x7B 指令模型 以及其他 AI 基础模型,这些模型可以在 NVIDIA NGC 目录中找到。

2024-05-28(二)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表