MAMBA介绍:一种新的可能超过Transformer的AI架构

有人说,“理解了人类的语言,就理解了世界”。一直以来,人工智能领域的学者和工程师们都试图让机器学习人类的语言和说话方式,但进展始终不大。因为人类的语言太复杂,太多样,而组成它背后的机制,往往又充满着不可名状的规律。

过去人们在自然语言处理中多采用 RNN 循环神经网络,它十分类似于人类逻辑上对语言的理解,即:强调上下文顺序、前后文逻辑关系。但是这种顺序方式让 RNN 无法实现并行计算,也就是说,它的速度十分缓慢,而规模也很难扩大。

直到 2017 年 6 月 12 日,一篇名为“Attention is All You Need”的论文被提交到预印论文平台 arXiv 上。一切从此改变。Transformer 的提出直接导致了现在的生成式 AI 风暴。机器好像在一瞬间就学会了如何与人类自如交流。Transformer点石成金的魔力,主要在于它彻底抛弃了前面提到的 RNN 循环神经网络这套逻辑,它完全由自注意力机制组成。大家都有过这样的经验,打乱一个句子中字词序顺,很多时候不并响影你对句子的解理。这是因为人脑在处理信息时会区分权重,也就是说,我们的注意力总是被最重要的东西吸引走,次要的细节则被忽略。Transformer 正是模仿了这一点,使它能够自动学习输入的序列中不同位置之间的依赖关系,并计算其相关性(而不是对整个输入进行编码)。这让针对序列的建模变得更加容易和精准。

尽管如此,随着模型规模的扩展和需要处理的序列不断变长,Transformer 的局限性也逐渐凸显。一个很明显的缺陷是:Transformer 模型中自注意力机制的计算量会随着上下文长度的增加呈平方级增长,比如上下文增加 32 倍时,计算量可能会增长 1000 倍,计算效率非常低。现在如日中天的ChatGPT大模型就有一大痛点:处理长文本算力消耗巨大。背后原因其实就是Transformer架构中注意力机制的二次复杂度。为了克服这些缺陷,研究者们开发出了很多注意力机制的高效变体,但这往往以牺牲其有效性特为代价。到目前为止,这些变体都还没有被证明能在不同领域发挥有效作用。

最近,卡内基梅隆大学机器学习系助理教授 Albert Gu和普林斯顿大学计算机科学系即将上任的助理教授Tri Dao,联合提出一项名为「MAMBA」的研究似乎打破了这一局面。这篇论文的预印本本月初分布在arXiv网站上:


图一: MAMBA预印本论文截图

论文的第一作者Albert Gu表示,这项研究的一个重要创新是引入了一个名为「选择性 SSM」的架构,该架构是 Albert Gu 此前主导研发的 S4 架构(Structured State Spaces for Sequence Modeling ,用于序列建模的结构化状态空间)的一个简单泛化,可以有选择地决定关注还是忽略传入的输入。一个「小小的改变」—— 让某些参数成为输入的函数,结果却非常有效。

值得一提的是,S4 是一个非常成功的架构。此前,它成功地对  Long Range Arena (LRA) 中的长程依赖进行了建模,并成为首个在 Path-X 上获得高于平均性能的模型。更具体地说,S4 是一类用于深度学习的序列模型,与 RNN、CNN 和经典的状态空间模型(State Space Model,SSM)广泛相关。SSM 是独立的序列转换,可被整合到端到端神经网络架构中( SSM 架构有时也称 SSNN,它与 SSM 层的关系就像 CNN 与线性卷积层的关系一样)。MAMBA论文也讨论了一些著名的 SSM 架构,比如 Linear attention、H3、Hyena、RetNet、RWKV,其中许多也将作为论文研究的基线。MAMBA 的成功让 Albert Gu 对 SSM 的未来充满了信心。

Tri Dao 则是 FlashAttention、Flash Attention v2、Flash-Decoding的作者。FlashAttention 是一种对注意力计算进行重新排序并利用经典技术(平铺、重新计算)加快速度并将内存使用从序列长度的二次减少到线性的算法。Flash Attention v2、Flash-Decoding 都是建立在 Flash Attention 基础上的后续工作,把大模型的长文本推理效率不断推向极限。在 Mamba 之前,Tri Dao 和 Albert Gu 也有过合作。

另外,这项研究的模型代码和预训练的检查点是开源的,参见以下链接:https://github.com/state-spaces/mamba.

图二:MAMBA下载页面截图

方法创新

MAMBA论文的第 3.1 节介绍了如何利用合成任务的直觉来启发选择机制,第 3.2 节解释了如何将这一机制纳入状态空间模型。由此产生的时变 SSM (State Space Mode) 不能使用卷积,导致了高效计算的技术难题。研究者采用了一种硬件感知算法,利用当前硬件的内存层次结构来克服这一难题(第 3.3 节)。第 3.4 节描述了一个简单的 SSM 架构,不需要注意力,甚至不需要 MLP 块。第 3.5 节讨论了选择机制的一些其他特性。

(1) 选择机制

本文的研究者首先发现了此前模型的一个关键局限:以依赖输入的方式高效选择数据的能力(即关注或忽略特定输入)。

序列建模的一个基本方法是将上下文压缩到更小的状态,我们可以从这个角度来看待当下流行的序列模型。例如,注意力既高效又低效,因为它根本没有明确压缩上下文。这一点可以从自回归推理需要明确存储整个上下文(即 KV 缓存)这一事实中看出,这直接导致了 Transformer 缓慢的线性时间推理和二次时间训练。

递归模型的效率很高,因为它们的状态是有限的,这意味着恒定时间推理和线性时间训练。然而,它们的高效性受限于这种状态对上下文的压缩程度。

为了理解这一原理,图三展示了两个合成任务的运行示例:

图三: MAMBA中两个合成任务的运行示例。(左) 复制任务的标准版本涉及输入和输出元素之间的恒定间距,很容易通过线性递归和全局卷积等时不变模型来解决。(右上) 选择性复制任务在输入之间具有随机间隔,并且在需要时改变模型,该模型可以根据输入的内容选择性地记住或忽略输入。(右下) 联想回忆的一个例子,需要根据上下文检索答案,这是大语言模型的一项关键能力。

本文作者设计了一种简单的选择机制,根据输入对 SSM 参数进行参数化。这样,模型就能过滤掉无关信息,并无限期地记住相关信息。

例如将选择机制纳入模型的一种方法就是让影响序列交互的参数(如 RNN 的递归动力学或 CNN 的卷积核)与输入相关。下图中算法 1 和 2 展示了本文使用的主要选择机制。其主要区别在于,该方法只需将几个参数 ∆,B,C 设置为输入函数,并在整个过程中改变张量形状。这些参数现在都有一个长度维度 L ,意味着模型已经从时间不变变为时间可变。

图四:SSM和SSM+selection两种算法的流程图。

(2) 硬件感知算法

上述变化对模型的计算提出了技术挑战。所有先前的 SSM 模型都必须是时间和输入不变的,这样才能提高计算效率。为此,本文作者采用了一种硬件感知算法,通过扫描而不是卷积来计算模型,但不会将扩展状态具体化,以避免在 GPU 存储器层次结构的不同级别之间进行 IO 访问。由此产生的实现方法在理论上(与所有基于卷积的 SSM 的伪线性相比,在序列长度上呈线性缩放)和现有硬件上都比以前的方法更快(在 A100 GPU 上可快达 3 倍)。

图五: 结构化的SSM通过更高维度的潜在状态h(例如,二进制操作= 4)独立地映射输入变量的每个通道(例如𝐷= 5)到输出变量的每个通道(例如,二进制操作= 4)。先前的SSM通过需要时不变性的替代计算路径来避免实现这个大的有效状态(𝐷二进制操作,倍批大小的变量和序列长度的变量𝐿):(∆,a, B, C)参数在时间上是恒定的。我们的选择机制增加了依赖输入的动态,这也需要一个谨慎的硬件感知算法,只在更有效的GPU内存层次结构中实现扩展状态。

(3) 算法架构

MAMBA将先前的 SSM 架构设计与 Transformer 的 MLP 块合并为一个块,从而简化了深度序列模型架构,形成了一种包含选择性状态空间的简单、同质的架构设计(MAMBA)。

与结构化 SSM 一样,选择性 SSM 也是一种独立的序列变换,可以灵活地融入神经网络。H3 架构是著名的同质化架构设计的基础,通常由线性注意力启发的块和 MLP(多层感知器)块交错组成。

如图六所示,本文作者简化了这一架构,将这两个部分合二为一,均匀堆叠。他们受到门控注意力单元(GAU)的启发,该单元也对注意力做了类似的处理。

总而言之,选择性 SSM 以及 Mamba 架构的扩展是完全递归模型,几个关键特性使其适合作为在序列上运行的通用基础模型的骨干:

  1. 高质量:选择性为语言和基因组学等密集模型带来了强大的性能。
  2. 快速训练和推理:在训练过程中,计算量和内存与序列长度成线性关系,而在推理过程中,由于不需要缓存以前的元素,自回归展开模型每一步只需要恒定的时间。
  3. 长上下文:质量和效率共同提高了实际数据的性能,序列长度可达 100 万。

图六: 简化块设计结合了H3块与MLP块。与H3块相比,MAMBA用激活函数取代了第一个乘法门。与MLP块相比,MAMBA在主分支中添加了一个SSM。

实验评估

MAMBA论文对该架构进行了多方位测试。这些实证验证了 MAMBA 作为通用序列基础模型骨干的潜力。无论是在预训练质量还是特定领域的任务性能方面,MAMBA 都能在多种类型的模态和环境中发挥作用。

(1) 合成任务

在复制和感应头等重要的语言模型合成任务上,MAMBA 不仅能轻松解决,而且能推断出无限长的解决方案(>100 万 token)。

(2) 音频和基因组学

在音频波形和 DNA 序列建模方面,Mamba 在预训练质量和下游指标方面都优于 SaShiMi、Hyena、Transformer 等先前的 SOTA 模型(例如,在具有挑战性的语音生成数据集上将 FID 降低了一半以上)。在这两种情况下,它的性能随着上下文长度的增加而提高,最高可达百万长度的序列。

(3) 语言建模

Mamba 是首个线性时间序列模型,在预训练复杂度和下游评估方面都真正达到了 Transformer 质量的性能。通过多达 1B 参数的缩放规律,研究者发现 Mamba 的性能超过了大量基线模型,包括 LLaMa 这种非常强大的现代 Transformer 训练配方。

(4)速度和显存基准测试

下图展示了scan操作(状态扩展N = 16)速度,以及Mamba端到端推理吞吐量的基准测试。

测试结果显示,当序列长度超过2k时,高效的SSM scan比目前最优秀的注意力机制——FlashAttention-2还要快。而且,比起PyTorch标准的scan实现,速度提升更是高达20到40倍。由于没有键值(KV)缓存,因此Mamba可以支持更大的批处理大小,从而使推理吞吐量比同等规模Transformer高了4到5倍。

举个例子,一个未经训练的69亿参数的Mamba(Mamba-6.9B),在推理处理能力上可以超过仅有13亿参数、规模小5倍的Transformer模型。

与大多数深度序列模型一样,显存使用量与激活张量的大小成正比。表15显示,Mamba的显存需求与经过优化的Transformer相当。

表一: Mamba的内存占用可与最优化的Transformer相媲美(125M模型的结果)。

小结

Mamba是一种状态空间模型(SSM,State Space Model)。它建立在更现代的适用于深度学习的结构化SSM(S4, Structured SSM)基础上,与经典架构RNN有相似之处。

与以前的研究相比,MAMBA主要有三点创新:(1)对输入信息有选择性处理;(1) 硬件感知的算法;(3) 更简单的架构。

实验结果显示,无论是在预训练困惑度还是下游任务评估方面,MAMBA是第一个真正实现匹配Transformer性能的线性时间序列模型。并且在音频和DNA序列建模上也优于之前的SOTA模型,表现出一定的通用性。

正如作者在结论中提出的,MAMBA是通用序列模型骨干的有力候选者。

关于作者

论文两位作者Albert Gu和Tri Dao,博士都毕业于斯坦福大学,导师为Christopher Ré。

其中,Albert Gu现在是CMU助理教授,多年来一直推动SSM架构发展。他曾在DeepMind 工作,目前是Cartesia AI的联合创始人及首席科学家。

Tri Dao,以FlashAttention、FlashDecoding系列工作闻名,现在是普林斯顿助理教授,和Together AI首席科学家,也在Cartesia AI担任顾问。

参考文献:

https://arxiv.org/abs/2312.00752

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MAC 系统在vs code中,如何实现自动换行

目录 问题描述: 问题解决: 问题描述: 在vscode中,有些时候,一行内容过多,如果不能自动换行,就需要拖动页面,才能看到完整的内容。如下图两行所示: 问题解决&#xff1a…

国标GB28181设备注册安防监控平台EasyCVR不上线是什么原因?

安防视频监控EasyCVR平台兼容性强,可支持的接入协议众多,包括国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台能将接入的视频…

【Python】Flask + MQTT 实现消息订阅发布

目录 Flask MQTT 实现消息订阅发布准备开始1.创建Flask项目2创建py文件:mqtt_demo.py3.代码实现4.项目运行5.测试5.1 测试消息接收5.2 测试消息发布6、扩展 Flask MQTT 实现消息订阅发布 准备 本次项目主要使用到的库:flask_mqtt pip install flask…

如何自定义负载均衡策略

参考官方资源 Home Netflix/ribbon Wiki (github.com)6. 客户端负载均衡器:功能区 (spring.io)负载均衡策略 内置负载均衡规则类规则描述RoundRobinRule简单轮询服务列表来选择服务器。它是Ribbon默认的负载均衡规则。AvailabilityFilteringRule对以下两种服务器进…

10.Java程序设计-基于SSM框架的微信小程序家教信息管理系统的设计与实现

摘要是论文的开篇,用于简要概述研究的目的、方法、主要结果和结论。以下是一个简化的摘要示例,你可以根据实际情况进行修改和扩展: 摘要 随着社会的发展和教育需求的增长,家教服务作为一种个性化的学习方式受到了广泛关注。为了更…

STM32L051使用HAL库操作实例(13)- 读取IAQ-CORE-C传感器实例

目录 一、前言 二、传感器参数 三、STM32CubeMX配置(本文使用的STM32CubeMX版本为6.1.2)例程使用模拟I2C进行数据读取 1.MCU选型 2.使能时钟 3.时钟配置 4.GPIO口配置 四、配置STM32CubeMX生成工程文件 五、点击GENERATE CODE生成工程文件 六、…

系统设计-缓存介绍

该图说明了我们在典型架构中缓存数据的位置。 沿着流程有多个层次。 客户端应用程序:HTTP 响应可以由浏览器缓存。我们第一次通过 HTTP 请求数据,返回时在 HTTP 标头中包含过期策略;我们再次请求数据,客户端应用程序首先尝试从浏…

看图学源码之 Atomic 类源码浅析二(cas + 分治思想的原子累加器)

原子累加器 相较于上一节看图学源码 之 Atomic 类源码浅析一(cas 自旋操作的 AtomicXXX原子类)说的的原子类,原子累加器的效率会更高 XXXXAdder 和 XXXAccumulator 区别就是 Adder只有add 方法,Accumulator是可以进行自定义运算方…

工业4G路由器助力轨道交通城市地铁实现数字化转型

随着城市的科技不断发展,地铁系统的智能化程度也在不断提高。地铁闸机的网络部署已经成为地铁建设中必不可少环节。而4G路由器作为地铁闸机的网络通讯设备,助力轨道交通地铁闸机实现数字化转型。 工业4G路由器在地铁系统光纤宽带网络遇到故障或其他问题…

2023 金砖国家职业技能大赛网络安全省赛二三阶段样题(金砖国家未来技能挑战赛)

2023 金砖国家职业技能大赛网络安全省赛二三阶段样题(金砖国家未来技能挑战赛) 第二阶段: 安全运营 **背景:**作为信息安全技术人员必须能够掌握操作系统加固与安全管控、防火 墙一般配置、常见服务配置等相关技能,利…

java WebSocket带参数处理使用

1、webSocket实现代码 Component public class WebSocketStompConfig {//这个bean的注册,用于扫描带有ServerEndpoint的注解成为websocket// ,如果你使用外置的tomcat就不需要该配置文件Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpoi…

微信小程序 -- ios 底部小黑条样式问题

问题&#xff1a; 如图&#xff0c;ios有的机型底部伪home键会显示在按钮之上&#xff0c;导致点击按钮的时候误触 解决&#xff1a; App.vue <script>export default {wx.getSystemInfo({success: res > {let bottomHeight res.screenHeight - res.safeArea.bott…

Xcode15 Library ‘iconv.2.4.0‘ not found

Xcode 15运行老代码报错&#xff1a;Library iconv.2.4.0 not found 解决&#xff1a; TARGETS-->Bulid Phases --> Link Binary With Libraries 添加一个“Libiconv.tbd”, 同时把原来的 “libiconv.2.4.0.tbd”删除&#xff08;一定要删除&#xff0c;不然运行还是…

玩转大数据9:机器学习在大数据分析中的应用

1. 引言 在大数据时代&#xff0c;机器学习在大数据分析中扮演着至关重要的角色。本文介绍机器学习在大数据分析中的重要性和应用场景&#xff0c;并探讨Java中可用的机器学习库和框架。 2. 机器学习的基本概念和算法 机器学习是当今人工智能领域的一个关键分支&#xff0c;…

B 站基于 StarRocks 构建大数据元仓

作者&#xff1a;bilibili 大数据高级开发工程师 杨洋 B站大数据元仓是一款用来观测大数据引擎运行情况、推动大作业治理的系统诊断产品。经过调研和性能测试&#xff0c;大数据元仓最终以 StarRocks 为技术底座&#xff0c;从实际的应用效果来看&#xff0c;大部分查询都能在几…

在 Node-RED 中引入 ECharts 实现数据可视化

Node-RED 提供了强大的可视化工具&#xff0c;而通过引入 ECharts 图表库&#xff0c;您可以更直观地呈现和分析数据。在这篇博客中&#xff0c;我们将介绍两种在 Node-RED 中实现数据可视化的方法&#xff1a;一种是引入本地 ECharts 库&#xff0c;另一种是直接使用 CDN&…

【Hadoop_01】Hadoop介绍与安装

1、Hadoop、HDFS、YARN介绍&#xff08;1&#xff09;Hadoop简介与优势&#xff08;2&#xff09;Hadoop组成&#xff08;3&#xff09;HDFS概述&#xff08;4&#xff09;YARN概述&#xff08;5&#xff09;MapReduce概述 2、安装&#xff08;1&#xff09;Centos7.5软硬件安装…

如何在任何STM32上面安装micro_ros

就我知道的&#xff1a;micro-ros只能在特定的昂贵的开发板上面运行&#xff0c;但是偶然发现了这个文章&#xff0c;似乎提供了一个全新的方式来在ros2和单片机之间通讯&#xff0c;如果能够这样肯定也能够提高效率&#xff0c;但即使不行&#xff0c;使用串口库也应该比较简单…

Android Camera 预览尺寸的选取与旋转角度的设定

Camera 在音视频的世界中, 就像我们的眼睛一样, 是负责图像采集的入口, 要想实现一款高可用的 Camera, 我认为需要关注以下几个方面 相机的预览相机的拍摄相机的录制 OpenGL ES 主要用于图像的渲染, 因此这里主要聚焦于相机的预览, 想要让相机的数据呈现到我们屏幕上, 主要有…

Java 将word转为PDF的三种方式和处理在服务器上下载后乱码的格式

我这边是因为业务需要将之前导出的word文档转换为PDF文件&#xff0c;然后页面预览下载这样的情况。之前导出word文档又不是我做的&#xff0c;所以为了不影响业务&#xff0c;只是将最后在输出流时转换成了PDF&#xff0c;当时本地调用没什么问题&#xff0c;一切正常&#xf…