【LLM】从零开始学大语言模型 | SSM篇 | 3 | S4 Model 简洁

S4 Model 简洁:一个 SSM Block 内部到底在做什么 上一篇文章介绍了 SSM 的数学基础和典型 Block 结构。本文将聚焦于 S4(Structured State Space Sequence Model)这个 SSM 家族中第一个真正取得工程成功的模型,逐个拆解 S4 Block 中每个组件的任务、输入、输出和设计目的。 本文的讲解方式类似讲解 Transformer Block:先讲整体架构,再逐个组件说明"它是什么、它做什么、它为什么存在",不涉及数学优化和工程优化的细节。 一、S4 的整体定位 S4 于 2021 年提出,是第一个在长序列建模任务上全面超越 Transformer 的 SSM 模型。它在 Long Range Arena(LRA)基准上取得了全面领先的成绩——按原始 LRA 六项任务的算术平均来看,S4 约为 81.84%,而当时的 Transformer 变体约为 45%。 数据注记:有的总结材料里会把 S4 在 LRA 上的平均准确率写成约 86.1%。这个数字和上文按六项明细算出的 81.84% 并不完全吻合,可能来源于不同的报告版本、是否包含特定任务变体、加权平均还是算术平均等差异。读者如果在写作或复习时引用这一数据,建议优先以逐任务明细为准,并注意区分“某一版本汇总的平均值”和“从明细算出的算术平均”。 S4 的核心贡献不在于改变了 SSM 的基本方程,而在于解决了两个实际问题: 如何初始化矩阵 $\mathbf{A}$: 通过 HiPPO 理论推导出理论上最优的 $\mathbf{A}$ 矩阵,使 SSM 从一开始就具备长程记忆能力。 如何高效计算: 通过 DPLR(对角加低秩)结构和 Z 变换,将卷积核计算的复杂度从 $O(LN^2)$ 压缩到 $O((L+N)\log(L+N))$。 但这些优化细节将在后续的优化篇中讲解。本文先专注于 S4 Block 的架构本身。 ...

September 6, 2026 · 4 min · 743 words · c.w.

【LLM】从零开始学大语言模型 | SSM篇 | 2 | SSM入门

SSM 入门:从连续微分方程到离散递推 上一篇文章我们从宏观角度介绍了 SSM 的定位和优势。本文将进入 SSM 的数学基础:连续时间的线性状态空间方程如何定义、如何离散化为计算机可执行的递推公式、离散化后如何获得"循环"和"卷积"两种等价视角,以及一个完整的 SSM Block 由哪些组件构成。 本文的目标是让读者建立起对 SSM 的初步知识体系,不涉及后续的数学优化和工程优化。 一、连续时间的 SSM 方程 1. 两个核心方程 在连续时间 $t$ 下,一个线性状态空间模型由两个方程定义。 状态方程: $$h’(t) = \mathbf{A}h(t) + \mathbf{B}x(t)$$ 其中 $h’(t)$ 是 $h(t)$ 对时间 $t$ 的导数,即 $\frac{dh(t)}{dt}$。这个方程描述的是:在当前时刻,内部记忆 $h(t)$ 的变化率由两部分决定——自身当前状态 $\mathbf{A}h(t)$ 和新输入 $\mathbf{B}x(t)$。 观测方程: $$y(t) = \mathbf{C}h(t) + \mathbf{D}x(t)$$ 这个方程描述的是:如何从当前的内部记忆 $h(t)$ 中提取出我们关心的输出 $y(t)$。 2. 各变量的含义 $x(t) \in \mathbb{R}^d$:当前时刻的输入信号。在 NLP 中,这是某个 token 的 Embedding 向量。 $h(t) \in \mathbb{R}^N$:当前时刻的隐藏状态,即模型对历史信息的"记忆快照"。 $y(t) \in \mathbb{R}^d$:当前时刻的输出信号,将传递给下一层或用于最终预测。 $\mathbf{A} \in \mathbb{R}^{N \times N}$:状态转移矩阵。它控制记忆如何随时间自然演化。如果 $\mathbf{A}$ 的特征值为负,记忆会随时间衰减(遗忘旧信息);如果为正,记忆会指数增长(数值爆炸)。 $\mathbf{B} \in \mathbb{R}^{N \times d}$:输入投影矩阵。它控制新输入以多大的强度和方式写入状态。可以理解为一个"写入阀门"。 $\mathbf{C} \in \mathbb{R}^{d \times N}$:输出投影矩阵。它控制如何从状态中提取输出。可以理解为一个"读取探针"。 $\mathbf{D} \in \mathbb{R}^{d \times d}$:直接穿透矩阵,代表输入绕过记忆直接到达输出的路径。在实际的深度学习 SSM 中,$\mathbf{D}$ 通常被设为 0 或极小常数,因为它不经过记忆,对序列建模没有实质贡献。 三个核心参数的分工可以概括为:$\mathbf{B}$ 负责写入,$\mathbf{A}$ 负责维持和遗忘,$\mathbf{C}$ 负责读出。 ...

September 6, 2026 · 4 min · 752 words · c.w.

【LLM】从零开始学大语言模型 | SSM篇 | 1 | SSM介绍

状态空间模型(SSM):从 RNN 与 Transformer 的困境出发 在序列建模的发展历程中,RNN 和 Transformer 是两座绕不过去的丰碑。RNN 以递推的方式逐步处理序列,结构简洁但受困于串行计算和长程依赖问题;Transformer 用自注意力机制彻底解决了长程依赖和并行化训练的难题,却引入了序列长度平方级的计算和显存开销。 这两种架构各有不可忽视的缺陷。有没有一种可能,让序列模型同时拥有 RNN 推理时的高效和 Transformer 训练时的并行? 这就是 SSM(State Space Model,状态空间模型)试图回答的问题。本文将从 RNN 和 Transformer 的痛点出发,解释 SSM 是什么、它为什么能做到"鱼与熊掌兼得",以及它从 2020 年到 2024 年的演进路线。 一、RNN 与 Transformer 的痛点 1. RNN 的核心问题 RNN(包括 LSTM、GRU)的核心是隐藏状态的递推更新:$h_t = f(h_{t-1}, x_t)$。这种递推结构带来了两个根本性问题。 第一,训练无法并行。 由于 $h_t$ 强依赖于 $h_{t-1}$,序列中不同时间步的计算必须严格串行进行。在 GPU 这种为大规模矩阵并行运算设计的硬件上,RNN 的训练效率极低。假设序列长度为 $L$,RNN 的训练需要 $L$ 个串行时间步,无法像矩阵乘法那样在 GPU 上一次算完。 第二,长程依赖衰减。 即使有 LSTM 的门控机制缓解梯度消失问题,当序列长度达到数千甚至数万时,信息从第一个 token 传递到最后一个 token 仍然需要经过漫长的递推链路,每一次传递都会有信息损耗。就像传话游戏,传的人越多,最后听到的内容和最初说的偏差越大。 2. Transformer 的核心问题 Transformer 用自注意力机制解决了 RNN 的两个痛点:通过计算所有 token 之间的两两相关性,实现了全局信息的直接交互和完全并行的训练。但这个解决方案引入了新的代价。 ...

September 6, 2026 · 3 min · 477 words · c.w.

【SSM】状态空间模型 | 1 | SSM入门

为什么需要 SSM?——状态空间模型第一课:从 RNN 与 Transformer 的痛点,到状态空间模型的数学骨架 如果你已经了解了 RNN 和 Transformer 的基本原理,那么这篇文章要回答的核心问题只有一个:在 RNN 和 Transformer 已经统治序列建模的今天,我们为什么还需要一种新的架构——状态空间模型(State Space Model, SSM)? 我们会先看清两位"前辈"各自的结构性缺陷,然后一步步揭开 SSM 的数学面纱,把它的骨架、直觉、与 RNN 的对应关系彻底讲清楚。 一、课程导论:为什么需要 SSM? 1. RNN 的痛点:传话游戏的困境 RNN(包括 LSTM/GRU)的核心是隐藏状态的逐步递推:$h_t = f(h_{t-1}, x_t)$。这个看似简单的结构有两个难以克服的缺陷。 计算上的痛:串行诅咒。 因为 $h_t$ 强依赖于 $h_{t-1}$,你无法并行计算序列中不同时间步的状态——必须先算出 $t-1$ 时刻,才能算 $t$ 时刻。GPU 是为大规模并行矩阵乘法而生的硬件,RNN 的这种串行依赖让硬件的并行能力无处施展,训练效率极低。 记忆上的痛:长程依赖。 就像玩"传话游戏",信息每传递一次就会有损耗。即使有 LSTM 的门控机制,当序列长度达到几千甚至上万时,梯度消失或爆炸问题依然会让模型"忘记"开头的信息。 2. Transformer 的痛点:全班互相对答案的代价 Transformer 用自注意力机制(Self-Attention)彻底解决了长程依赖和并行计算问题,代价是计算所有 token 之间的两两相关性 $QK^\top$。注意力机制的计算复杂度和显存占用是序列长度 $L$ 的平方级 $O(L^2)$。 直觉上感受一下这个平方增长的威力:序列长度为 10 时,需要计算 100 次关联;长度变成 1000 时,计算量直接暴增到 1,000,000 次。当上下文窗口扩展到 128K 甚至 1M 时,显存会溢出(OOM),算力成本极其高昂。 ...

September 3, 2026 · 4 min · 751 words · c.w.