Mamba与MoE架构强强联合,Mamba-MoE高效提升LLM计算效率和可扩展性

43008843de874a75be6866fb07305205.png

论文题目: MoE-Mamba: Efficient Selective State Space Models with Mixture of Experts
论文链接: https://arxiv.org/abs/2401.04081
代码仓库: GitHub - llm-random/llm-random

作为大型语言模型(LLM)基础架构的后起之秀,状态空间模型(State Space Models,SSMs)在序列数据建模领域中已取得了惊人的发展。其中Mamba模型改进了传统的SSM,其通过输入依赖的方式来调整SSM中的参数,允许模型自适应的根据输入数据选择性的传输或遗忘信息,来提高模型在密集型数据上的计算效率。与此同时,Mixture of Experts(MoE)框架也显着改进了基于Transformer的LLM,如何设计更高效的MoE混合策略也成为了LLM研究领域中的潮流方向。

本文介绍一篇来自IDEAS NCBR和华沙大学合作完成的文章,本文作者探索了如何将SSM与MoE结合起来,提出了一种名为MoE-Mamba的框架,MoE-Mamba继承了SSM序列模型的递归计算特性,在推理速度方面相比传统Transformer具有天然优势,同时预测精度优于 Mamba 和 Transformer-MoE。特别的是,MoE-Mamba可以在减少训练steps的情况下达到与普通 Mamba 相同的性能

01. 引言

SSMs模型相比Transformer具有很多优势,例如可并行训练、推理时的线性时间复杂度以及在长上下文任务上的依赖捕获能力。特别是近期提出的Mamba模型[1],基于选择性的SSM和硬件感知设计在多种语言理解任务上取得了优异的结果,被学术界广泛认为是下一个替代注意力Transformer结构的有力竞争者。Mamba对GPU显存的占用不依赖于上下文长度,因为其反向传播所需的中间状态不会被保存,而是在反向传播期间重新计算,强调了状态压缩的重要性。此外,专家混合模型MoE[2]被证明可以有效扩展和提升Transformer模型的性能,其可以大幅增加模型的参数数量,而不会对模型推理和训练所需的 FLOP 产生太大影响,例如近期开源的Mixtral8×7B [3],性能与LLaMa-2 70B相当,但是推理计算量仅为后者的1/6。

4d3db7d34a9f434ebf3abfe5e52080bb.png

本文引入了一种将Mamba与MoE层相结合的模型MoE-Mamba,MoE-Mamba实现了a+b>c的效果,上图展示了MoE-Mamba与其他baseline方法的性能对比效果,可以看到,MoE-Mamba可以在普通Mamba的基础上实现对模型训练步骤缩减的效果。如上图黑色虚线所示,MoE-Mamba在减少2.2倍训练steps的情况下达到了与普通Mamba相同的性能。后续的其他实验也表明,MoE-Mamba拥有大规模扩展模型参数规模的潜力

02. 本文方法

尽管 Mamba 的主要底层机制与 Transformer 中使用的注意力机制有很大不同,但 Mamba 仍然保留了 Transformer 模型的层次结构(即块叠加)。例如包含一层或多层的相同块依次堆叠,每一层的输出会被汇聚到残差信息流中再送入到下一个块中,残差流的最终状态随后被用于预测语言建模任务中的下一个token。下图展示了这些架构的细节对比,从左到右分别是vanilla Transformer、MoE-Transformer、Mamba、MoE-Mamba。

39316c309a36437cb2d00ccfbb5e5475.png

本文提出的MoE-Mamba充分利用了前两种架构的兼容性,例如,在原有Mamba结构的基础上仿照MoE-Transformer将两个mamba块中的其中一个替换成一个可选择的MoE块。这种将mamba层与MoE交错设置的模式可以有效地将序列的整个上下文集成到mamba块的内部表示中,从而将其与MoE层的条件处理分开。

b19196ff06eb4a16afb52ec48d98a517.png

此外,本文作者认为如果将Mamba块和MoE块在局部层的范围内进行并行执行也是一个非常有前景的改进方向,如上图左侧展示了一种并行的Mamba+MoE 架构,右侧展示了Mamba Block的构成。如果将Mamba Block中的输出投影也替换为MoE,模型可以选择更少的模块来匹配当前输入计算的需要,也能实现与原始Mamba架构相当的效果。当然,也可以进一步将MoE替换Conv Projection层来进一步减少计算量。

03. 实验效果

在本文的实验部分,作者比较了5种不同的设置:vanilla Transformer、Mamba、Mamba-MLP、MoE 和 MoE-Mamba。为了保证 Mamba 和本文MoE-Mamba模型中每个token的活动参数数量大致相同,作者将每个MoE前馈层的参数量进行了缩减。不包括嵌入层和非嵌入层,所有模型的每个 token 大约需要访问 26M 个参数,训练数据集使用C4,整体的训练量为大约6.5B个token和10万个训练steps。

4abaf58c60e6438a8b3019c786c358e1.png

上表展示了上述几种对比模型的训练效果,可以看到,MoE-Mamba 比普通 Mamba 模型有了显着的改进。值得注意的是,MoE-Mamba 只需 46% 的训练steps即可达到与 vanilla Mamba 相同的性能

38c3505059b24e9aa01b89eacc894728.png

MoE中的专家数量是MoE-Mamba中的一个重要超参数,为了评估Mamba能否随着专家数量的增加而扩展,作者在下图绘制了模型在不同专家数量情况下的运行情况,并且加入了Mamba 和 Mamba-MLP(后者相当于具有单个专家的 MoE-Mamba)作为参考。上表展示了模型在10万训练steps之后的结果,结果表明,MoE-Mamba可以很好的适应专家数量的变化,如果专家数量设置为8或超过8,MoE-Mamba可以获得比普通Mamba模型更好的最终性能

5dcdcb5239e04e78aac141a8506854b1.png

04. 总结

本文提出了一种将专家混合MoE技术与Mamba架构进行集成的模块,即MoE-Mamba。基于并行计算的天然优势,Mamba减轻了大模型中复杂循环顺序性质的影响,并且对硬件进行感知来实现参数扩展。Mamba相比普通注意力机制Transformer解决了序列模型中效率和有效性之间的基本权衡,强调了状态压缩的重要性。将Mamba与高度稀疏的MoE前馈层交错设置可以实现更高推理效率的LLM,但目前的组合方式仍然非常简单,作者也探索了一种局部并行的Mamba+MoE架构以实现更高的预测准确率和更稀疏的推理效果。期望后续有更多基于条件计算与状态空间模型技术相结合的技术出现,作者认为这条道路将能够更有效地扩展到更大的语言模型中。

参考

[1] Gu A, Dao T. Mamba: Linear-time sequence modeling with selective state spaces[J]. arXiv preprint arXiv:2312.00752, 2023.
[2] Sanseviero, O., Tunstall, L., Schmid, P., Mangrulkar, S., Belkada, Y., and Cuenca, P. Mixture of experts explained, 2023. URL https://huggingface.co/blog/moe.

[3] Mistral. Mixtral of experts, Dec 2023. URL https://mistral.ai/news/mixtral-of-experts/.


  关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区 

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

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

相关文章

数字化转型导师鹏:政府数字化转型政务服务类案例研究

政府数字化转型政务服务类案例研究 课程背景: 很多地方政府存在以下问题: 不清楚标杆省政府数字化转型的政务服务类成功案例 不清楚地级市政府数字化转型的政务服务类成功案例 不清楚县区级政府数字化转型的政务服务类成功案例 课程特色&#x…

【查找算法】二分查找

一:二分查找 1.1 基本概念 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 1.2 原理 查找的目标数据元…

MySQL 8.0.35 企业版安装和启用TDE插件keyring_encrypted_file

本文主要记录MySQL企业版TDE插件keyring_encrypted_file的安装和使用。 TDE说明 TDE( Transparent Data Encryption,透明数据加密) 指的是无需修改应用就可以实现数据的加解密,在数据写磁盘的时候加密,读的时候自动解密。加密后其他人即使能够访问数据库…

Progressive Widening

下面的解释来源于论文《Monte Carlo Tree Search With Iteratively Refining State Abstractions》,因为这篇论文的重点不是Progressive Widening,所以就不全文学习了,只摘抄其中关于Progressive Widening的部分。 Progressive Widening&…

蓝牙耳机和笔记本电脑配对连接上了,播放设备里没有显示蓝牙耳机这个设备,选不了输出设备

环境: WIN10 杂牌蓝牙耳机6s 问题描述: 蓝牙耳机和笔记本电脑配对连接上了,播放设备里没有显示蓝牙耳机这个设备,选不了输出设备 解决方案: 1.打开设备和打印机,找到这个设备 2.选中这个设备&#…

Nacos配置管理

Nacos除了可以做注册中心,同样可以做配置管理来使用。 统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有…

5.测试教程 - 进阶篇

文章目录 1.按测试对像划分1.1**界面测试**1.2**可靠性测试**1.3**容错性测试**1.4**文档测试**1.5**兼容性测试**1.6**易用性测试**1.7**安装卸载测试**1.8**安全测试**1.9**性能测试**1.10**内存泄漏测试** 2.按是否查看代码划分2.1黑盒测试(Black-box Testing)2.2白盒测试(W…

Scratch 第十六课-弹珠台游戏

第十六课-弹珠台游戏 大家好,今天我们一起做一款弹珠台scratch游戏,我们也可以叫它弹球游戏!这款游戏在刚出来的时候非常火爆。小朋友们要认真学习下! 这节课的学习目标 物体碰撞如何处理转向问题。复习键盘对角色的控制方式。…

软件开发人员从0到1实现物联网项目:技术调研

前言 春节返乡之际,发现老家县城竟然开了近十家棋牌室。巧的是朋友也有意涉足,便咨询我自助棋牌室的软件投入成本。作为程序员的我,在思考了自助棋牌室背后的技术需求后,嗅到了一丝丝商机:何不自己开发一个自助棋牌室…

YOLOV9训练集制作+Train+Val记录

一、YOLO数据集格式分布 在YOLO中,数据集的分布如图,在dataset文件夹下有imags(图片)和labels(标签)。在images和labels文件夹下又分别存放三个文件夹,分别对应测试集、训练集、验证集&#xff…

2023全球软件开发大会-上海站:探索技术前沿,共筑未来软件生态(附大会核心PPT下载)

随着信息技术的迅猛发展,全球软件开发大会(QCon)已成为软件行业最具影响力的年度盛会之一。2023年,QCon再次来到上海,汇聚了众多业界精英、技术领袖和开发者,共同探讨软件开发的最新趋势和实践。 一、大会…

Frontend - Boostrap 消息弹窗

目录 一、下载 (一)中文官网 (二)bootstrap v3 依赖 jQuery 插件 二、解压并安装 (一)解压 1. 压缩包解压 2. 简化文件 (二)安装 三、配置 (一)bas…

【重要公告】对BSV警报系统AS的释义

​​发表时间:2024年2月15日 由BSV区块链协会开发并管理的BSV警报系统(Alert System,以下简称“AS”)是BSV网络的重要组件。它是一个复杂的系统,主要职能是在BSV区块链网络内发布信息。这些信息通常与网络访问规则NAR相…

深入了解 JavaScript 混淆加密和环境检测

JavaScript混淆加密是一种通过修改代码结构和命名约定来增加代码的复杂性,使其难以被理解和逆向工程的技术。在这篇文章中,我们将深入探讨JS混淆加密的一些逻辑,并介绍如何通过环境检测来提高代码的安全性。我们将使用案例代码演示这些概念。…

osi模型,tcp/ip模型(名字由来+各层介绍+中间设备介绍)

目录 网络协议如何分层 引入 osi模型 tcp/ip模型 引入 命名由来 介绍 物理层 数据链路层 网络层 传输层 应用层 中间设备 网络协议如何分层 引入 我们已经知道了网络协议是层状结构,接下来就来了解了解下网络协议如何分层 常见的网络协议分层模型是OSI模型 和 …

C++之结构体以及通讯录管理系统

1,结构体基本概念 结构体属于自定义的数据概念,允许用户存储不同的数据类型 2,结构体的定义和使用 语法:struct 结构体名{ 结构体成员列表}; 通过结构体创建变量的方式有三种: 1,struct …

python+Django+Neo4j中医药知识图谱与智能问答平台

文章目录 项目地址基础准备正式运行 项目地址 https://github.com/ZhChessOvO/ZeLanChao_KGQA 基础准备 请确保您的电脑有以下环境:python3,neo4j 在安装目录下进入cmd,输入指令“pip install -r requirement.txt”,安装需要的python库 打…

【LeetCode】升级打怪之路 Day 12:单调队列

今日题目: 239. 滑动窗口最大值 | LeetCode 今天学习了单调队列这种特殊的数据结构,思路很新颖,值得学习。 Problem:单调队列 【必会】 与单调栈类似,单调队列也是一种特殊的数据结构,它相比与普通的 que…

Linux入门到入土

Linxu Linux 简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口&#xff09…