FRONTIER / RESEARCH TO PRACTICE选择性状态空间:Mamba 与序列记忆
先修:线性代数、递推与注意力。比较压缩状态和显式 token 检索。
学习指南与本课目录
LEARNING CONTRACT理解 → 实现 → 研究
目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。
- 理解层:写明假设、形状/单位和一个反例。
- 实现层:复算数值例子并检查边界。
- 研究层:在匹配预算下比较一个替代方法。
机制与假设
Mamba 让状态空间更新的部分参数依赖输入,从而选择保留或遗忘信息。递推状态汇总历史,而非保存全部 token 的 key/value。这改变内存与执行权衡,却不能证明它在检索或推理上普遍更优。下方标量递推仅示意思想,省略真实架构的离散化、投影与硬件感知扫描。应区分顺序解码与并行训练,并匹配精度、batch 和序列长度。
手算例子
,,0,3],,0.5,0.1], 时,状态为 [2,1,3.1]。最后较小的保留系数压低过去历史。恒定 时,初始信号十步后保留约 0.3487; 时仅约 0.000977。因此有限压缩状态带来信息保留问题,不只是速度优势。
实现练习
实现标量递推,在标记后加入干扰项,扫描保留系数、干扰数量和状态维度。真实模型研究应匹配参数/数据预算,比较延迟回忆和关联检索,分别记录解码内存、吞吐和准确率。不能将标量递推结果当成训练后 Mamba benchmark。
交付代码、固定种子、原始结果与一个反例。这里是实验规范,不是已运行的 GPU benchmark。
解码状态恒定是否意味着完美长上下文记忆?
不是。固定状态压缩历史,容量、动力学和训练决定哪些信息保留。应控制距离和干扰做检索测试,不能从渐近复杂度推断能力。
arXiv ↗ · PDF ↗原创教学例子,来源核对于 2026 年 10 月。这些是与工程相关的基础机制,并非覆盖所有最新模型。
关联先修与后续课程 →
MATHEMATICAL REVIEW · 2026-10-26假设、参考实现与验收
标量递推用于展示状态压缩,不是完整选择性 SSM。状态大小及数值离散化重要;线性递推不等价于无限制注意力检索。
已复核公式条件、单位及算例。实现隔离一个数值机制,不训练完整策略,也不控制真实硬件。
机制图:从上到下跟踪每次变换。运行前:预测一个边界情况
脉冲记忆几何衰减; 保留,|a|>1 放大。
提示:隔离假设
固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。
最小可运行算例
将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node selective-state-spaces.mjs. 无需第三方运行依赖。
const solve=()=>{
const a=.5,b=1,input=[1,0,0];let state=0;
return input.map(x=>(state=a*state+b*x));
};
const actual=solve();
const expected=[1,0.5,0.25];
if(JSON.stringify(actual)===JSON.stringify(expected)){console.log('PASS',actual)}else{
const a=[actual].flat(), b=[expected].flat();
if(a.length!==b.length||a.some((v,i)=>!Number.isFinite(v)||Math.abs(v-b[i])>1e-10))throw Error('Numerical mismatch');
console.log('PASS within 1e-10',actual);
}
参考输出——先预测再展开
[
1,
0.5,
0.25
]
测试与迁移
脉冲记忆几何衰减; 保留,|a|>1 放大。
在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。
下载完整代码包(.tar.gz) · 完整参考代码与回归检查预测、检验与证据记录
展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。
打开记录/导出/清除 →数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围