图解Mamba——从流体力学的角度理解Mamba

1.Transformer的问题

image.png
上面是Transformer的网络结构。对于一句话的每个单词,都需要跟所有单词算注意力机制。因此注意力机制的计算复杂度为 O ( n 2 ) O(n^2) O(n2),其中 n n n为句子的长度,即单词(符号)的个数。如下图所示。
image.png
所以这也是现在大模型如此吃数据和算力、耗电费的根本原因。
然而,这个过程忽视了数据内在结构的关联关系,而是采取一种一视同仁的暴力模式。比如上面的图,整个句子"The animal didn’t cross the street because it was too tired",很明显,我们把目光注重到"animal",“street"和"tired"这些名词和形容词就大概了解到整个句子的意思,而对应一些介词"the”,副词"too"其实可以"一眼划过"。

2.State Space Model(线性的时不变系统)

2.1.State Space Model网络结构

image.png
SSM(State Space Model)对应公式表述如下:
image.png
h ′ ( t ) h'(t) h(t)其实就为下一个 h ( t ) h(t) h(t)的意思,即 h ′ ( t ) = A h ( t ) + B x ( t ) h'(t)=Ah(t)+Bx(t) h(t)=Ah(t)+Bx(t)也可以表述为 h i ( t ) = A h i − 1 ( t ) + B x ( t ) h_i(t)=Ah_{i-1}(t)+Bx(t) hi(t)=Ahi1(t)+Bx(t) y ( t ) y(t) y(t)加上 D x ( t ) Dx(t) Dx(t)就类似残差。
我们称之为时不变系统,是因为 A B C D ABCD ABCD是不变的,即与 A B C D ABCD ABCD时间无关。这是一种假设,而且是一种强假设

2.2.连续系统离散化

原文State Space Model作者通过"零阶保持(Zero-Order Hold,ZOH)"给出一种从连续系统转换为离散系统的ABC参数对应关系。
image.png
对应连续的输入信号后,仅根据固定的输入时间步长 Δ \Delta Δ对其进行采样
A ‾ = e x p ( Δ A ) , B ‾ = ( Δ A ) − 1 ( e x p ( Δ A ) − I ) ⋅ Δ B \overline A=exp(\Delta A),\overline B=(\Delta A)^{-1}(exp(\Delta A)-I)\cdot \Delta B A=exp(ΔA),B=(ΔA)1(exp(ΔA)I)ΔB

2.3.通过卷积实现SSM并行化

image.png
将SSM展开,得到中间图,类似于RNN的感觉。之后,我们可以通过不同的卷积核来模拟同时处理多个输入。
image.png
如图所示,通过三种不同的卷积核(图中三种不同颜色的虚线框)进行并行计算,一次输出 y k − 1 , y k , y k + 1 y_{k-1},y_k,y_{k+1} yk1,yk,yk+1

3.Mamba——有选择性的SSM

image.png
核心思想就是将SSM的时不变性改为时变性,可以看到这里的 B , C B,C B,C都改成 B t , C t B_t,C_t Bt,Ct,直接或者间接地受 Δ t \Delta _t Δt控制, Δ t \Delta _t Δt起一个类似总开关的作用。
换句话说,就是让 B B B C C C由固定的变成了可变的,根据输入的 x t x_t xt和它的压缩投影学习可变参数。A为了简化保持不变,蓝色部分(投影及其连线)就是所谓的选择机制。目的是根据输入内容有选择性地记忆和处理信息,从而提高对复杂数据的适应能力。这个思想就类似增加了开关的LSTM。
输入特征维度
对于传统的SSM模型,参数矩阵是静止的。
image.png
Mamba对 B , C B,C B,C进行了调整
image.png
其中步长 Δ t \Delta _t Δt像是观察窗口。步长较小时,模型倾向于忽略具体的单词,更多地依赖于之前的上下文信息。通过忽大忽小的步长 Δ t \Delta _t Δt实现注意力机制选择。
注意力机制希望达到的效果
image.png
左边是LTI 的效果,输出只能对规则的输入特征进行发现,而右边上面能自己找重点了,带色的尽管开始间隔大小不一,但都能找出来排好队。右下是Mamba希望选择注意力机制达到的能力体现,再看到黑的后就想到以前,后面应该跟着蓝色的。也就是说,对于非线性时变数据,具备了很强的特征捕捉能力
将大多数SSM架构比如H3的基础块,与现代神经网络比如transformer中普遍存在的门控MLP相结合,组成新的Mamba块。
image.png

4.从流体力学的角度理解Mamba

本小节从流体力学与李指数映射的角度来理解Mamba,该观点来源于b站up主梗直哥丶(见参考资料1)。
Transformer描述的是粒子运动通过自注意力机制映射动态调整每个输入的权重,牛顿力学互作用力来动态调整自己的动沙似粒子间,通过这训练的过程,就是在用牛顿力学拟合入(粒子)独立计算与其他输入的关系。
而Mamba描述的是流体运动。通过李指数映射来建模时空结构。流体运动描述的是连续介质中的分子集体行为,运动是整体的,内部各点之间有强烈的相互关系和依赖。流体的每个部分都受到整体流体运动的影响,通过内部压力、粘性等因素相互作用。这更符合记忆的本质,因为记忆系统具有连续性、动态变化性和整体关联性,这些特性与流体的性质非常相似。流体模型能够更好地描述记忆中的信息如何相互关联、如何随着时间和新信息的出现进行动态调整和整合。
李指数映射(Lie exponential map)是一种数学工具,用于描述和分析一个向量场如何沿着另一个向量场发生变化,比如流体力学、电磁场、广义相对论的时空结构等,解决了动态系统中相互作用的描述。它是群论和微分几何中重要的概念,来源于李群和李代数的理论,是挪威数学家索菲斯李引入的。
Mamba结构图中, h t − 1 h_{t-1} ht1更新到 h t h_t ht,就类似与人类大脑memory的更新,而是 x t x_t xt就像我们每一次的输入, y t y_t yt就像我们每一次经过大脑后的输出
如果把记忆的流淌比作一个水流管道系统,可以看做一个“李群”,进行各种复杂变换(比如旋转、推移等)。固定矩阵 A就是主管道(全局演变路径),类似于流体运动的全局关系,让系统状态更新有固定的全局路径和规则,因此能表现出更高的灵活性和适应性。 B t , C t B_t,C_t Bt,Ct就是阀门或旋钮, Δ t \Delta _t Δt这个离散化因子,就像是流体力学中的时间步长,决应扩休运动的离散时间点。选择机制就像是根据具体情况选择和调整旋钮,控制流体在管道中的流动路径。
训练 mamba 的过程就是用李指数映射拟合流体力学动态系统,找到主管道 A A A,调整阀门和旋钮 B t , C t , Δ t B_t,C_t,\Delta _t Bt,Ct,Δt,获得最优流体流动路径,让模型能在高维特征空间中进行高效导航和决策。
总的来说,跟Transformer的自注意力机制相比,Transformer的自注意力机制更强调个体的独立性,能够捕捉长长距离的上下文依赖关系。而Mamba更强调整体性与全局关系,利用李指数映射实现状态更新与决策。因此,有人认为Mamba在NLP领域是不可能成功的。在NLP领域里边的这种文本的建模非常重要的一点就是长距离依赖的一个建模。Mamba在超过1000token一的这个长度下,它的建模就做不好了。而大模型最有珍贵价值的一点就在于它的这样的一个长距离的一个建模。但是Mamba在CV领域是有很大用处的。Mamba在这个stable diffusion上就是会有很大的用,因为stable diffusion上面的这个我们尤其是在做这个video建模的时候,我们在做这个视频建模的时候,我们可能非常需要建模的就是帧和帧之间的这个连贯性

参考资料

1.AI大讲堂:革了Transformer的小命?专业拆解【Mamba模型】_哔哩哔哩_bilibili
2.一文通透想颠覆Transformer的Mamba:从SSM、HiPPO、S4到Mamba_mamba模型-CSDN博客
3.《大规模语言模型从理论到实践》张奇 桂韬 郑锐 ⻩萱菁 著
4.Mamba: Linear-Time Sequence Modeling with Selective State Spaces,https://arxiv.org/pdf/2312.00752

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

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

相关文章

2021 hnust 湖科大 操作系统课设 报告+原代码+指导书+流程图源文件

2021 hnust 湖科大 操作系统课设 报告原代码指导书流程图源文件 详情 目录 验证类实验: 1 实验一:Windows进程管理 1 一、 实验题目: 1 二、 实验目的 1 三、 实验内容 1 四、 实验结果与分析 2 五、 小结与心得体会 5 实验二:L…

【HarmonyOS】遇见的问题汇总

一、当前编辑的页面,预览打不开 1、问题说明 当前编辑的页面,预览打不开,日志提示如下: Route information is not configured for the current page. To avoid possible redirection issues, configure route information for…

数据结构 —— 堆

1.堆的概念及结构 堆是一种特殊的树形数据结构,称为“二叉堆”(binary heap) 看它的名字也可以看出堆与二叉树有关系:其实堆就是一种特殊的二叉树 堆的性质: 堆中某个结点的值总是不大于或不小于其父结点的值&…

Vuepress 2从0-1保姆级进阶教程——标准化流程(Tailwindcss+autoprefixer+commitizen)

Vuepress 2 专栏目录【已完结】 1. 入门阶段 Vuepress 2从0-1保姆级入门教程——环境配置篇Vuepress 2从0-1保姆级入门教程——安装流程篇Vuepress 2从0-1保姆级入门教程——文档配置篇Vuepress 2从0-1保姆级入门教程——主题与部署 2.进阶阶段 Vuepress 2从0-1保姆级进阶教程—…

AM273X毫米波演示

介绍 毫米波演示展示了 AM273X SOC 使用毫米波 SDK(软件开发工具包)中的驱动程序的一些功能。它允许用户指定chirp配置文件并实时显示检测到的对象和其他信息。 以下是此演示功能的高级描述: 能够通过 UART 端口上的命令行界面 (…

文字悬停效果

文字悬停效果 效果展示 CSS 知识点 CSS 变量使用回顾-webkit-text-stroke 属性的运用与回顾 页面整体结构实现 <ul><li style"--clr: #e6444f"><a href"#" class"text">First</a></li><li style"--cl…

苹果WWDC重磅发布的IOS 18、Apple Intelligence背后的技术分析!

2024年6月10日&#xff0c;在2024年WWDC全球开发者大会上&#xff0c;苹果推出了Apple Intelligence&#xff0c;这是深度集成到iOS 18、iPadOS 18和macOS Sequoia中的个人智能系统。 为了让大模型能在 iPhone 端侧跑&#xff0c;苹果还是做了很多事情的。接下来就跟大家介绍一…

Spring学习笔记

1 spring介绍 1)为什么学习spring ​ 1. Spring技术是JavaEE开发必备技能&#xff0c;企业开发技术选型命中率>90% ​ 2. 简化开发&#xff0c;降低企业级开发的复杂性 ​ 3. 框架整合&#xff0c;高效整合其他技术&#xff0c;提高企业级应用开发与运行效率 ​ 作为一…

IDEA创建Mybatis项目

IDEA创建Mybatis项目 第一步&#xff1a;创建库表 -- 创建数据库 create database mybatis_db;-- 使用数据库 use mybatis_db;-- 创建user表 CREATE TABLE user (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(50) NOT NULL,email VARC…

Django API开发实战:前后端分离、Restful风格与DRF序列化器详解

系列文章目录 Django入门全攻略&#xff1a;从零搭建你的第一个Web项目Django ORM入门指南&#xff1a;从概念到实践&#xff0c;掌握模型创建、迁移与视图操作Django ORM实战&#xff1a;模型字段与元选项配置&#xff0c;以及链式过滤与QF查询详解Django ORM深度游&#xff…

第十五届蓝桥杯大赛 国赛 pb组F题【括号与字母】(15分) 栈的应用

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 试题F:括号与字母 【问题描述】 给定一个仅包含小写字母和括号的字符串 S …

【CentOS 7】挑战探索:在CentOS 7上实现Python 3.9的完美部署指南

【CentOS 7】挑战探索&#xff1a;在CentOS 7上实现Python 3.9的完美部署指南 大家好 我是寸铁&#x1f44a; 总结了一篇【CentOS 7】挑战探索&#xff1a;在CentOS 7上实现Python 3.9的完美部署指南详细步骤✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 此篇教程只适用于p…

LeetCode 算法: 旋转图像c++

原题链接&#x1f517;&#xff1a; 旋转图像 难度&#xff1a;中等⭐️⭐️ 题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图…

OrangePi AIpro小试牛刀-目标检测(YoloV5s)

非常高兴参加本次香橙派AI Pro&#xff0c;香橙派联合华为昇腾打造的一款AI推理开发板评测活动&#xff0c;以前使用树莓派Raspberry Pi4B 8G版本&#xff0c;这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…

服务器通的远程桌面连接不上,服务器通的远程桌面连接不上解决方法

当面临服务器远程桌面连接不上的问题时&#xff0c;专业的处理方式需要遵循一系列步骤来确保问题得到准确且高效的解决。以下是一些建议的解决方法&#xff1a; 一、初步排查与诊断 1. 检查网络连接&#xff1a; - 确保本地计算机与服务器之间的网络连接是稳定的。 - 尝…

【万方数据库爬虫简单开发(自用)】

万方数据库爬虫简单开发&#xff08;自用&#xff09;&#xff08;一&#xff09; 使用Python爬虫实现万方数据库论文的搜索并获取信息1.获取url2.输入关键词3.使用BeautifulSoup解析4.获取文章标题信息 使用Python爬虫实现万方数据库论文的搜索并获取信息 后续会逐步探索更新…

【Mac】Downie 4 for Mac(视频download工具)兼容14系统软件介绍及安装教程

前言 Downie 每周都会更新一个版本适配视频网站&#xff0c;如果遇到视频download不了的情况&#xff0c;请搜索最新版本https://mac.shuiche.cc/search/downie。 注意&#xff1a;Downie Mac特别版不能升级&#xff0c;在设置中找到更新一列&#xff0c;把自动更新和自动downl…

【数据结构】二叉树:一场关于节点与遍历的艺术之旅

专栏引入 哈喽大家好&#xff0c;我是野生的编程萌新&#xff0c;首先感谢大家的观看。数据结构的学习者大多有这样的想法&#xff1a;数据结构很重要&#xff0c;一定要学好&#xff0c;但数据结构比较抽象&#xff0c;有些算法理解起来很困难&#xff0c;学的很累。我想让大家…

QT中为程序加入超级管理员权限

QT中为程序加入超级管理员权限 Chapter1 QT中为程序加入超级管理员权限1. mingw编译器2. MSVC编译器3. CMAKE Chapter2 如何给QT程序添加管理员权限(UAC)的几种方法1、Qt Creator中方案一&#xff1a;&#xff08;仅适用于使用msvc编译器&#xff09;方案二&#xff1a;&#x…

uniapp地图自定义文字和图标

这是我的结构&#xff1a; <map classmap id"map" :latitude"latitude" :longitude"longitude" markertap"handleMarkerClick" :show-location"true" :markers"covers" /> 记住别忘了在data中定义变量…