一种替代Transformers的模型,通过维护一个压缩的“状态”来处理序列,而不是对所有token使用注意力机制。Mamba是最著名的SSM架构。SSM的计算复杂度随序列长度线性扩展(而注意力机制是二次方扩展),这使得它们在处理非常长的上下文时可能效率高得多。
状态空间模型(SSM)借用控制理论的数学框架,几十年来SSM一直用于建模动态系统。核心思想是线性递归:模型维护一个隐藏状态,每个时间步通过学习到的线性变换更新该状态,然后与当前输入混合。在连续时间中,这表现为微分方程(dx/dt = Ax + Bu, y = Cx + Du)。离散化后,可以得到一个递归公式,按token逐个处理序列,每一步更新一个固定大小的状态。优雅之处在于训练时,该递归可以展开为卷积,使其像注意力一样在GPU上并行处理。在推理时,切换回递归形式,逐个处理token,使用常量内存 — 没有增长的KV缓存。
Mamba(Albert Gu和Tri Dao,2023)是使SSM在语言任务上与Transformer竞争的突破。早期的SSM如S4和H3使用固定状态转移矩阵,这限制了它们进行基于内容的推理能力 — 模型无法根据token的内容调整处理方式。Mamba引入了选择性状态空间,其中A、B和C矩阵是输入的函数。这使模型能够在每个token决定保留和遗忘多少信息。可以将其视为一种学习到的、可微分的门控机制,但通过线性递归而非注意力实现。Mamba-2后来将其重新表述为结构化状态空间对偶性(SSD),揭示了选择性SSM与线性注意力在数学上的关联,并通过基于矩阵乘法的算法实现了更快的GPU实现。
实际优势是真实且可衡量的。在推理时,Transformer必须为上下文中的每个token存储键值对 — 该KV缓存随序列长度线性增长,是长上下文服务的主要瓶颈。SSM无论看到多少token都维持固定大小的状态。对于具有128K上下文窗口的模型,这种差异是巨大的:SSM生成第128,001个token时使用的内存与生成第1个token时相同。在长序列训练中,由于并行扫描或卷积模式随序列长度线性扩展,而完整注意力是二次扩展,训练吞吐量也受益。这些效率提升使得SSM特别适合需要长范围上下文的应用:文档分析、跨大型代码库的代码生成,以及实时流处理中token持续到达的场景。
尽管如此,SSM确实存在一些被炒作所忽略的限制。纯SSM在需要从上下文早期精确检索的任务中可能遇到困难 — 即所谓的“针尖在麦垛中”问题。理论上,Transformer可以通过注意力权重直接关注任何过去的token。SSM必须将相关信息压缩到其固定大小的状态中,如果在首次处理该token时未优先考虑正确的内容,信息就会丢失。这就是为什么混合架构 — 在SSM层中插入少量注意力层 — 正在兴起。Jamba(来自AI21)和各种研究混合模型表明,通过在网络的关键点上谨慎使用注意力,可以以SSM的效率获得接近注意力的检索精度。
Mamba-3,最新一代,通过多输入多输出(MIMO)公式和通过旋转位置编码实现的复数状态进一步推动了架构发展。递归使用梯形积分规则以获得更好的数值稳定性,架构去除了早期版本中用作短距离混合机制的因果卷积层。这些不是渐进式改进 — 它们改变了计算特性,以至于需要自定义Triton内核才能实现完整性能,而标准的mamba-ssm PyPI包尚未包含这些内容。如果你今天正在基于SSM构建系统,预计需要比成熟的Transformer堆栈更贴近底层硬件。工具链正在追赶,但生产级SSM部署仍处于早期阶段。