Mamba 模型
建议观看讲解视频:AI大讲堂:革了Transformer的小命?专业拆解【Mamba模型】_哔哩哔哩_bilibili
1. 论文基本信息

2. 创新点
选择性 SSM,和扩展 Mamba 架构,是具有关键属性的完全循环模型,这使得它们适合作为在序列上运行的一般基础模型的主干。
(i) 高质量:选择性在语言和基因组学等密集模式上带来了强大的性能。
(ii) 快速训练和推理:计算和内存在训练期间以序列长度线性缩放,并且在推理过程中自回归展开模型在每一步只需要恒定的时间,因为它不需要先前元素的缓存。
(iii) 长上下文:质量和效率共同产生了高达序列长度 1M 的真实数据的性能改进。
3. 背景
基础模型 (FM) 或在大量数据上预训练的大型模型,然后适应下游任务,已成为现代机器学习的有效范式。这些 FM 的主干通常是序列模型,对来自语言、图像、语音、音频、时间序列和基因组学等多个领域的任意输入序列进行操作。虽然这个概念与模型架构的特定选择无关,但现代 FM 主要基于一种类型的序列模型:Transformer 及其核心注意力层自注意力的功效归因于它能够在上下文窗口中密集地路由信息,使其能够对复杂的数据进行建模。然而,此属性带来了根本的缺点:无法对有限窗口之外的任何信息进行建模,以及相对于窗口长度的二次缩放。大量研究似乎在更有效的注意力变体上来克服这些缺点,但通常以牺牲使其有效的非常属性为代价。然而,这些变体都没有被证明在跨领域的规模上在经验上是有效的。
最近,结构化状态空间模型 (SSM) 已成为序列建模的一种有前途的架构。这些模型可以解释为循环神经网络 (RNN) 和卷积神经网络 (CNN) 的组合,灵感来自经典状态空间模型 (Kalman 1960)。此类模型可以非常有效地计算为递归或卷积,序列长度具有线性或接近线性缩放。此外,论文提出了一类新的选择性状态空间模型,它在几个轴上改进了先前的工作,以实现 Transformer 的建模能力,同时在序列长度上线性缩放。
之前的网络训练测试时间对比如下:

- 自注意力机制的缺陷:计算范围仅限于窗口内,缺乏全局观,但是窗口一旦扩大,计算复杂度(O n^2),每个位置都需要计算,计算复杂度扩大。
4. Pipeline
Parallel Computing:显卡中例如计算累加和,可使用下面的蝶形运算达到并行计算效果

在 trasformer 中由于要存储 attention map 导致需要存储的内容过多,导致显卡中需要来回在 DRAM 和 SRAM 中做数据 copy ,导致降低了计算效率:

Mamba 的模型框架,硬件感知算法(某些值可能过大 在 SRAM 中无法存储,Manba 的思想是将其重算):

Vision Mamba:

4.1. 时序状态空间模型 SSM

NeurIPS 2021

SSM 本质上是一个 CNN 化的 RNN,采用并行处理结构代替了原本的递归 RNN 。例如在生活中读一本书,时许嵌套的 RNN 每次只能读一行, 然后把记忆传递到下一行,这种方式只适合处理短故事,故事一长,容易忘记之前的情节。而 SSM 并行处理,相当于同时打开所有页看到每行内容,这样就能够快速找到和理解整本数。
4.2. 选择性 SSM
attention的核心思想其实就是在大量样本中能够找到重点,于是 Manba 在降低模型的存储复杂度的前提下,同样关注注意力机制的核心。

在框架图中,derta T 是通过 \tau(一种非线性激活函数),因此delta T 是非线性的,所以 ABC 都是非线性时变的,系统的条件就放开了。


Mamba Block ,左边的线主要保证残差连接,避免梯度消失。右边先升维,在卷积提取时序特征,silu是非线性激活函数。
5. 💎实验成果展示


Vision Mamba:

6. 🔍问题分析
Transformer 用于处理图像已经较为大的计算量,而 mamba 由于减少了计算量可以处理视频或者 3D 点云数据。
- Transformer 注意力机制的窗口小效果小了效果差,窗口大了计算复杂度平方暴涨。
7. 源码环境配置:
GitHub - state-spaces/mamba: Mamba SSM architecture Mamba
相关文章:
Mamba 模型
建议观看讲解视频:AI大讲堂:革了Transformer的小命?专业拆解【Mamba模型】_哔哩哔哩_bilibili 1. 论文基本信息 2. 创新点 选择性 SSM,和扩展 Mamba 架构,是具有关键属性的完全循环模型,这使得它们适合作…...
30-33、SpringBoot项目部署\属性配置方式\多环境开发(一个文件)\多环境分组(多个文件)
1、打包插件:和springboot的版本保持一致 根pom <build><plugins><!--打包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>3.1.3</versi…...
【PyQt5】一文向您详细介绍 setContentsMargins() 的作用
【PyQt5】一文向您详细介绍 setContentsMargins() 的作用 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通…...
分页查询前端对接
文章目录 添加角色修改角色当点击修改按钮后,那么就会弹出对话框,所以要设置显示为true点击修改的时候就是 要显示对话框 制作用户管理页面开发后端接口用户查询前端整合新增接口功能实现修改 添加角色 首先添加 添加表单的组件 那么总结一下 就是使用 组件 然后再使用变量接…...
从一万英尺外看libevent(源码刨析)
从一万英尺外看libevent 温馨提示:阅读时间大概二十分钟 前言 Libevent是用于编写高速可移植非阻塞IO应用的库,其设计目标是: 可移植性:使用libevent编写的程序应该可以在libevent支持的所有平台上工作。即使没有好的方式进行非…...
Linux部署SVN
一.下载与安装 (1)yum安装 yum install subversion (2)源文件编译安装 ①下载svn源文件 subversion-xxx.tar.gz(subversion 源文件) subversion-deps-xxx.tar.gz(subversion依赖文件&…...
Linux高并发服务器开发(二)系统调用函数
文章目录 1 系统调用2 errno3 虚拟内存空间4 文件描述符5 常用文件IO函数6 阻塞和非阻塞7 lseek 偏移函数8 文件操作函数之stat函数9 文件描述符复制 dup10 fcnlt函数 修改文件属性11 目录相关操作12 时间相关函数 1 系统调用 根据系统调用,获取驱动信息、CPU的信息…...
rk3568 Android 11在系统怎样执行命令获取SN号
目录 1. 使用ADB(Android Debug Bridge)2. 使用Shell脚本或应用程序3. 使用系统API4. 直接在设备上使用Shell5. getprop使用方法常见属性示例注意事项 在瑞芯微RK3568 Android 11系统中执行命令或获取SN号(序列号)通常可以通过几种…...
PostgreSQL 性能优化与调优(六)
1. 索引优化 1.1 创建索引 索引可以显著提高查询性能。创建索引的基本语法如下: CREATE INDEX index_name ON table_name (column_name);例如,为 users 表的 username 列创建索引: CREATE INDEX idx_username ON users (username); 1.2 …...
win10 安装openssl并使用openssl创建自签名证书
win10创建自签名证书 下载安装配置openssl 下载地址: https://slproweb.com/download/Win64OpenSSL-3_3_1.exe https://slproweb.com/products/Win32OpenSSL.html 完成后安装,一路next,到达选位置的之后选择安装的位置,我这里选…...
【OpenCV 图像处理 Python版】图像处理的基本操作
文章目录 1.图像的 IO 操作1.1 图像读取 imread1.2 图像显示1.2.1 opencv 方式1.2.2 matplotlib 方式 1.3 图像保存 imwrite 2.绘制几何图形1. 绘制直线2. 绘制矩形3. 绘制圆形4. 绘制多边形5. 添加文字 3.获取并修改图像中的像素点3.1 获取像素值3.2 修改像素值3.3 获取和修改…...
HarmonyOS应用开发学习经验
一、HarmonyOS学习官网 开发者能力认证 HarmonyOS应用开发者基础认证6月之前的学习资源官网已经关闭过期,大家不要慌,官方更新了最新资源,但是,对于之前没有学习完的学员不友好,存在知识断片的现象,建议官…...
LLM大语言模型应用方案之RAG检索增强生成的实现步骤。
0.我理解的RAG 什么是RAG? RAG的全称是“检索增强生成模型”(Retrieval-Augmented Generation)。这是一种特别聪明的大语言模型。 RAG是怎么工作的呢? 1.检索:当你问RAG一个问题时,它会先去“图书…...
【python学习】学习python的小项目
学习Python时,通过完成一些小项目可以帮助你巩固知识并提升实践能力。以下是一些适合学习Python的小项目建议: 命令行计算器: 创建一个简单的命令行计算器,可以执行基本的算术运算(加、减、乘、除)。使用i…...
java-冒泡排序 1
## Java中的冒泡排序 ### 1. 冒泡排序的基本概念 冒泡排序(Bubble Sort)是一种简单且直观的排序算法。它通过重复地遍历待排序的列表,比较相邻的元素并交换它们的位置,使较大的元素逐步从列表的一端移动到另一端,就像…...
【STM32】USART串口通讯
1.USART简介 STM32芯片具有多个USART外设用于串口通讯,它是 Universal Synchronous Asynchronous Receiver and Transmitter的缩写, 即通用同步异步收发器可以灵活地与外部设备进行全双工数据交换。有别于USART, 它还有具有UART外设(Univers…...
Qt6中如何将QList转为QSet?
QSet是一个具有唯一值的哈希集合。比较少用。比较有用的是QSet里面的intersect查找两个集合中不同元素,并合并。 转换过程比较简单,第一种是直接用迭代器。 QSet<int> set(list.begin(), list.end()); 第二种就是逐一遍历赋值: QLi…...
aspectj:AOP编程备忘录-切面定义的注意事项
AOP编程时定义切面时需要注意的事 Around 以Around注解拦截构造方法(Constructor)时切面定义只能用call方式而不能是execution,否则 ProceedingJoinPoint.proceed()返回的是null,得不到构造的实例。 execution execution切入点要修改对象内部&#x…...
大数据面试题之Hive(1)
目录 说下为什么要使用Hive?Hive的优缺点?Hive的作用是什么? 说下Hive是什么?跟数据仓库区别? Hive架构 Hive内部表和外部表的区别? 为什么内部表的删除,就会将数据全部删除,而外部表只删除表结构?为什么用外部表更好? Hive建表语句?创建表…...
【Git】分布式版本控制工具
一、简介 二、目标 Git分布式版本控制工具 一、简介 Git是一种分布式版本控制系统,用于跟踪和管理源代码的变化。它由林纳斯托瓦兹(Linus Torvalds)于2005年开发,并迅速成为最流行的版本控制工具之一。以下是关于Git的一些关键…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
