Mamba 模型 ========== 切换语言: :doc:`../en/MambaModel` ``M9`` 是项目中的 Mamba 选择性状态空间编码器。 为什么要引入 Mamba ++++++++++++++++++ Mamba 是当前长序列建模里最重要的注意力替代路线之一。它既保留了强序列建模能力, 又试图在线性时间风格下处理更长上下文。 项目中的实现 +++++++++++++++++++++++++++++ - 输入:one-hot 序列投影到模型空间 - 优先运行:官方 ``mamba-ssm`` 实现 - 回退路径:PyTorch 近似实现,保证无 GPU 环境也能跑通 - 输出:多层 block 后做均值池化 从高层形式看,它的选择性状态空间更新可以写成: .. math:: 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`` 运行时。回退实现更偏向可移植性和管道验证, 不应被视为和优化版完全等价。 .. image:: ../img/div.png