b站学习笔记:
2024最新模型Mamba详解,Transformer已死,你想知道的都在这里了!_哔哩哔哩_bilibili
Mamba——Linear-Time Sequence Modeling with Selective State Spaces
Rnn 循环神经网络
LSTM
Training很快 testing很慢
复杂度高 存储需求高
希望ram和time都 能达到O(n)的复杂度,就可以很好地解决了现有的瓶颈问题,于是出现了 SSM(状态机)
h(t)是上一个时间的情况,h’(t)是下一个时间的情况
状态机是一个递归的过程
状态机只需要保存当前的状态时间就可以了,不用保存太多内容。而transformer通过计算一个二维矩阵,这样的计算是非常慢的,他把所有的时间都保存了下来。
A随便取一个值的话效果不好,所以希望是一个动态的A,于是使用了Hippo matrix 进行计算动态的Ank,但这样还是二维的,这样和transformer一样都是二维矩阵了,所以想通过公式压成一维的A,相当于提取其主成分变成一维的。
并不是说mamba是第一个提出来的,而是Mamba是改进了ssm 里面不能解决的问题。
Mamba也可以进行parallel computing
避免产生延迟
Transformer的方法 就是在dram和sram来回的倒腾,他的内存用的太多了
所以希望从dram 把数据copy到sram,然后在sram里面算,算完之后再直接copy回dram,相当于只有一次过程就可以解决这个问题,mamba就解决了这个问题
sram还有一个问题,有时候数据还是会产生比较大,在sram里面存不下,gpu计算是比内存要快的,所以在cpu中重新算一遍,这样可以保证所有的数据保存在sram里面,因为巨大的数据我们并不要再去提取出一遍了,这样就可以继续增加速度
Mamba算法
金字塔里面 上面size比较小,速度比较快;下面的size比较大,速度比较慢。所以尽可能的吧核心运算放在sram里面,这样的话系统变得更快。Ssm的方法比较省内存没所以可以做这样的优化,而transformer根本不可能做样的优化,因为他根本不省内存。
接下来看看mamba其他的算法:
有选择的算法,在连续的状态机里面,copy东西整个copy过去时比较容易的,但是当他中间有一些空档的时候,我们不想要这些空档,即想要有选择性的copy,这样就有些难了,mamba就设计了一个算法—— selection部分
Transformer 超过2k就不收敛了
Vision Mamba——Efficient Visual Representation Learning with Bidirectional State Space Model
vision mamba 和 vit 非常像的
U-Mamba:Enhancing Long-range Dependency for Biomedical Image Segmentation
医学上的工作,使用了类似unet一样的结构
输入一个全部的图片,输出可以标出各个器官
箭头指出的是很容易错误分类的部分
小结:
mamba可以直接替换transformer