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

打印 上一主题 下一主题

主题 517|帖子 517|积分 1551

有人说,“理解了人类的语言,就理解了世界”。一直以来,人工智能领域的学者和工程师们都试图让机器学习人类的语言和说话方式,但进展始终不大。由于人类的语言太复杂,太多样,而组成它背后的机制,往往又充满着不可名状的规律。
过去人们在自然语言处理中多接纳 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)独立地映射输入变量的每个通道(例如

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

冬雨财经

金牌会员
这个人很懒什么都没写!

标签云

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