一句话定义:状态空间模型(State Space Model,SSM)是一类"带着一个不断更新的内部状态往前走"的序列建模方法;Mamba 是其中让状态更新规则随输入内容变化的代表工作。
它是怎么工作的
SSM 的数学形式继承自控制论,核心就两行:先更新状态,再读出输出。
- 更新:
h_t = A · h_{t-1} + B · x_t - 输出:
y_t = C · h_t
x_t 是当前读到的这一小段输入,h 是状态(一个长度固定的向量),y_t 是这一步的输出。注意:每一步的运算量只取决于状态大小,和"前面已经读过多少字"无关。
打个比方。Transformer 的注意力(Attention)像一场所有人互相提问的会议:每个位置都要和其他所有位置对一遍,人越多,两两配对的次数涨得越快。SSM 像一位带着笔记本的记录员:每听一句,就往同一本笔记上更新几笔,读到第一万句时翻的还是那本笔记,不会回头把前 9999 句重读一遍。
Mamba 改了什么
早期 SSM 里的 A、B、C 是固定参数,不随输入变化,所以整条序列可以写成一个卷积,训练时能并行算——但它"无差别记忆",没法判断哪句重要。
Mamba 的关键改动是让 B、C 以及步长 Δ 由当前输入实时算出来。文本里的"嗯、啊、然后"可以快速略过,遇到关键信息就多记几笔。这被称作选择性机制。代价是固定卷积核的并行写法不再成立,工程上改用分块加并行扫描的算法把长序列拆开算。这条路线的训练吞吐和实现强相关,具体指标以官方实现与实测为准。
和注意力的取舍
| 维度 | Transformer(注意力) | SSM / Mamba |
|---|---|---|
| 信息传递 | 任意两个位置直接互看 | 全靠固定大小的状态中转 |
| 计算量(长度 n) | 注意力部分随 n² 增长 | 随 n 线性增长 |
| 推理显存 | 随上下文增长(KV 缓存) | 基本恒定,只存状态 |
| 训练并行 | 天然强 | 可以,但依赖扫描实现 |
| 强项 | 精确检索、远距离精确对齐 | 超长序列、流式输入、省内存 |
| 软肋 | 长上下文成本高 | 状态容量有限,细节会被压掉 |
关键区别在于"记忆容量"。状态大小是固定的,把整段历史压进去必然有损。凡是需要逐字抄回原文、精确定位某一句话的任务,纯 SSM 容易漏细节;注意力天然具备全局寻址能力。所以现实中常见的是混合架构:多数层用 SSM 处理长程背景,少数层保留注意力做精确检索。
对从业者和普通人的意义
如果你在做超长文档、流式语音、端侧或边缘设备上的推理,SSM 这类架构的吸引力很直接:显存不随上下文持续膨胀,每生成一个词的成本基本恒定。如果你只是日常使用聊天助手,底层是不是 Mamba 通常不影响你的用法——你感受到的只是"能读多长的材料、回复有多快"。
理解它的最好方式,不是记住公式,而是记住那个比喻:一边是所有人互相核对,一边是记录员带着一本容量固定的笔记本往前走。前者看得清,后者走得远。
