跳转至

第 13 章 状态空间模型

我并不建议深入探讨本章的技术,因为这里提到了另一种架构,并且在现代大模型中落地地位并不高,但是作为一种技术扩展,可以简单了解一下

上一章我们从 softmax 注意力出发,去掉非线性、换求和次序,得到固定大小的矩阵状态。还有一条线不从注意力改起:直接写离散状态方程,按 token 更新隐状态。这就是状态空间模型(SSM)一路,Mamba 是其选择性版本的代表。

它和线性注意力推理形态接近——都是固定(或缓增长)状态、近线性计算——但算子出身、参数化和常用 kernel 不同。Jamba 一类模型在混合栈里用过 Mamba 层

13.1 状态方程

一阶写法:

\[ h_t=A_t h_{t-1}+B_t x_t,\qquad y_t=C_t h_t. \]

\(h_t\) 是隐状态,\(x_t\) 是当前输入。\(A\) 管旧状态留多少,\(B\) 管新输入写多少,\(C\) 管读出。序列长度不进入状态形状;每步只做状态更新。

早期 SSM 里 \(A,B,C\) 不看内容,或只做与内容无关的时间衰减。语言建模上这不够:噪声和硬约束按同一种规则衰减。

13.2 选择性:让 \(A,B,C\) 看输入

Mamba 把 \(A_t,B_t,C_t\)(或等价参数)做成当前输入的函数。模型可以学「这句多留」「这句快忘」。效果上台阶,训练和推理通常依赖专门的 scan / CUDA 算子。

训练期能并行,靠的是这类仿射更新满足结合律,可用 parallel scan,而不是逐步解释器循环。这一点和第 12 章线性注意力的分块并行是同一类工程条件。

思想与 LSTM 门控同源:差别主要在张量形状是否贴合现代 GPU,以及能否和注意力层编进同一座 decoder 栈。

13.3 和线性注意力怎么对读

第 12 章线性注意力 本章 SSM
出发点 改 \(q^\top k\)、换求和次序 写 \(h=Ah+Bx\)
典型产品形态 GDN / DeltaNet Mamba / Mamba-2
推理状态 固定大小矩阵 / 向量 固定大小隐状态
旗舰主栈(本书后文) Qwen3.8 用 GDN Jamba 用过 Mamba;不是 Qwen 主线

Mamba-2 等工作讨论过与线性注意力的对偶,实现上越来越像同一族「状态 + 选择性更新 + 可扫描训练」。读配置时先认模块名:门控 delta / GDN 回到第 12 章;mamba、SSM 层回到本章。

13.4 同样的天花板

状态再选择性,容量仍有上限。逐字复现远处细节时,纯 SSM 栈和纯线性栈一样,弱于保留每 token KV 的注意力。Jamba 的做法是少数注意力层 + 多数 Mamba 层,和第 14 章「线性 + 精确注意力」混合是同一类结构,只是线性槽位换成了 SSM。


核心问答

Q1:SSM 还是注意力吗? 不是。没有按位置的 \(QK^\top\) softmax。它是状态更新。

Q2:为什么和线性注意力分开写? 旗舰主栈当前多见线性注意力 / GDN;SSM 是并行谱系。混在一章里容易读成「都是注意力的变体」。

Q3:学完第 12 章还要看这章吗? 读到 Mamba / Jamba / 纯 SSM 论文时要。只跟 Qwen3.8 的 GDN 栈时,第 12 章加第 14 章的混合即可,本章当对照。