SSM 的应用、工程实践与前沿方向
前几篇我们把 SSM 的数学原理(HiPPO、DPLR)、架构演进(S4 到 Mamba)以及底层优化(并行扫描、硬件感知)都拆解了一遍。本篇从理论走向真实业务:先看 SSM 如何跨越文本的边界,在视觉、语音、生物医疗等领域落地;再给出一份实操层面的工程指南;然后客观审视它目前的局限,最后梳理这个方向正在往哪里走。
一、跨模态应用:SSM 在哪里发挥作用
SSM 的核心优势是“在极长序列下保持线性复杂度和常数级推理显存”。只要数据满足“序列极长”或“流式到达”这两个特点之一,SSM 就比 Transformer 更有优势。下面分四个领域来看。
1. 计算机视觉:Vision Mamba(Vim)与 VMamba
要解决的问题。 Transformer(ViT)处理图像时,需要把图像切成 Patch 并展平为 1D 序列。但图像的 Patch 数量很大,例如 $224 \times 224$ 的图像切成 196 个 Patch,Attention 的 $O(L^2)$ 复杂度让高分辨率图像的处理变得极其昂贵。
架构改造的矛盾。 SSM 是 1D 因果模型,只能看过去不能看未来;而图像是 2D 的,没有天然的“因果方向”,因为一个像素的上下文分布在它的上下左右。
真实应用中的解法。 Vim(Vision Mamba)采用双向扫描(Bidirectional Scan):把图像展平后正向扫一遍,再反向扫一遍,把两个方向的状态拼接起来,从而获得全局感受野。VMamba(VSS Block)采用更进一步的交叉扫描(Cross-Scan):将图像分别按“行、列、反向行、反向列”展平成 4 个 1D 序列,分别跑 4 个 SSM,最后把 4 个结果合并。这弥补了 SSM 缺乏 2D 空间感知能力的缺陷。
结果。 在 ImageNet 分类和 COCO 目标检测上,VMamba 以显著更低的 FLOPs(计算量)超过了 Swin Transformer。
2. 基因组学与生物信息:Hyena DNA 与 Caduceus
要解决的问题。 DNA 序列是由 A、T、C、G 组成的极长字符串。人类基因组有 30 亿个碱基对,即使单个基因的上下文也动辄几十万到上百万。Transformer 在这里会直接 OOM(显存爆炸),而传统 CNN 的感受野又太小。
架构改造。 DNA 没有“单词”的概念,不需要复杂的 Tokenizer,通常直接做字符级(Character-level)Embedding。Hyena DNA 基于长卷积和 SSM 思想,能够一次性处理长度达到 100 万的 DNA 序列,用于预测基因表达和染色质可及性。Caduceus(2024)直接使用 Mamba 架构,并引入了双向与反向互补(Reverse Complement)的等价性设计:DNA 是双螺旋结构,正着读和反着读具有生物学对称性,模型结构应当尊重这种对称性。
结果。 在基因序列建模上取得了 SOTA,这属于 Transformer 难以触及的领域。
3. 语音与音频:S4 的原点
要解决的问题。 音频是连续波形,采样率通常为 16kHz,也就是每秒 16000 个点。一段 1 分钟的音频,序列长度高达 960,000。
真实应用。 S4 最初就是在原始音频波形生成任务(如 SC09 语音生成)上一战成名的。它直接处理原始波形,省去了传统 ASR(自动语音识别)中提取梅尔频谱(Mel-spectrogram)的步骤,从而能够捕捉极高频的声学细节。
4. 时间序列预测
在股票预测、气象预测、传感器异常检测等领域,数据天然具有时间因果性且序列很长。由 S4 改造而来的时间序列预测模型,以及后续的 Mamba 系列,在精度和推理延迟上普遍优于基于 Informer、Autoformer 的 Transformer 变体;在同一批基准上,TimeMixer 这类多尺度分解的 MLP 模型(它本身并不属于状态空间模型)也取得了领先结果。
二、工程实践指南
如果要在自己的业务代码里把 Transformer 换成 Mamba,下面这些工程细节和超参数设定需要提前了解。
1. 状态维度 $N$ 怎么选
在 Mamba 中,$N$ 决定了模型“脑容量”的大小,选取原则分三档。
$N = 16$ 是 Mamba-1 的官方取值:Mamba-130M 到 2.8B 这一系列模型和论文的默认设置都用它,推理极快、显存极小,适合对延迟要求苛刻的端侧设备(如手机),代价是长程记忆和复杂逻辑能力较弱。
$N = 64 \sim 128$ 是 Mamba-2 的黄金区。改用分块矩阵乘法之后状态维度可以做得更大,每个头的状态维度常取 64 到 128(对应的总状态维度 $P$ 为 128 到 256),它在性能和效率之间取得了最佳平衡。
$N = 256$ 及以上,用于需要极强长程记忆的特殊任务(如 DNA 建模),或者继续把总状态维度 $P$ 往上推。
2. 数值精度与一个隐性坑
在混合精度训练(AMP)中,模型参数通常会被转换为 FP16 或 BF16。但矩阵 $\mathbf{A}$ 必须保持在 FP32 精度。
原因是 $\mathbf{A}$ 控制着状态的衰减,其特征值为负数。在计算 $\bar{\mathbf{A}} = \exp(\Delta \mathbf{A})$ 时,结果本身就是一列很小的正数,如果 $\mathbf{A}$ 的精度不够,这些值在低精度下会被直接压成 0,状态更新随之失真,Loss 会在瞬间爆炸甚至变成 NaN。
工程上的解法是:在官方代码 mamba-ssm 中,强制把参数 $\mathbf{A}$ 保持在 FP32 精度,即使其他参数都是 BF16。如果自己手写 Mamba 层,记得加上 .float() 的强制类型转换。
3. 初始化策略
$\mathbf{A}$ 的初始化必须使用 HiPPO 的近似形式(例如 A = -torch.arange(1, N + 1))。用正态分布随机初始化会让模型在训练的前 1000 步就出现梯度爆炸。
$\Delta$、$\mathbf{B}$、$\mathbf{C}$ 的初始化通常使用均匀分布或较小的正态分布。$\Delta$ 的偏置项在官方实现里被专门设计过:先随机取一个 0.001 到 0.1 之间的目标值,再用逆 softplus 反推出偏置,确保模型一开始的 $\Delta$ 就落在“适度记忆”的小区间里。
4. 开源生态与工具链
目前 SSM 的生态还没有 Transformer(例如 HuggingFace transformers 库)那样开箱即用,存在一定的环境配置门槛。
mamba-ssm 是官方核心库,包含底层的 CUDA 算子(Selective Scan)。它对 CUDA 版本和 PyTorch 版本的要求极其严格,安装时经常报错,建议使用官方提供的 Docker 镜像或 Conda 环境。
causal-conv1d 是官方提供的高效 1D 因果卷积库,也是 Mamba Block 的前置组件。
HuggingFace 集成方面,目前 transformers 库已经原生支持 MambaForCausalLM 和 JambaForCausalLM。如果只是做 NLP 推理,直接调用 HuggingFace 的接口是最省事的做法。
三、当前的局限与挑战
SSM 势头很猛,但客观看来它目前还有三个短板,需要避免陷入“SSM 万能论”。
1. 关联召回任务的短板
这类任务的典型形式是:在长文本中先定义“苹果等于 3,香蕉等于 5”,然后在文本末尾问“苹果加香蕉等于几”。
SSM 的困境在于:尽管 Mamba 有选择性,它的状态 $h_t$ 本质上仍然是在做有损压缩。当序列极长、又需要精确匹配多个离散的 Key-Value 对时,SSM 的召回率依然显著低于拥有完整 KV Cache 的 Transformer。
2. 训练稳定性
在训练百亿参数(10B 以上)规模的纯 SSM 模型时,Loss 曲线偶尔会出现莫名的尖峰(Spikes),甚至出现 NaN。主要原因是递推过程中的误差累积。
工业界的应对办法(例如 Jamba)是引入少量 Attention 层来“锚定”全局信息,这能有效缓解该问题。
3. 生态壁垒
由于底层依赖定制的 CUDA 算子(硬件感知算法),SSM 模型在跨硬件部署时(例如从 NVIDIA GPU 迁移到 AMD GPU 或 NPU)面临巨大的算子重写成本。相比之下,Transformer 的算子已经做到了真正的硬件无关。
一个值得思考的架构问题。 在“关联召回”这类任务上 SSM 弱于 Transformer。如果要设计一个架构,既保留 SSM 处理 100K 长文本时的 $O(1)$ 推理速度,又能解决关联召回问题,可以考虑以下几个方向。
第一,借助外部存储。参考 RAG(检索增强生成)的思路,把精确的 Key-Value 对放到可检索的外部存储里,让 SSM 负责流式压缩和理解,把精确匹配交给检索模块。
第二,采用混合架构。参考 Jamba 的层混合策略,用大部分 SSM 层保证长上下文效率,用少量 Attention 层承担精确检索。这样既保留了 $O(1)$ 的推理主干,又补上了精确回忆的能力。
第三,做分层记忆。让 SSM 的状态负责最近一段窗口的精确记忆,把更早的信息交给外部数据库,并按需要把检索结果重新注入模型。
四、前沿研究方向
把工程落地和上面的局限放在一起看,SSM 接下来的研究重心大致集中在五个方向上。
1. SSM 与 MoE 的结合
现状。 Jamba 已经证明了 SSM 加 MoE 的可行性(52B 总参数、12B 激活参数),但这只是最朴素的层内 MoE。
前沿问题。 第一是路由策略:在 SSM 中,不同时间步的信息密度差异极大(关键词与停用词形成鲜明对比),能否设计一种时间步级别的路由,让重要 token 走更深的专家网络,让无关 token 走最浅的路径。第二是状态共享:多个专家应该共享同一个 SSM 状态 $h_t$,还是每个专家维护独立的状态;前者节省显存,后者增加表达力。第三是规模化:目前最大的纯 SSM MoE 模型还停留在 50B 到 100B 量级,能否扩展到 400B 以上,训练稳定性如何保证。
代表工作。 Jamba(AI21, 2024)、Zamba(Zyphra, 2024)、Falcon-Mamba-TII(2024)。
2. SSM 与超长上下文(1M 以上 token)
现状。 Mamba 理论上支持无限长度的上下文,因为推理显存是 $O(1)$。但在实际中,当上下文超过 1M token 时,SSM 的有损压缩会导致早期信息严重衰减。
前沿问题。 第一是分层记忆:能否设计“短期状态加长期存储”的双层架构,让 SSM 负责最近 10K token 的精确记忆,外部存储负责更早的模糊记忆。第二是自适应压缩率:在序列的不同区段使用不同的衰减率,信息密集的段落用小衰减(精确保留),信息稀疏的段落用大衰减(快速跳过)。第三是与 RAG 的融合:SSM 天然适合做 RAG 中的在线编码器(实时压缩流式输入),而 Transformer 适合做离线检索器(精确匹配 Query 与 Document)。
代表工作。 Ring Attention 与 SSM 的混合、Mamba 的 1M 上下文实验、LongMamba(2025)。
3. SSM 的理论理解
现状。 Mamba-2 的 SSD 理论证明了 SSM 与线性 Attention 的对偶性,但更深层的理论问题仍未解决。
前沿问题。 第一,SSM 能模拟什么计算?已有研究表明,选择性 SSM 可以模拟有限状态自动机(Finite State Automaton),这意味着 Mamba 理论上能够学习正则语言,例如括号匹配和简单语法结构;而 Transformer 能模拟图灵机,理论上更强大。两者的计算能力鸿沟到底有多大,目前还没有定论。第二,为什么 Mamba 在语言建模上接近 Transformer?SSD 理论给出了数学上的等价性,但没有解释为什么在经验上,Mamba 的 perplexity 与同规模 Transformer 相当。这是否暗示自然语言的统计结构恰好适合 SSM 的归纳偏置?第三,状态维度的信息论下界:给定一个序列的熵率(entropy rate),状态维度 $N$ 至少需要多大才能无损压缩?这能否给出 $N$ 的理论最优值?
代表工作。 Merrill 与 Sabharwal 关于 SSM 计算能力的理论分析、SSD 对偶理论。
4. 端侧部署与推理芯片
现状。 SSM 的 $O(1)$ 推理显存和每步 $O(1)$ 的计算量,使它天然适合资源受限的边缘设备,例如手机、IoT 设备、嵌入式系统。
前沿问题。 第一是量化:把 Mamba 的参数从 FP16 量化到 INT4 或 INT8,挑战在于 $\mathbf{A}$ 矩阵的指数运算对精度极其敏感(就是本篇第二节讲过的那个坑)。第二是专用硬件:能否设计专门的 SSM 加速芯片,并行扫描算法的树形结构非常适合 FPGA 或 ASIC 的流水线设计。第三是与 LLM 推理引擎的集成:目前 vLLM、TensorRT-LLM 等主流推理引擎主要优化 Transformer,SSM 的算子(特别是自定义 CUDA kernel)如何与这些引擎兼容。
代表工作。 Mamba 在 Apple Silicon 上的部署实验、Qualcomm 的 SSM 推理优化(2025)。
5. 连续深度模型与 Neural ODE 的融合
现状。 SSM 的连续时间方程 $h’(t) = \mathbf{A}h(t) + \mathbf{B}x(t)$ 本质上就是一个线性 Neural ODE(神经常微分方程)。
前沿问题。 第一,非线性 Neural ODE:如果把 $\mathbf{A}h(t)$ 替换为非线性函数 $f_\theta(h(t), x(t))$,是否能获得更强的表达力?代价是会失去卷积与并行扫描的加速能力。第二,自适应时间步长:在 Neural ODE 中,ODE 求解器可以自适应地调整步长,这与 Mamba 的选择性 $\Delta_t$ 有异曲同工之妙,能否把两者统一起来?第三,随机微分方程(SDE)扩展:在状态方程中加入噪声项 $dW(t)$,使 SSM 具备不确定性建模能力,这在金融时间序列和医疗信号中尤其有价值。
五、2025 至 2026 年的进展
下面这份时间线记录了 SSM 从学术研究走向工业生态的轨迹。
- 2025 年第二季度: NVIDIA 在 TensorRT-LLM 中原生支持 Mamba 推理,SSM 正式进入主流推理生态。
- 2025 年第三季度: Jamba-2 发布(AI21),上下文窗口扩展到 1M,MoE 专家数扩展到 64。
- 2025 年第四季度: Mamba-3 预印本发布,三项改进分别是指数梯形离散化、复数状态转移与 MIMO 结构。
- 2025 年第四季度: “SSM 的计算能力”理论论文被 NeurIPS 接收,严格证明了选择性 SSM 等价于加权有限自动机。
- 2026 年第一季度: Meta 发布混合架构模型(SSM 加 Attention 加 MoE),工业界全面拥抱混合架构。
- 2026 年第二季度: 首个纯 SSM 的 100B 以上模型开源,证明了纯 SSM 在超大规模下的训练可行性。
六、小结
本篇的内容可以归纳为下面几条。
- 跨模态应用: 视觉领域靠多向扫描(VMamba 的交叉扫描)解决 2D 无因果方向的矛盾;生物领域靠极长序列优势(Hyena DNA、Caduceus);音频领域靠直接处理原始波形(S4 的起点);时间序列预测上基于 SSM 的模型在精度与延迟上都占优。
- 核心超参数: Mamba-1 的官方状态维度是 16;Mamba-2 把每个头的状态维度提到 64 到 128(对应的总状态维度为 128 到 256),需要极强记忆的任务还可以更大。
- 工程避坑: 矩阵 $\mathbf{A}$ 必须保持 FP32 精度;$\mathbf{A}$ 要用 HiPPO 近似初始化;训练与推理都严格依赖官方 CUDA 算子来保证速度。
- 当前局限: 关联召回能力弱于 Transformer;超大模型训练容易出现 Loss 尖峰;跨硬件部署存在算子重写成本。
- 前沿方向: SSM 与 MoE 的结合(时间步级路由、专家间状态共享、规模化)、1M 以上的超长上下文(分层记忆、自适应压缩率、与 RAG 融合)、理论理解(计算能力边界、状态维度的信息论下界)、端侧部署与推理芯片(量化、专用硬件、推理引擎集成)、与 Neural ODE 的融合(非线性状态方程、自适应步长、SDE 扩展)。