(2023,SSM,门控 MLP,选择性输入,上下文压缩)Mamba:具有选择性状态空间的线性时间序列建模

Mamba: Linear-Time Sequence Modeling with Selective State Spaces

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

1. 简介

2. 状态空间模型  

3. 选择性状态空间模型

3.1 动机:选择作为压缩的手段

3.2 通过选择改进 SSM

3.4 一个简化的 SSM 架构

3.5 选择机制的性质

3.5.1 与门控机制的连接

3.5.2 选择机制的解释

4. 实验


0. 摘要

目前基础模型驱动着深度学习中大部分令人兴奋的应用,几乎普遍基于 Transformer 架构及其核心注意力模块。许多次二次时间(subquadratic-time)架构,如线性注意力、门控卷积和循环模型,以及结构化状态空间模型(structured state space models,SSM),已经被开发出来以解决 Transformer 在长序列上的计算效率低下的问题,但它们在重要的模态,如语言上,表现不佳。我们确定这些模型的一个关键弱点是它们无法进行基于内容的推理,并进行了几项改进。

  • 首先,简单地让 SSM 参数成为输入的函数,可以解决它们在离散模态上的弱点,允许模型根据当前 token 有选择地沿序列长度维度传播或遗忘信息。
  • 其次,即使这种改变阻止了有效卷积的使用,我们设计了一种硬件感知(hardware-aware)的并行算法,以递归模式运行。
  • 我们将这些选择性的 SSM 集成到一个简化的端到端神经网络架构中,没有注意力甚至 MLP 块(Mamba)。

Mamba 享有快速推理(比 Transformers 高 5 倍的吞吐量)和序列长度的线性扩展,并且在真实数据上的性能提高了,直至百万长度的序列。作为一种通用的序列模型骨干,Mamba 在语言、音频和基因组等多个模态上实现了最先进的性能。在语言建模方面,我们的 Mamba-3B 模型在预训练和下游评估中均优于相同规模的 Transformers,并且与其两倍大小的 Transformers 相匹配。

项目页面:https://github.com/state-spaces/mamba

1. 简介

最近,结构化状态空间序列模型(SSM)(Gu,Goel和Ré 2022; Gu,Johnson,Goel等人2021)已经成为一种有前途的序列建模架构类别。这些模型可以被解释为循环神经网络(RNN)和卷积神经网络(CNN)的组合,灵感来自经典状态空间模型(Kalman 1960)。这类模型可以非常高效地计算,可以作为递归或卷积进行,序列长度呈线性或近线性扩展。此外,它们在某些数据模态中具有建模长程依赖性的原则性机制(Gu,Dao等人2020年),并且在 Long Range Arena(Tay,Dehghani,Abnar等人2021年)等基准测试中占据主导地位。许多种类的 SSM(Gu,Goel和Ré 2022年; Gu,Gupta等人2022年; Gupta,Gu和Berant 2022年; Y. Li等人2023年; Ma等人2023年; Orvieto等人2023年; Smith,Warrington和Linderman 2023年)在涉及连续信号数据的领域取得了成功,如音频和视觉(Goel等人2022年; Nguyen,Goel等人2022年; Saon,Gupta和Cui 2023年)。然而,它们在建模文本等离散和信息密集型数据方面效果较差。 

我们提出了一种新型的选择性状态空间模型(selective state space models),通过在多个方面改进之前的工作,实现了与 Transformer 相当的建模能力,同时在序列长度上呈线性扩展。

2. 状态空间模型  

(2024,ViM,双向 SSM 骨干,序列建模)利用双向状态空间模型进行高效视觉表示学习

(2024,VMamba,交叉扫描,线性复杂度,全局感受野,动态权重)视觉状态空间模型 

(2024,DiS,扩散,状态空间主干,Mamba)具有状态空间主干的可扩展扩散模型 

(2024,Mamba,DiT,之字扫描与空间连续性)ZigMa:之字形 Mamba 扩散模型 

3. 选择性状态空间模型

3.1 动机:选择作为压缩的手段

我们认为序列建模的一个基本问题是将上下文压缩到一个较小的状态中。实际上,我们可以从这个角度来看待流行序列模型的权衡。例如,注意力既有效又低效,因为它明确地不对上下文进行任何压缩。这可以从自回归推理需要明确存储整个上下文(即 KV 缓存)这一事实中看出,这直接导致了 Transformer 的缓慢的线性时间推理和二次时间训练。另一方面,循环模型是高效的,因为它们具有有限的状态,意味着推理时间是恒定的,而训练时间是线性的。然而,它们的有效性受到状态如何压缩上下文的限制。

为了理解这一原理,我们专注于两个合成任务的运行示例(图2)。

  • 选择性复制(Selective Copying)任务修改了流行的复制任务(Arjovsky,Shah和Bengio 2016),通过改变要记忆的 token 的位置。它需要内容感知的推理能力,以便能够记住相关的 token(着色)并过滤掉无关的标记(白色)。
  • 归纳头部(Induction Heads)任务是一个已知的机制,被假设可以解释 LLM 的大部分上下文学习能力(Olsson等人2022)。它需要上下文感知的推理能力,以了解何时在适当的上下文中产生正确的输出(黑色)。

这些任务揭示了线性时不变模型(Linear Time Invariance,LTI)的失败模式。从循环视角来看,它们的恒定动态(例如公式 2 中的(¯A,¯B)过渡)不能让它们从上下文中选择正确的信息,或以一种与输入相关的方式影响沿着序列传递的隐藏状态。从卷积视角来看,众所周知,全局卷积可以解决普通复制任务(Romero等人2021)因为它只需要时间感知,但是它们在选择性复制任务方面有困难,因为缺乏内容感知(图2)。 更具体地说,输入到输出之间的间隔是变化的,不能通过静态卷积核进行建模。

总之,序列模型的效率与有效性的权衡在于它们如何压缩其状态:高效的模型必须具有较小的状态,而有效的模型必须具有一个包含来自上下文的所有必要信息的状态。反过来,我们提出序列模型构建的一个基本原则是选择性:或者说,关注或过滤顺序状态输入的上下文感知能力。特别是,选择机制控制信息沿着序列维度如何传播或相互作用(有关更多讨论,请参见第 3.5 节)。 

3.2 通过选择改进 SSM

将选择机制纳入模型的一种方法是让影响序列上相互作用的参数(例如 RNN 的循环动态或 CNN 的卷积核)依赖于输入。

算法 1 和 2 说明了我们使用的主要选择机制。主要区别仅在于使几个参数 Δ,B,C 成为输入的函数,以及随之在整个张量形状上的相关变化。特别地,我们强调这些参数现在具有长度维度 L,这意味着模型已从时不变变为时变。这使得它失去了与卷积(公式 3)的等价性,对其效率产生了影响,接下来进行讨论。

特别地,我们选择 s_B(x) = Linear_N(x),s_C(x) = Linear_N(x),s_Δ(x) = Broadcast_D(Linear_1(x)),和 τ_Δ = softplus,其中 Linear_d 是一个参数化的到维度 d 的投影。选择 s_Δ 和 τ_Δ 是因为与在第 3.5 节中解释的 RNN 门控机制的连接。

3.4 一个简化的 SSM 架构

与结构化的 SSM 一样,选择性的 SSM 是独立的序列转换,可以灵活地整合到神经网络中。H3 架构是最知名的 SSM 架构(第 2 节)的基础,通常由一个受线性注意力启发的块与一个 MLP 块交错组成。我们通过将这两个组件合并成一个,并且均匀堆叠(图 3)来简化这种架构。这受到了门控注意力单元(GAU)(Hua等人2022年)的启发,后者对注意力做了类似的处理。

这种架构涉及通过可控的扩展因子 E 扩展模型维度 D。对于每个块,大部分参数(3ED^2)都在线性投影中(输入投影为 2ED^2,输出投影为 ED^2),而内部的 SSM 贡献较少。与之相比, SSM 参数的数量(用于 Δ,B,C 的投影和矩阵 A)要小得多。我们重复这个块,交错使用标准的归一化和残差连接,形成 Mamba 架构。在我们的实验中,我们总是将 E 固定为 2,并使用两个块的堆叠来匹配 Transformer 的交错 MHA(多头注意力)和 MLP 块的 12D^2 参数。我们使用 SiLU / Swish 激活函数(Hendrycks和Gimpel 2016; Ramachandran,Zoph和Quoc V Le 2017),这样做的动机是使门控 MLP 成为流行的 “SwiGLU” 变体(Chowdhery等人2023年; Shazeer 2020; Touvron等人2023年)。最后,我们还额外使用一个可选的归一化层(我们选择 LayerNorm(J. L. Ba,Kiros和Hinton 2016)),这是受 RetNet 在类似位置使用归一化层的启发(Y. Sun等人2023年)。

3.5 选择机制的性质

选择机制是一个更广泛的概念,可以以不同的方式应用,例如应用到传统的 RNN 或 CNN 中,应用到不同的参数(例如 Algorithm 2 中的 A),或者使用不同的变换 s(x)。

3.5.1 与门控机制的连接

我们强调最重要的连接:RNNs 的经典门控机制是我们 SSM 的选择机制的一个实例。我们注意到,RNN 门控与连续时间系统的离散化之间的联系是已经确立的(Funahashi和Nakamura 1993; Tallec和Ollivier 2018)。事实上,定理 1 是对 Gu,Johnson,Goel等人(2021年,引理 3.1)的改进,推广到了 ZOH 离散化和依赖于输入的门(附录 C 中的证明)。在更广泛的范围内,SSM 中的 Δ 可以被看作是 RNN 门控机制的广义角色。与之前的工作一致,我们采用了这样的观点,即 SSM 的离散化是启发式门控机制的原则性基础。

定理 1。当 N = 1,A = -1,B = 1,s_Δ = Linear(x),而 τ_Δ = softplus 时,选择性 SSM 递归(Algorithm 2)的形式如下: 

如第 3.2 节所述,我们对 s_Δ 和 τ_Δ 的具体选择是基于这种连接。特别地,请注意,如果一个给定的输入 xt 应该完全被忽略(在合成任务中是必要的),所有的 D 个通道都应该忽略它,因此我们在将其重复/广播给 Δ 之前将输入投影到 1 维。 

3.5.2 选择机制的解释

我们详细阐述了选择的两个特定机制效应。

可变空间(Variable Spacing)。选择性允许过滤掉可能出现在感兴趣的输入之间的不相关噪声标记。这在选择性复制任务中得到了示范,但在常见的数据模态中普遍存在,特别是对于离散数据 - 例如语言填充词 “um” 的存在。这个属性的出现是因为模型可以从机制上过滤掉任何特定的输入 xt,例如在门控 RNN 情况下(定理 1)当 gt → 0 时。

过滤上下文。已经经验性地观察到许多序列模型即使在更长的上下文中也不能提高性能(F. Shi等人2023年),尽管原则上更多的上下文应该导致严格更好的性能。一个解释是,许多序列模型在必要时不能有效地忽略无关的上下文; 一个直观的例子是全局卷积(以及一般的 LTI 模型)。另一方面,选择性模型可以在任何时候简单地重置它们的状态以删除多余的历史记录,因此它们的性能原则上随着上下文长度的增加而单调提高(例如第 4.3.2 节)。

边界重置。在将多个独立序列拼接在一起的设置中,Transformer 可以通过实例化特定的注意力掩码将它们保持分开,而 LTI 模型将在序列之间泄漏信息。选择性 SSM 也可以在边界处重置它们的状态(例如 Δ_t → ∞ 或定理 1 中当 gt → 1时)。这些设置可能是人工的(例如将文档打包在一起以提高硬件利用率)或自然的(例如在强化学习中的情节边界(Lu等人2023))。

此外,我们详细阐述了每个选择性参数的效果。

Δ 的解释。通常,Δ 控制着在多大程度上关注或忽略当前输入 xt。它将 RNN 门控(例如定理 1 中的 gt)进行了泛化,从机械上讲,大的 Δ 会重置状态 h 并专注于当前输入x,而小的 Δ 会保持状态并忽略当前输入。SSM(公式 1 和 2)可以被解释为通过时间步长 Δ 离散化的连续系统,在这种情况下,直觉是大的 Δ → ∞ 表示系统更长时间地专注于当前输入(因此 “选择” 它并忘记了当前状态),而小的 Δ → 0 表示被忽略的瞬态输入。

A 的解释。我们注意到,虽然 A 参数也可以是选择性的,但它最终通过与 Δ 的交互来影响模型,通过 ¯A = exp(ΔA)(离散化公式 4)。因此,在 Δ 中的选择性足以确保(¯A,¯B)中的选择性,并且是改进的主要来源。我们假设,除了(或者代替)Δ,使 A 也具有选择性, 将具有类似的性能,并且为简单起见而将其排除。

B 和 C 的解释。如第 3.1 节所讨论的,选择性的最重要特性是过滤掉不相关的信息,以便将序列模型的上下文压缩成一个高效的状态。在 SSM 中,将 B 和 C 修改为选择性允许更精细地控制是否将输入 xt 引入状态 ht 或状态输出 yt。这可以解释为允许模型根据内容(输入)和上下文(隐藏状态)调节循环动态。

4. 实验

 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【绘图案例-矩阵操作 Objective-C语言】

一、矩阵操作 1.接下来,我们来说这个矩阵操作啊,矩阵操作呢,实际上就是: 1)缩放 2)旋转 3)平移 好,然后呢,这个里边呢,就是三个方法: 1)缩放:void CGContextScaleCTM(CGContextRef c,CGFloat sx,CGFloat sy) 2)旋转:void CGContextRotateCTM(CGConte…

基于Java的新生入学报到管理系统的设计与实现(论文+源码+PPT)_kaic

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息…

如何保证redis里的数据都是热点数据

MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据? 1.Redis 过期删除策略 1)惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期&#xff0c…

全球首个“AI程序员”Deven能替代程序员吗?过了面试却不一定适合职场

制造Devin的公司,是一家叫Cognition的10人初创公司,才成立不到2个月。 一、引言 一家成立不到两个月但拥有十名天才工程师的初创公司Cognition,搞了一个引爆科技圈的大动作。 他们推出了一款名为Devin的人工智能(AI)助…

HCIP的学习(6)

OSPF—开放式最短路径优先协议 动态路由的评判标准 1、占用资源 2、收敛速度 3、选路动态路由分类: IGP---内部网关协议DV型---距离矢量型---RIPLS型---链路状态型---OSPFEGP---外部网关协议OSPF---无类别的路由协议(携带真实掩码)组播224.0…

【微服务】Sentinel(流量控制)

文章目录 1.基本介绍1.Sentinel是什么2.Sentinel主要特性3.Sentinel核心功能1.流量控制2.熔断降级3.消息削峰填谷 4.Sentinel两个组成部分 2.Sentinel控制台显示1.需求分析2.下载3.运行1.进入cmd2.输入java -jar sentinel-dashboard-1.8.0.jar3.查看默认端口8080 4.访问1.账号和…

Java毕业设计-基于springboot开发的游戏分享网站平台-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、后台登录2.1管理员功能模块2.2用户功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的…

element-ui switch 组件源码分享

今日简单分享 switch 组件源码,主要从以下四个方面来分享: 1、switch 组件的页面结构 2、switch 组件的属性 3、switch 组件的事件 4、switch 组件的方法 一、switch 组件的页面结构 二、switch 组件的属性 2.1 value / v-model 属性,绑…

L2-047 锦标赛

这题没做出来,查了一些博客,下面是我比较能接受的理解和书写方式。 读完题可以发现这是一个满二叉树,并且可以得到每场比赛失败者的信息(决赛是胜利者和失败者都可以得到) 对于一场比赛,它的胜利者要么是左…

报错:ImportError: cannot import name ‘imread‘ from ‘scipy.misc‘

报错内容: 问题代码通常是导入scipy库的版本出现了问题。 解决方法: 方法一: scipy版本还原到1.2.0 pip install scipy1.2.0 方法二: 使用from imageio import imread进行替换from scipy.misc import imread 使用imageio库同…

第二十四周代码(跟着罗勇军老师刷题)

2024/03/24 周一 合根植物 题目链接 【参考代码】 #include <iostream> using namespace std;const int N 1e61; int a[N];int find(int index) {if(a[index] index)return index;return a[index] find(a[index]); }int main() {// 请在此输入您的代码int m…

项目Weblogic切换Tomcat-包含数据源配置

目录 准备工作 修改Tomcat配置 Tomcat数据源加密 解密 加密 部署 问题解决 1.执行启停脚本时候&#xff0c;爆出&#xff1a;Cannot find ./catalina.sh The file is absent or does not have... 2.org.apache.catalina.core.StandardService.initInternal Failed to …

Tomcat项目创建 以及 在IDEA当中集成Tomcat

一: 有关Tomcat的WEB项目创建 TOMCAT项目的创建有两种方式, 第一种是利用骨架进行创建, 第二种是利用填补进行相应的创建, 不适用骨架进行创建 ,在这里主要聊第二种 (使用IDEA版本为2023) 1. 创建MAVEN项目, 非骨架形式 2.在相应的pom文件当中设置打包方式 为 war包的打包形…

推荐!00 后都在用的6个超实用微信小程序,又能少装N个app啦

在这个手机内存永远不够用的年代&#xff0c;每一次下载新app都像是在和手机进行一场心理博弈——不下载就out&#xff0c;下载了又怕手机喘不过气来。好在&#xff0c;微信小程序如同一股清流&#xff0c;轻巧地滑入我们的生活&#xff0c;解救了那些对“存储空间不足”弹窗深…

时序数据库IoTDB:功能详解与行业应用

一文读懂时序数据库 IoTDB。 01 为什么需要时序数据库 解释时序数据库前&#xff0c;先了解一下何谓时序数据。 时序数据&#xff0c;也称为时间序列数据&#xff0c;是指按时间顺序记录的同一统计指标的数据集合。这类数据的来源主要是能源、工程、交通等工业物联网强关联行业…

鸿蒙开发之ArkTs开发布局之线性布局(Row/Column)

组件按照布局的要求依次排列&#xff0c;构成应用的页面。在声明式UI中&#xff0c;所有的页面都是由自定义组件构成&#xff0c;开发者可以根据自己的需求&#xff0c;选择合适的布局进行页面开发。 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际…

SI24R2E:智能电子学生卡2.4GHz考勤方案

今年年初教育部发布的《关于加强中小学生手机管理工作的通知》中提出&#xff0c;学生手机有限带入校园&#xff0c;原则上不得将个人手机带入校园&#xff0c;禁止带入课堂&#xff1b;应设立校内公共电话、建立班主任沟通热线、探索使用具备通话功能的电子学生证或提供其他家…

Autosar-Mcal配置详解(免费)-MCU

3.6.1创建、配置RAM 1)配置MCU通用配置项 MCU的通用配置项可参考以下配置&#xff1a; 各配置项的说明如下&#xff1a; Wake Up Factor Clear Isr: 是否在唤醒的中断服务函数中清除Wakeup Factor Wake Up Factors Clear Centralised: 是否在shutdown前集中集中清除Wakeu…

统信 UOS V20 一键安装 Oracle 12CR2(220118)单机版

Oracle 一键安装脚本&#xff0c;演示 统信 UOS V20 一键安装 Oracle 12CR2&#xff08;220118&#xff09;单机版过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地址&#xff1a;…

C#开发者必备!快速掌握onnxruntime实现YOWOv2视频动作检测技术!

C#开发者必备&#xff01;快速掌握onnxruntime实现YOWOv2视频动作检测技术&#xff01; 目录 介绍 效果 模型信息 项目 代码 Form1.cs YOWOv2.cs 下载 介绍 YOWOv2: A Stronger yet Efficient Multi-level Detection Framework for Real-time Spatio-temporal Action…