Mamba 模型
切换语言: Mamba Model
M9 是项目中的 Mamba 选择性状态空间编码器。
为什么要引入 Mamba
Mamba 是当前长序列建模里最重要的注意力替代路线之一。它既保留了强序列建模能力, 又试图在线性时间风格下处理更长上下文。
项目中的实现
输入:one-hot 序列投影到模型空间
优先运行:官方
mamba-ssm实现回退路径:PyTorch 近似实现,保证无 GPU 环境也能跑通
输出:多层 block 后做均值池化
从高层形式看,它的选择性状态空间更新可以写成:
\[h_t = \bar{A}(x_t) h_{t-1} + \bar{B}(x_t) x_t, \qquad
y_t = C(x_t) h_t\]
与固定系数状态空间模型不同,这里的状态转移会依赖当前输入内容,因此 Mamba 能根据 序列内容自适应调整“该记什么、该忘什么”。
为什么它对当前项目重要
引入 Mamba 并不是因为“热门”而已,而是因为它检验了一个关键假设: 超长基因组依赖是否可以在不依赖全局注意力显存代价的情况下,通过状态空间方式高效建模。
优势 +++
更适合长序列扩展;
是 Transformer 之外非常重要的现代路线;
便于和 RWKV、Linear Transformer 做效率与表达能力对比。
计算复杂度与适用范围
时间复杂度:设计目标就是线性时间风格的长序列处理,因此比稠密二次注意力更适合超长上下文。
显存特征:对长输入更友好,因为它避免了显式 token-token 注意力图,主要通过状态递推保留历史。
适用范围:很适合长基因组窗口,尤其是在希望保留上下文而又不愿支付注意力显存代价时。
注意点
最高保真效果依赖官方 mamba-ssm 运行时。回退实现更偏向可移植性和管道验证,
不应被视为和优化版完全等价。