首页 > 其他分享 >MOE vs MOT 让LLM更加有效

MOE vs MOT 让LLM更加有效

时间:2024-09-18 14:52:27浏览次数:13  
标签:令牌 模型 专家 MOT token vs MOE 混合 MoE

图片

知乎:北方的郎
链接:https://zhuanlan.zhihu.com/p/691070810

翻译自:https://www.superannotate.com/blog/mixture-of-experts-vs-mixture-of-tokens

事实证明,LLM的表现与模型大小和可扩展性呈正相关。这种扩展伴随着计算资源的扩展,也就是说,模型越大,成本就越高。

图片

基于参数计数的 LLM 性能

这是该行业面临的最大挑战之一。虽然专家混合(Mixture of Experts:MOE)最近被大肆宣传用于改进Transformer模型,但机器学习人员发现了一种更有前途的新方法——令牌混合(Mixture of Tokens:MOT)。MOE在尝试不同模型时表现出的某些缺点导致需要其他方法。在这篇博文中,我们将讨论这些新技术,并研究 MoT 在保持训练和推理成本的同时扩展大型语言模型的方式。

Mixture of Experts

Mixture of Experts 因显着优化 Transformer 的可扩展性而闻名。要理解这一点,我们首先要了解这些“专家”是谁。在 MoE 中,专家是专门执行一项或多项任务的模型。在标准Transformer模型中,令牌(token)由标准前馈层处理。MoE 没有采用这种方法,而是将每个token定向到一组专家以及一个称为控制器的小型网络。该控制器确保每个令牌仅由一小部分专家处理。进一步了解可以参考:https://arxiv.org/pdf/2310.15961.pdf

开关Transformer将每个令牌发送给控制器产生的得分最高的一位专家。这项技术导致参数大幅减少——从 1.6T 模型(T5 架构)到等效 1.4B vanilla Transformer 的 FLOPS 成本。

专家选择提供了一种略有不同的方法。不是让token选择前 k 个专家,而是专家自己选择前 k 个token。该方法保证了均匀的负载平衡(每个专家接收相同数量的令牌),并在训练效率和下游性能方面取得了显着的进步。然而,存在某些Token不被选择的风险。

图片

MoE 方法:从左到右:标准前馈、开关、专家选择


当前方法的局限性

虽然大参数 MoE 架构的性能令人印象深刻,但它们在训练和推理过程中面临着一系列新的挑战。最值得注意的是:

训练不稳定性:这种方法谨慎地选择专家并将其与token匹配。这意味着控制器权重的微小变化可能会对控制器决策产生不成比例的影响。

负载不平衡: MoE 的问题是我们无法有效地平衡令牌和专家的分配方式,因为路由网络的选择没有受到有效的限制。这就是为什么有些令牌没有任何专家来处理它们(令牌丢弃),并且几乎所有令牌都只分配给少数专家(模型崩溃)。

信息泄漏:一些成功的 MoE 方法将序列中不同位置的令牌一起处理(即,通过比较批次中所有令牌的分数)。这造成了序列内信息泄漏并阻碍了它们在自回归解码中的实用性。

知识混合性:由于专家数量有限,传统 MoE 架构中的专家通常会积累广泛的知识。这种广泛的知识库削弱了个别专家的专业性和有效性。

知识冗余:多个专家在学习相似信息时有趋同的倾向,导致知识领域重叠和模型参数使用效率低下。

在他们最近的论文中,Cohere AI 的科学家讨论了解决MOE主要挑战之一的方法——必须将所有专家存储在内存中。他们通过将 MoE 架构与轻量级专家独特地结合起来,提出了参数极其高效的 MoE。他们的 MoE 架构优于标准 PEFT 方法,并且仅通过更新轻量级专家即可达到完全微调的效果——不到 11B 参数模型的 1%。

解决MOE的限制

在他们最近的论文中,Cohere AI 的科学家讨论了解决MOE主要挑战之一的方法——将所有专家存储在内存中。他们通过将 MoE 架构与轻量级专家独特地结合起来,提出了一种参数极其高效的 MoE。他们的 MoE 架构优于标准 PEFT 方法,并且仅通过更新轻量级专家即可达到完全微调的效果——不到 11B 参数模型的 1%。

最近的一篇论文讨论了 MoE 的最后两个局限性,并提出了一种解决这些问题的新技术——DeepSeekMoE。这是新的 MoE 架构,旨在通过采用两个关键策略来增强专家专业化:细粒度专家分割和共享专家隔离。

细粒度专家分割(Fine-grained expert segmentation)涉及细分 FFN 中间隐藏维度,从而允许细粒度专家之间更细致地分配知识。这种细分使每个专家能够专注于更具体的知识领域,从而在保持恒定的计算成本的同时实现更高水平的专业化。

同时,共享专家隔离(shared expert isolation)策略将特定专家指定为“共享”,负责捕获不同背景下的共同知识。通过将一般知识集中在这些共享专家上,减少了其他专家学习过程中的冗余。这种方法提高了参数效率,并确保每位专家始终专注于独特且独特的知识领域。

图片

DeepSeekMoE。在这三种架构中,专家参数的数量和计算成本保持不变

DeepSeekMoE 经过扩展可训练 16B 模型,只需约 40% 的计算量,即可实现与 DeepSeek 7B 和 LLaMA2 7B 相当的性能。研究人员还计划将 DeepSeekMoE 扩展到 145B,突出其相对于 GShard 架构的优势,并展示与 DeepSeek 67B 相当的性能。

Token混合(Mixture of Tokens)

MoE 的几个缺点导致了混合Token(MoT)的兴起。这种对方法的轻微修改解决了所讨论的方法带来的许多问题。MoT 不是将token发送给专家,而是将不同示例中的token混合在一起,然后再将其提供给专家。这使得模型能够从所有token-专家组合中学习,并提高训练稳定性和专家利用率。在向专家提供token后,每种混合物都会被处理并重新分配回原始token。

token混合是如何进行的?首先,您需要为每个token设置重要性权重。这是通过控制器完成的,然后是对生成的token分数执行 softmax 层。因此,每个专家的token权重是独立计算的。最后,将每个token乘以其重要性权重,然后将它们全部加在一起。

图片

令牌混合:每个专家的令牌都是唯一混合的(混合权重由控制器决定,为简单起见,此处省略),然后处理每个混合物并将其重新分配回原始令牌(使用与之前相同的权重)。

MoT 通过进行以下更改来解决 MoE 模型的问题:

  1. 混合来自不同示例的token,然后将其提供给专家;通过允许模型从所有token-专家组合中学习,这提高了训练稳定性和专家利用率。

  2. token混合是一个完全可微的模型,这意味着它可以使用标准的基于梯度的方法进行训练。这避免了辅助损失或其他难以训练的技术的需要,从而更容易训练和部署。”

图片

MoE 与 MoT:在专家混合中(左),每个令牌都被路由到不同的专家前馈层。在令牌混合(右)中,每组内的令牌被混合,并且混合令牌由专家前馈层处理。


结论

toke混合有可能显着提高LLM的表现和效率。与普通 Transformer 相比,它显示出训练时间减少了 3 倍的惊人结果。未来,我们预计 MoT 将继续带来更显着的改进。

图片

MoTs 仅用 1/4 的步数和 1/3 的训练时间就减少了密集香草 Transformer 的最终训练损失,预计未来将显着改善。

标签:令牌,模型,专家,MOT,token,vs,MOE,混合,MoE
From: https://blog.csdn.net/AIBigModel/article/details/142257395

相关文章

  • vscode配置java简易教程
    一、下载jdkjava官方地址:https://www.oracle.com/java/technologies/downloads/选择适合自己电脑的版本,并下载到一个自己喜欢的地方。二、配置环境变量记住自己jdk的地址,例:我的jdk下载到了D:\app\java1、JAVA_HOME配置点击win键后,搜索“环境变量”。如图,打开配置......
  • vscode配置java简易教程
    一、下载jdkjava官方地址:https://www.oracle.com/java/technologies/downloads/选择适合自己电脑的版本,并下载到一个自己喜欢的地方。二、配置环境变量记住自己jdk的地址,例:我的jdk下载到了D:\app\java1、JAVA_HOME配置点击win键后,搜索“环境变量”。如图,打开配置......
  • 文心一言 VS 讯飞星火 VS chatgpt (349)-- 算法导论23.2 8题
    八、Borden教授提出了一个新的分治算法来计算最小生成树。该算法的原理如下:给定图,将划分为两个集合和,使得和的差最多为1。设为端点全部在中的边的集合,为端点全部在中的边的集合。我们递归地解决两个子图和的最小生成树问题。最后,在边集合中选择横跨切割和的最小权重的边来将求出的......
  • 我使用本地windows11上的VSCode远程连接到ubuntu进行RUST程序开发,我在VSCode上安装了
    当你使用VSCode的Remote-SSH扩展从本地Windows11连接到远程的Ubuntu服务器进行开发时,插件的安装有以下行为:插件的安装位置本地插件:某些插件,例如VSCode的界面插件或与本地编辑器相关的插件,安装在你的本地Windows系统上。这些插件不需要与远程服务器交互,因此它们仅......
  • 怎样在windows上使用VSCode连接到ubuntu服务器开发并调试RUST程序?
    要在Windows上使用VSCode连接到Ubuntu服务器,开发并调试Rust程序,你可以使用VisualStudioCode的Remote-SSH扩展,这个扩展可以让你通过SSH连接到远程服务器,直接在远程服务器上进行开发、调试和执行。以下是具体步骤:1.安装VSCode和必要的扩展首先,你需要在Windo......
  • 在远程的ubuntu服务器安装了rust环境,本地的windows上也安装了VSCode并且连接到了ubunt
    你已经在Ubuntu服务器上安装了Rust环境,并且在本地Windows上安装了VSCode并通过Remote-SSH扩展连接到了Ubuntu服务器。接下来,我将指导你如何在Ubuntu上创建一个Rust项目,并使用VSCode进行开发和调试。步骤1:在Ubuntu上创建Rust项目连接到Ubuntu服务器(......
  • VScode快速配置c++(菜鸟版)
    1.vscode是什么VisualStdioCode简称VSCode,是一款跨平台的、免费且开源的现代轻量级代码编辑器,支持几乎主流开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段提示、代码对比等特性,也拥有对git的开箱即用的支持。同时,它还支持插件扩展,通过丰......
  • LVS三种负载均衡模式的比较
    文章目录三种模式对比三种模式对比LVS-NATLVS-DRLVS-TUN服务器操作系统可以使用任何支持TCP/IP的操作系统大多数常见的操作系统都可以使用需要支持IP隧道技术的操作系统服务器网络需要私有网络,所有真实服务器(RS)必须位于同一局域网内同样需要局域网,但RS可以使用公网......
  • => ERROR [internal] load metadata for docker.io/library/alpine:3.13+vscode+python
    遇到这个问题,找了很久,网上也没有找到什么解决办法,我就已经解决了问题,分享一下。这种情况应该是网络的原因,目前我找到了两种解决方法,已经成功解决。1.在终端手动拉取镜像,手动拉取镜像可以避免网络问题2.使用国内镜像加速器打开DockerDesktop。进入Settings->DockerEn......
  • 文心一言 VS 讯飞星火 VS chatgpt (348)-- 算法导论23.2 7题
    七、假定图G的一棵最小生成树已经被计算出来。如果在图中加入一个新结点及其相关的新边,我们需要多少时间来对最小生成树进行更新?如果要写代码,请用go语言。文心一言:在图中加入一个新节点及其相关边后,要更新最小生成树(MST),通常意味着需要重新计算包含新节点的最小生成树,因为新节点的加......