首页 > 其他分享 >从 SSM 到 Mamba2,Mamba 发展回溯

从 SSM 到 Mamba2,Mamba 发展回溯

时间:2024-09-06 20:13:33浏览次数:2  
标签:Mamba2 Transformer 模型 SSM 计算 Mamba 动态

本文是 Mamba 阅读第一篇文章,本来想从三个问题出发(1)不同 SSM 模型的区别是什么?(2)Transformer 和 SSM 可以等效吗?什么情况下可以等效?(3)很多实验表明 Mamba1 和 Mamba2 并不是单纯替代关系[1],Mamba2 相比 Mamba1 的变化是什么?即 SSM 部分、Transformer 部分 以及 计算部分。时间有限后续博客完成遥遥无期,故将第一部分整理发表。

动态模型发展: 从 Transformer 到 Mamba

最近模型架构从静态计算到动态计算转变趋势越发明显,也许 Transformer 强大 scalability 来自其动态计算特征。

所谓静态计算,指参与计算的俩个操作数一个属于事先已知的静态参数(比如权重)一个属于推理中产生的动态参数(比如特征),传统 MLP 以及卷积层都属于静态计算;而动态计算则是俩个操作数都属于动态参数,比如早期动态卷积中的加权混合以及 Transformer 中的 Q、K 乘法等等。

模型中加入动态计算使得计算需求并不能单一反映计算量。比如 Transformer 的 KV Cache 容量随着 Token 数量平方增长。动态计算需求和模型参数一起反映模型规模更加准确。

但 Transformer 随着 Token 数量增长动态开销太过巨大,如果将 KV Cache 看作过去输入带来的状态,那么 Transformer 就像无损压缩将所有信息存储。针对 Transformer 巨大的开销,Mamba 采用 SSM 中的状态变量压缩所有过去输入信息,并引入动态机制选择性压缩重要部分。

一言以蔽之,Mamba 是采用 State Space 压缩过去信息的动态模型

Jamba

如图,MoE 机制将模型容量和激活参数解耦,而动态机制将激活参数和硬件容量需求解耦。动态模型下以静态模型参数作为唯一衡量指标并不恰当。

Mamba2

本文接下来将对各种 SSM 模型总结,从 SSM 角度梳理 Mamba2 的模型发展。

说文解字,从 S4 到 SSD

按 Mamba2 文章中 SSM 模型分为 3 类:

  • Structured State Space Model (传统卡尔曼现代控制理论中 S4 模型)
  • Diagnoal State Space Model (包括 S4D、S6[2]
  • Scalar-Identity SSM (也叫 1-Semiseparable Structed Masked Attention,包括 SSD)

SSM

S4 模型 4 个 S 来自 Structed State Space Sequential Model,也就是卡尔曼控制理论表示用状态方程和输出方程表示控制关系的那一套。其中 Sequential 揭示了 SSM 的计算本质,sequential 是有序 1D 数据结构,顺序性和 Transformer 中并行计算所有一个窗口内 Token 不同,而顺序 1D 与处理 2D 图像数据乃至 3D 空间数据相矛盾,后续 Mamba 扩展到非语言任务所采用五花八门的 trick 源自这里。

State Space

而将 SSM 迁移到 ML 中便是假设矩阵参数 A、B、C、D 是学习的权重参数,而输入作为激励 u,计算状态 x 和输出 y。实际推理是由于权重固定,实际对应的是 time-invariant 模型。

Var Dimension

回到 SSM 的计算形式,时间维对应实际是 token 的数量,和实际推理有关是一个动态维度,除了动态维度每个变量还有些固定静态维度,比如输入维度 p、状态维度 n 和输出维度 q。计算上状态空间便是用 A、B、C、D 矩阵将数据在 p、n、q 维度之间互相投影变化。 基于模型扩展考虑,输入输出维度一般选择相同,即 p = q。

Diagonal

自然可知状态方程中 A 是 nxn 的方程,表示状态变量在时间维度的作用关系。若将 A 退化为对角矩阵,从 nxn 退化到 n 个自由参数,Ax 矩阵向量乘退化到俩个 n 维向量乘法,便是 Diagonal State Space Model。

但此时模型仍是静态模型,A、B、C、D 是静态参数,因此 SSM 的计算也是静态计算。前文说到 SSM 可以看作将历史信息压缩到固定大小的空间(状态变量),而对于时间维度上不变的 A、B、C、D 就像对任何时间压缩率相等,那么显而易见,随着输入序列长度变大,历史信息在固定空间中所占比例更小。对所有信息采用相同压缩率并不符合压缩的味道,而 time-invariant 也有现实时变系统更多概念相违背。

因此 Mamba 再加了一个 S:Selective,A、B、C、D 并不直接由模型权重提供,而是计算中类似 Q、K、V 动态生成,实际是将 SSM 变为 time-variant 系统。

S6 中的另一个 S 则有点特殊,并非是模型的变动而是类似 Flash Attention 具体计算执行上的变化。前文说到 SSM 一个重要特征是天然 sequential 特性,这个特征实际与并行加速存在冲突,因为有序性,后面的输出要等到前面的输出结果,这种依赖关系便限制了并行加速。更专业的术语叫做前缀和问题(prefix sum)或者扫描问题(scan)[3],前缀和问题想要并行加速必定要引入额外的计算量[4],但如何在资源开销增加和加速销量之间 trade-off 仍然是一个重要的问题。Mamba 中使用的是 Blelloch 提出的前缀和算法[5]

可见 Mamba 有俩个明显的特征,一是理论延续性,SSM 家族的高贵血统使得系列工作中对数学的合理异常重视(当然一旦扯到Machine Learning解释性就靠边站了);二是不但对模型理论修正,计算实现也非常重视,毕竟是做出 Flash Attention 的作者呐。

那么进一步也不难猜测,Scalar-Idenetity 便是在 Diagnoal 基础上进一步退化 A,从n维向量直接退化到一个标量。


  1. 比如 Jamba 指出纯 Mamba 架构 Mamba2 胜过 Mamba1,但attn-Mamba 混合架构下 Mamba1 胜过 Mamba2 ,见 Jamba-1.5: Hybrid Transformer-Mamba Models at Scale ↩︎

  2. Mamba 类模型从卡尔曼 State Space Model 发展而来,除了有按 DNN 这边起名传统的昵称(什么 ELMO、BERT、Transformer),也有能反映在 SSM 家族谱系的正式名称,比如 Mamba1 也叫 S6,Mamba2 也叫 SSD ↩︎

  3. 扫描这个词非常生动形象,很容易联想到老式显像管电子束来回扫描出影像的画面。更泛化地说,扫描是将空间的信息按某种顺序在时间维上挨个输入。 ↩︎

  4. 这里的计算量并非指增加计算单元。而是变化模型的计算量本身,举个例子,对于一个固定模型,其计算量是固定的,增加单元只是缩短计算时间,而这里是类似 Flash Attention 中为了使算法可迭代引入了额外的迭代计算步骤一样,增加了总体计算量。 ↩︎

  5. Prefix Sums and Their Applications ↩︎

标签:Mamba2,Transformer,模型,SSM,计算,Mamba,动态
From: https://www.cnblogs.com/devil-sx/p/18400931

相关文章

  • 基于ssm+vue技术的社区人口管理系统【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和人口流动性的增强,社区作为城市治理的基本单元,其人口管理工作面临着前所未有的挑战。传统的人工管理模式已难以高效、准确地处......
  • 基于ssm+vue校园疫情安全管理系统设计与实现【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着全球新冠疫情的持续影响,校园作为人群密集、交流频繁的场所,其疫情防控工作显得尤为重要。传统的人工管理方式在应对大规模学生及教职工的健康监测......
  • Falcon Mamba: 首个高效的无注意力机制 7B 模型
    FalconMamba是由阿布扎比的TechnologyInnovationInstitute(TII)开发并基于TIIFalconMamba7BLicense1.0的开放获取模型。该模型是开放获取的,所以任何人都可以在HuggingFace生态系统中这里使用它进行研究或应用。在这篇博客中,我们将深入模型的设计决策、探究模......
  • 基于java+ssm+vue的婚庆摄影小程序
    项目介绍社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮流进行各大布局,经过多年的大浪淘沙,各种移动操作系统的不断......
  • 寝室|基于SSM+vue的金桂园寝室管理系统(源码+数据库+文档)
    金桂园寝室管理系统基于SprinBoot+vue的金桂园寝室管理系统一、前言二、系统设计三、系统功能设计 系统登录实现管理员模块实现宿管模块实现学生模块实现四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码......
  • 酒店预定|基于SSM+vue的网红酒店预定系统(源码+数据库+文档)
    网红酒店预定系统基于SprinBoot+vue的网红酒店预定系统一、前言二、系统设计三、系统功能设计 系统功能实现后台模块实现管理员模块实现客户功能实现四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|......
  • SSM的体育场地预订管理系统
    感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人2025最新毕业设计项目推荐-SSM篇2025最新毕业设计项目推荐-SpringBoot篇2025最新毕业设计项目推荐-小程序、uniapp篇-CSDN博客​体育场地预订管理系统【部署+......
  • SSM的小区物业管理系统
    感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人2025最新毕业设计项目推荐-SSM篇2025最新毕业设计项目推荐-SpringBoot篇2025最新毕业设计项目推荐-小程序、uniapp篇-CSDN博客​小区物业信息管理系统【部署+讲......
  • SSM的实验室资源预约管理系统
    感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人2025最新毕业设计项目推荐-SSM篇2025最新毕业设计项目推荐-SpringBoot篇2025最新毕业设计项目推荐-小程序、uniapp篇-CSDN博客​实验室资源预约管理系统【部署+......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校知识共享系统等问题,对高校知识共享系统进行研究分析,然后开发设计出高校知识共享系统以......