# SANATAN：根标签门控的角度核、精确递推与修订后的实验证据

**论文**：*SANATAN: Root-Parity Gated Angular Attention with an Exact Constant-State Recurrent Form*  
**作者**：Bhargav Patel，Independent Researcher  
**版本**：GitHub 修订稿 `sanatan_v2.pdf`，13 页；提交 `1a52793b8e121cba29cc00ca0dc7edc37c31461a`；研读日期：2026-10-20  
**原文**：[固定版本论文](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/paper/sanatan_v2.pdf) · [本地 PDF](../source/paper.pdf) · [代码仓库](https://github.com/bhargavpatel431997/sanatan-attention/tree/1a52793b8e121cba29cc00ca0dc7edc37c31461a)  
**配套**：[英文汇报 PDF](slides.en.pdf) · [可编辑 TeX](slides.en.tex)  
**版本说明**：仓库未提供 arXiv 编号；此处的 v2 是文件版本，不是 arXiv v2。原图归 Bhargav Patel 所有，按仓库 [MIT 许可](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/LICENSE) 使用；重绘图和教学图另行标明。

## 论文总览

SANATAN 在角度相似度里加入逐维根标签门控。每个 query/key 分量先变成角度，再得到接近 ±1 的软根标签；两者在某一维的标签相同，就保留这一维的角度相似度，标签相反则强烈衰减。核心核函数是

$$
\kappa(q,k)=\sum_{a=1}^{d}
(1+r_{q,a}r_{k,a})
\bigl(1+\cos(\theta^{\mathrm{rot}}_{q,a}-\theta^{\mathrm{rot}}_{k,a})\bigr).
$$

这个核具有显式的 $6d$ 维特征映射，因此在指数 $p=1$ 时，归一化注意力可以由固定大小的矩阵 $S_t$ 和向量 $z_t$ 精确表示。真正的新设计是核中的逐维交互门，而“特征内积可以改写为线性注意力状态”沿用的是线性注意力的基本代数。

修订稿报告：先用 $p=2$ 训练 10B tokens，再以较低学习率适配 $p=1$ 约 0.63B tokens，得到 held-out loss 3.951，接近原 $p=2$ 模型的 3.966；12 层、12 头、每头 64 维时，float32 的递推状态约 14.4 MB。直接把未经适配的 $p=2$ 模型改用 $p=1$ 读出，loss 则升到约 9.0。论文的强参考是 GLA：报告 loss 3.348，且训练吞吐更高。（§§3.5、4.4、5.2，PDF pp.5–7）

阅读这份仓库时，需要保留一个实质区分：**核分解和 $p=1$ 递推的代数成立，但公开实验材料尚未完整对齐修订稿的最终陈述。** 特别是递推 notebook 的最后输出、GLA 的参数配置，以及三通道消融中的额外分数平移，都会影响对实证结果的判断。下文在相应结果旁解释这些差异，而不把论文报告值当作已由公开制品完整复现的结果。

## 结构地图

PDF 页码从 1 开始，与正文印刷页码一致。

| 原文章节 | 作用 | 证据位置 |
| --- | --- | --- |
| 1 Introduction | 从 KV 缓存增长引出交互门控 | pp.1–2 |
| 2 From $i^2=-1$ to Root-Parity Labels on the Torus | 矩阵根、环面标签、可学习锚点 | pp.2–3；图 1，式 (1) |
| 3 Method | 角度生成、位置旋转、六/四通道、幂次与递推 | pp.3–5；式 (2)–(9) |
| 4 Analysis | 标签空间、门控统计、复杂度、内存与延迟 | p.6；定理 2，命题 3，§4.4 表 |
| 5 Experiments | 共同验证集、主要比较、softmax 缺口与消融 | pp.6–8；表 1–2 |
| 6 Related Work | 与线性注意力、状态门控、旋转核的关系 | pp.8–9 |
| 7 Conclusion, Limitations, and Future Work | 结论、位置限制与机制迁移 | p.9 |
| A Derivation of the Root Parity Score Decomposition | 展开核、非负性和相对位置推导 | pp.11–12；式 (10)–(14) |
| B Detailed Future Directions | 谐波、质数频率、可学习分辨率和门控迁移 | p.12 |
| C Changelog from the NeurIPS 2026 Submission | 撤回结果和十项实质修订 | pp.12–13 |

## 一：动机——给压缩记忆增加逐维选择性

标准自回归 softmax attention 保存历史 key/value。每一步生成都要读取随上下文长度 $n$ 增长的缓存：每头 attention 部分的计算和缓存均为 $O(nd)$。把完整序列训练的 $O(n^2d)$ 误写成单步解码成本，会夸大替换 attention 的收益；修订稿已修正这一点。

线性注意力用特征映射把历史汇入矩阵状态，代价是许多 token 共享同一个压缩表示。SANATAN 的设计想法是：在共享状态里，对 query 与 key 的不同维度施加接近二值的兼容性约束，让某些维度几乎不发生交互。

这里的门控作用于**读写地址的配对核**。GLA 一类方法的门控则控制**历史状态的保留和衰减**。SANATAN 的基本更新仍然是纯加法，没有选择性遗忘或 Delta 误差修正。这解释了作者为什么把“将根门控移植到更强的状态更新机制中”作为后续方向。（§§1、6–7，PDF pp.1–2、8–9）

## 二：方法——从软根标签到固定状态

### 2.1 两个矩阵根提供了什么

在二维实正交矩阵里，

$$
i_+=\begin{pmatrix}0&-1\\1&0\end{pmatrix},
\qquad
i_-=\begin{pmatrix}0&1\\-1&0\end{pmatrix}
$$

都满足 $i_\pm^2=-I$，分别是正负 $\pi/2$ 旋转。“只有两个”需要正交限制；一般二维实矩阵中，满足 $X^2=-I$ 的解是一个连续族。

作者考虑

$$
S(\theta)=\cos\theta\,i_++\sin\theta\,i_-
=(\cos\theta-\sin\theta)i_+.
$$

因此 $S(\theta)^2=-(\cos\theta-\sin\theta)^2I$，它通常不再是 $-I$ 的平方根。实际使用的是系数的符号：它标记当前角度更偏向哪一种方向。代码最终只计算实数的三角函数和双曲正切，不需要复数矩阵运算。

每一维都有角度和根标签，$d$ 个角度构成环面 $\mathbb T^d$，$d$ 个二值标签有 $2^d$ 种组合。这是标签组合数；存储和检索仍由有限维核决定。（§§2.1–2.2，PDF pp.2–3）

### 2.2 完整数据流与符号

| 符号 | 形状或范围 | 含义 |
| --- | --- | --- |
| $x_t$ | $\mathbb R^D$ | 当前层 token 表示 |
| $q_t,k_t,v_t$ | 每头各 $\mathbb R^d$ | query、key、value；论文取 $d_v=d$ |
| $\theta_q,\theta_k$ | $(-\pi,\pi)^d$ | 内容生成的角度 |
| $\omega,\lambda$ | 每头各 $d$ 个参数/频率 | 根边界锚点、时间旋转频率 |
| $r_q,r_k$ | $(-1,1)^d$ | 软根标签 |
| $\Phi(q),\Phi(k)$ | $\mathbb R^{6d}$ | 六通道核特征 |
| $S_t,z_t$ | $\mathbb R^{6d\times d}$、$\mathbb R^{6d}$ | 值加权记忆和归一化记忆 |
| $p$ | 实验取 $1,2,4$ | 分数锐化指数 |

首先投影并按头拆分：

$$
q=\frac{xW_q}{\sqrt d},\quad
k=\frac{xW_k}{\sqrt d},\quad
v=xW_v.
$$

然后用压缩映射生成角度：

$$
\phi(u)=\frac{\pi u}{1+|u|},\qquad
\theta_q=\phi(q),\quad\theta_k=\phi(k).
$$

大幅值被压到接近 $\pm\pi$，原点附近近似线性。该映射是 $C^1$，但不是无限阶光滑函数。

软根由**旋转前的内容角度**计算：

$$
r=\tanh\!\left[
\gamma\bigl(\cos(\theta+\omega)-\sin(\theta+\omega)\bigr)
\right],\qquad \gamma=10.
$$

根边界满足 $\theta=\pi/4-\omega\pmod{\pi}$。$\omega$ 初始化为 $\pi/4$，此时系数为 $-\sqrt2\sin\theta$；在 $(-\pi,\pi)$ 内，根的符号与非零 $\theta$ 的符号相反。正负标签整体交换不改变 $r_qr_k$，所以这一方向约定不改变核。

接着加入时间旋转：

$$
\theta^{\mathrm{rot}}_t=\theta_t+t\lambda,\qquad
\lambda=0.01\tanh(\lambda_{\mathrm{raw}}).
$$

相似度中的差值因而含有 $(t-j)\lambda$。需要共享同一频率才能得到这一相对位置形式。**根标签不随这次显式时间旋转重算**，这是代码数据流中的关键顺序。

实验模型还把 learned absolute positional embedding 加到 token embedding 上，其表长为 2048。因此，“旋转项只依赖相对位置”描述的是这一核项，而不是整个已训练模型具有纯相对位置结构；固定 attention 状态也没有解除绝对位置表的长度限制。（§§3.1–3.2，PDF pp.3–4；[原始实现](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/experiments/original_submission/sanatan_training.py#L164)）

### 2.3 六通道：标签兼容性乘以角度相似度

每一维的特征块为

$$
\Phi_a(x)=
\begin{bmatrix}
1 & \cos\theta^{\mathrm{rot}}_a & \sin\theta^{\mathrm{rot}}_a &
r_a & r_a\cos\theta^{\mathrm{rot}}_a & r_a\sin\theta^{\mathrm{rot}}_a
\end{bmatrix}^{\!\top}.
$$

把所有维拼接得到 $\mathbb R^{6d}$ 的特征。内积展开为

$$
\begin{aligned}
\Phi_a(q)^\top\Phi_a(k)
&=1+\cos\Delta\theta_a+r_{q,a}r_{k,a}
 +r_{q,a}r_{k,a}\cos\Delta\theta_a\\
&=(1+r_{q,a}r_{k,a})(1+\cos\Delta\theta_a).
\end{aligned}
$$

这是显式特征映射的精确恒等式。六个通道可理解成二通道标签特征 $[1,r]$ 与三通道角度特征 $[1,\cos\theta,\sin\theta]$ 的张量积，再对原始维度求和。

硬根同号时，门为 2；异号时，门为 0。软根时，门在实数数学中介于 0 和 2 之间，错配会泄漏。两项均非负，所以六通道总分也非负，且不超过 $4d$。特征坐标本身可以有负值，这不影响其内积核非负。

![教学图：同根、异根与软根泄漏](figures/gate-teaching.png)

教学图由式 (7) 绘制；横轴为旋转后相位差，纵轴为单维分数。蓝线是同号硬根，橙线是异号硬根；虚线使用示例软根 $\pm0.98$，用于说明泄漏，并非实验拟合。（§3.3、附录 A，PDF pp.4、11）

### 2.4 为什么 $2^d$ 不是无干扰记忆容量

![原图 1：逐维根标签的匹配](figures/fig-01.png)

原图 1，PDF p.3。左侧展示单个圆的两种根标签；中间比较三维 token 的标签；右侧累加各维分数。图中 A 为 $(+,-,+)$，B 为 $(+,+,+)$：第二维关闭，但第一、三维仍有贡献，总分为 7.75，而不是零。

一般地，若硬标签有 $m$ 位相同，核分数的范围是 $[0,4m]$。完全不同的标签向量并不意味着所有位都相反，因而不意味着核为零。对固定特征矩阵，未施加因果掩码的 Gram 矩阵秩还受 $6d$ 限制；$2^d$ 不能据此解释为 $2^d$ 个独立可读写槽位。

作者在修订稿中已主动撤回“无干扰扇区”的旧说法，改成逐维门控。这个修订决定了如何理解论文的机制价值。（§4.1、附录 C 第 5 项，PDF pp.6、12）

### 2.5 四通道为什么是另一种核

四通道删去独立的 $\cos\theta,\sin\theta$，保留

$$
\Phi_4=[1,r,r\cos\theta,r\sin\theta].
$$

单维内积变成

$$
1+r_qr_k(1+\cos\Delta\theta).
$$

匹配硬根给出 $2+\cos\Delta\theta\in[1,3]$；错配硬根给出 $-\cos\Delta\theta\in[-1,1]$。它既可能为负，也可能在错配时为正。因此四通道不仅减少三分之一特征，还改变了核的语义。

实现对四通道**总分**执行 $\max(s,0)$ 再取幂。这个裁剪也是 pairwise 非线性；不能把六通道的 $p=1$ 递推直接套到带裁剪的四通道 attention 上。（§3.3，PDF p.5）

### 2.6 幂次锐化：训练的核必须与部署的核一致

论文将总分 $s_{t,j}=\Phi(q_t)^\top\Phi(k_j)$ 变成

$$
a_{t,j}=
\frac{(s_{t,j}/4d)^p}
{\sum_{\ell\le t}(s_{t,\ell}/4d)^p+\epsilon}.
$$

正幂保留零分：一个总分为零的 key 不会得到正的未归一化权重。指数函数会把零变成 1。这里需要区分“某一维关闭”和“整个 token 对的总分为零”；softmax 或幂次实际作用于跨维累加后的总分。

当 $p>1$ 时，高分相对低分被进一步放大，例如 0.8 与 0.4 的未归一化权重比从 $2:1$ 变成 $4:1$ 或 $16:1$。代价是原有 $6d$ 维特征不再直接表示锐化后的核。

对于正整数 $p$，仍有

$$
(\Phi(q)^\top\Phi(k))^p
=\langle\Phi(q)^{\otimes p},\Phi(k)^{\otimes p}\rangle.
$$

所以从数学上说，**固定 $p,d$ 的高阶核也可以有不随序列长度增长的状态**；问题在于直接张量展开的特征数为 $(6d)^p$，存值状态约为 $O((6d)^p d)$，远大于这里的 $O(d^2)$ 六通道状态。对称张量可以减少冗余，但不等于论文部署的便宜递推。

因此应准确表述为：本文实现并评估的 **$6d^2+6d$ 状态递推只对应 $p=1$ 六通道核**，而不是所有 $p>1$ 核都不存在固定状态表示。（§§3.4–3.5，PDF p.5；张量解释为本次教学展开）

### 2.7 精确递推的推导与实现细节

在 $p=1$、六通道情形，交换求和顺序：

$$
\sum_{j\le t}
\bigl(\Phi(q_t)^\top\Phi(k_j)\bigr)v_j^\top
=
\Phi(q_t)^\top
\underbrace{\sum_{j\le t}\Phi(k_j)v_j^\top}_{S_t}.
$$

同理，

$$
z_t=\sum_{j\le t}\Phi(k_j),\qquad
\sum_{j\le t}s_{t,j}=\Phi(q_t)^\top z_t.
$$

于是从零状态开始逐 token 更新：

$$
S_t=S_{t-1}+\Phi(k_t)v_t^\top,\quad
z_t=z_{t-1}+\Phi(k_t),\quad
o_t=\frac{\Phi(q_t)^\top S_t}{\Phi(q_t)^\top z_t+\epsilon_{\mathrm{raw}}}.
$$

更新包含当前 token，因此对应 $j\le t$ 的因果掩码。若先读后写，就会变成不同的掩码语义。

**归一化常数也要对应。** 若并行实现先算 $s/c$ 再在分母加 $\epsilon$，则原始分数单位下应使用 $\epsilon_{\mathrm{raw}}=c\epsilon$。作者并行代码取 $c=4d+10^{-6}$，递推 notebook 取近似值 $4d\times10^{-6}$；严格代数对应时应保留同一个 $c$。式 (8) 与式 (9) 复用 $\epsilon$ 符号，容易掩盖这一重新标度。

每头状态共有 $6d^2+6d$ 个浮点数。一般 value 维数为 $d_v$ 时是 $6dd_v+6d$。这里的“固定”指相对于历史 token 数固定；状态随层数、头数、value 维度和并发序列数增长。

全模型递推还要求每层使用同一组权重、位置和数值精度，并顺序更新各层状态。代数恒等式不保证任意低精度实现逐 logit 一致。论文的并行训练代码仍然显式形成 attention 矩阵；固定状态解码不能自动推导出该实现的训练时间和显存也是线性。（§3.5、§4.3，PDF pp.5–6；[递推实现](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/experiments/rebuttal/rebuttal_pipeline.ipynb)）

## 三：实验——比较协议改变了什么

### 3.1 模型与训练设置

SANATAN 以约 184M 参数的 causal LM 为载体：$D=768$，12 层、12 头，每头 $d=64$；SwiGLU FFN hidden size 2048，RMSNorm pre-norm。LLaDA-8B-Instruct tokenizer 的词表大小为 126,349，非 embedding 参数约 85.0M。context 为 2048，每步 65,536 tokens。

优化器为 AdamW，$\beta_1=0.9,\beta_2=0.95$，weight decay 0.1；预训练学习率 $6\times10^{-4}$，500 步 warmup。原始 SANATAN 和较早 kernel baseline 用 TPU v4-8；补充评估、适配和 GLA 实验使用工作站 GPU。不同模型的 token 预算并不相同。（§5，PDF pp.6–7）

训练文档采样概率依次为：FineWeb 52%、StarCoder 28%、CulturaX-zh 11%、FineWeb-Edu 6%、OpenWebMath 1.5%、FineMath 1.5%。由于代码文档更长，论文披露实际训练 token 约 85% 来自代码。文档概率不能当作 token 占比使用。

### 3.2 共同验证集与旧结果撤回

旧版为每次训练单独从数据流头部抽小验证集。不同运行的 loss 不可直接比较，头部的代码分布还偏好某些很早的 checkpoint。

修订版用共同的 seeded deep-stream held-out set：seed 4321，256 条序列，每条提供 2048 个预测位置；从不同数据流跳过约 0.8M–4M 文档，作者称这些位置在各训练运行消费范围之后。token 组成约为 FineWeb 50%、StarCoder 24%、CulturaX-zh 11%、FineWeb-Edu 8%、数学 6%。（§5.1，PDF p.7；rebuttal notebook 第 20 个 cell，按零起始计数）

这里的 loss 是 token 平均交叉熵，单位 nats，越低越好。其指数是 perplexity，但不同 tokenizer、验证分布或 checkpoint 选择协议的数值不可直接拼接。

修订中最关键的变化是：

| 旧说法 | 修订稿采用的说法 |
| --- | --- |
| 四通道 $p=4$ 的 4.86 是最佳方案 | 来自约 0.09B tokens 的早期 checkpoint；结论撤回 |
| $p=2,4$ 模型可以直接用小状态递推 | 换成 $p=1$ 会明显降质；需专门适配 |
| $2^d$ 个无干扰扇区 | $2^d$ 个标签，只有逐维兼容性门控 |
| 不需要额外位置 embedding | 已训练实现实际使用 2048 长度绝对位置表 |
| 旧 softmax 3.27 可用于横向比较 | 原 checkpoint 未保留，新协议下不提供有效 softmax 比较值 |

（附录 C，PDF pp.12–13）

### 3.3 baseline 在比较中扮演的角色

Linear Transformer 是较简单的确定性线性核基线；Performer 用随机特征近似 attention，另有稳定化版本；cosFormer 使用三角重加权。共同训练配方下，部分 baseline 发生发散或明显退化，因此比较反映的是这套实现和配方的表现，不能把其不稳定当成模型族的必然属性。

GLA 是更强的现代状态门控参考。论文表 1 脚注说它使用 tied embeddings，共 182.2M 参数，checkpoint 位于 2.92B tokens，评估用 bfloat16 autocast；其他列出的数值主要是 float32。这条脚注应优先于 §5.1 中笼统的“所有评估为 float32”。

公开 `gla_baseline.ipynb` 却仍使用 `num_heads=4`，没有显式设置 tied embeddings，已保存输出为 **279.3M 参数**；最后评估 cell 没有保留 3.348 的输出。因而论文中的 182.2M 配置和 3.348 应保留为**作者报告值**，不能说当前 notebook 已完整重现这条匹配参数预算的比较。（[GLA notebook](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/experiments/rebuttal/gla_baseline.ipynb)，cells 3–7）

## 四：结果——机制证据、质量和成本

### 4.1 两阶段训练保留了接近的验证损失

| 模型 | 部署形式 | 训练 tokens | held-out loss ↓ |
| --- | --- | --- | ---: |
| GLA，论文报告 | 状态递推 | 2.92B | 3.348 |
| SANATAN 六通道 $p=1$，两阶段 | 小状态递推对应的核 | 10B + 0.63B | 3.951 |
| SANATAN 六通道 $p=2$ | 当前实现为并行 attention | 10B | 3.966 |
| Linear Transformer | 状态递推 | 3B | 4.524 |
| SANATAN 六通道 $p=4$ | 当前实现为并行 attention | 1B | 5.377 |
| Performer | 状态递推 | 3B | 最终发散 |
| Performer，稳定化版本 | 状态递推 | 3B | 8.767 |
| cosFormer | 状态递推 | 3B | 9.806 |
| 标准 softmax | KV 缓存 | 3B | 无有效修订比较值 |

来源：表 1，PDF p.7；SANATAN 和 kernel baseline 的精确小数见 [final_clean_results.json](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/experiments/rebuttal/final_clean_results.json)。该 JSON 没有 GLA 结果；其中 softmax 尝试的数值也不能替代论文明确撤回的有效对照。

![主要模型的报告质量与预算](figures/quality.png)

根据表 1 重绘，横轴同时标明 token 预算，纵轴为交叉熵。3.951 和 3.966 的差为约 0.015 nats；这支持“适配后验证质量接近”的描述。适配阶段同时增加了训练数据，不能把差值解释为单独降低 $p$ 带来的提升。论文每个配置只训练一次，没有给出足以支持统计等价检验的误差条。

适配学习率降为 $6\times10^{-5}$，约为预训练的十分之一；沿用 $6\times10^{-4}$ 曾造成不稳定。直接从零训练 $p=1$ 的收敛较慢，在作者预算内未达到相近水平。两阶段方案的意义是先利用锐化核训练，再把模型调整到便宜递推所对应的核。（§3.5，PDF p.5）

### 4.2 递推等价：公式与公开输出必须分别判断

论文报告训练后 $p=1$ 模型的并行/递推 loss 差在 $10^{-4}$ nats 以内；随机权重时最大 logit 差约 $3\times10^{-7}$，并强调 float32 与高精度矩阵乘法。

但固定提交中的 rebuttal notebook 最后一个 cell（索引 23）保留的是：

| 公开输出 | 记录值 | 能说明什么 |
| --- | ---: | --- |
| $p=2$ checkpoint 直接递推 | 9.0289 | 与直接改核严重降质的叙述一致 |
| 训练后 $p=1$ 最大并行/递推 logit 差 | $1.37\times10^1$ | 这份保存输出没有展示所宣称的数值等价 |
| $p=1$ 递推，64 条 clean sequences | 4.3437 | 应与同样 64 条的并行 loss 比较 |
| 提示中引用的并行 loss，全部 256 条 | 3.9507 | 与上一行样本范围不同，不能直接相减作为误差 |

此外，直接部署 $p=2$ 的“+5.0633”也是 64 条递推 loss 与全部 256 条并行 loss 的差，严格同样本的 gap 仍需配对报告。

代码的并行路径显式指定 `Precision.HIGHEST`，最终递推路径没有在对应矩阵乘法和 `einsum` 上保持同样设置。精度配置是需要排查的具体差异，但仅凭保存输出不能确定误差来源，也不能断言作者之后没有修正。准确结论是：**论文声称的最终训练模型核验尚缺少与之对齐的公开代码和输出。**

根目录 demo 的小模型另有约 $4\times10^{-6}$ 的 logit 一致性输出；它说明该实现思路可以工作，不能替代 184M 训练模型的核验。独立核层面的求和恒等式与这里的大模型数值制品问题也应分开。（§3.5，PDF p.5；[rebuttal notebook](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/experiments/rebuttal/rebuttal_pipeline.ipynb)；[demo](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/SANATAN_demo.ipynb)）

### 4.3 根门确实接近二值，但统计口径较窄

论文在 10B-token 模型的第 0 层报告：

| 统计量 | 报告值 | 直观解释 |
| --- | ---: | --- |
| $\lvert r\rvert>0.99$ 的比例 | 87.8% | 多数 root activation 饱和到接近 ±1 |
| 错配维度的平均门值 | 0.057 | 相对理想开启值 2，约 2.85% |
| token 对平均错配维度比例 | 49.3% | 大量不同标签仍有匹配维度 |

这里的 3% 是**门因子相对理想开启门的比例**，并不是 attention 权重中有 3% 的质量泄漏到不相关 token；最终权重还受相位、跨维求和、幂次和归一化影响。

公开 measurement cell 只计算 query roots，把 token 与 head 轴一起展平，再在前 500 个向量之间计算配对门值，没有独立构造同头的 query/key 对。因此这些输出宜理解为局部 root 分布探针，而不是完整模型的实际因果 attention 泄漏统计。复核时应分别采集同头 Q/K，并按真实 causal mask 统计。（§4.2，PDF p.6；rebuttal notebook cell 11）

### 4.4 消融支持什么，又混入了什么

全部消融为 1B tokens、最终 checkpoint。为避免原表的 $\Delta$ 列以最佳 $p=4$ 行为参照造成误读，下表统一以六通道 $p=2$ 的 5.5778 为参照：

| 变体 | loss ↓ | 相对六通道 $p=2$ |
| --- | ---: | ---: |
| 六通道 $p=2$ | 5.578 | 0 |
| 无可学习 $\omega$，固定初始化 | 5.393 | −0.185 |
| 无时间旋转 $\lambda$ | 5.477 | −0.101 |
| 六通道 $p=4$ | 5.377 | −0.201 |
| 四通道 $p=2$ | 5.965 | +0.387 |
| 四通道 $p=4$ | 5.844 | +0.266 |
| 三通道，移除 root 通道 | 6.110 | +0.532 |

同指数比较时，六通道分别比四通道降低约 0.387 nats（$p=2$）与 0.467 nats（$p=4$）。原来的四通道优势在共同验证集上消失。更高幂次在并行模型中有收益，但它不能被计入 $p=1$ 固定状态模型的直接消融收益。

![统一预算下的消融结果](figures/ablations.png)

根据表 2 和结果 JSON 重绘。移除 learned anchor、移除 temporal rotation 均没有恶化指标；位置表可能掩盖旋转项作用，是作者提出的解释。

**三通道比较并非严格“只去掉 root”。** 代码先使用 $[1,\cos\theta,\sin\theta]$，其未归一化分数实际是

$$
s_3=d+\sum_a\cos\Delta\theta_a\in[0,2d].
$$

随后代码却又执行

$$
\widetilde s_3=\frac{s_3+d}{3d+\epsilon}.
$$

额外的 $+d$ 把最小分数抬高。即使忽略分母常数，这也改变了 token 间的相对分数，在 $p=2$ 后进一步改变分布。代码注释把原始范围写成 $[-d,3d]$，与其实际特征不符。因此 **+0.532 nats 是这组实现变体的性能差，不能完全归因于 root gate 的独立因果贡献**。公平消融应使用没有额外平移的三通道核，并统一相应归一化/epsilon 约定。（§5.3，PDF p.8；[消融实现](https://github.com/bhargavpatel431997/sanatan-attention/blob/1a52793b8e121cba29cc00ca0dc7edc37c31461a/experiments/original_submission/sanatan_ablation_baselines.py#L190)）

### 4.5 固定状态的内存账可以直接算清

对 batch 1、12 层、12 头、$d=d_v=64$、float32：

$$
M_{\mathrm{SANATAN}}
=12\times12\times(6\times64^2+6\times64)\times4
=14{,}376{,}960\ \mathrm{bytes}.
$$

即约 **14.377 MB**，使用十进制 MB。每头连同 $z$ 为 99,840 bytes；论文的“96 KB/head”近似对应忽略 $z$ 后的 96 KiB 主矩阵。

常规多头 softmax KV 缓存为

$$
M_{\mathrm{KV}}=2n\times12\times768\times4.
$$

令两者相等得 $n=195$。这是相同 head 布局和精度下的 attention 状态/缓存交叉点，不是模型总显存，也不适用于直接替换成 GQA、KV 量化等不同布局后的比较。

| 上下文 $n$ | softmax KV 缓存，MB | SANATAN 状态，MB |
| ---: | ---: | ---: |
| 1,024 | 75.5 | 14.4 |
| 2,048 | 151.0 | 14.4 |
| 8,192 | 604.0 | 14.4 |
| 32,768 | 2,415.9 | 14.4 |
| 131,072 | 9,663.7 | 14.4 |

这组内存数是尺寸公式，不需要训练 checkpoint 就能验证。（§§3.5、4.4，PDF pp.5–6）

### 4.6 延迟结果是 attention 路径微基准

![内存公式与论文报告的解码微基准](figures/memory-latency.png)

左图是上述内存公式；右图根据 §4.4、PDF p.6 重绘，均使用对数纵轴。论文报告 batch 1、float32、相同未优化框架实现，warmup 后测 50 步平均：

| 上下文 | softmax，ms/token | SANATAN，ms/token | 报告加速比 |
| ---: | ---: | ---: | ---: |
| 1K | 0.490 | 0.153 | 3.2× |
| 2K | 0.755 | 0.153 | 4.9× |
| 8K | 1.839 | 0.153 | 12.0× |
| 32K | 7.325 | 0.153 | 47.9× |

它隔离 attention decode path；不是包含 FFN、词表投影和采样的端到端语言模型吞吐，也没有展示已训练模型在 32K 上的语言质量。2048 长度绝对位置表仍然限制实际模型。

公开 demo 提供了更小模型的 CPU 微基准，其中 `sanatan_decode` 读取给定的 $S,Z$，没有执行 key/value 投影和新 token 的状态写入；不能把这段读取基准直接解释成完整 recurrent token step。固定提交的 rebuttal notebook 也没有对应论文 184M GPU 延迟表的完整基准 cell。因此 0.153 ms 与这些加速倍数应标为论文报告值。

训练方面，论文报告 SANATAN 约 22K tokens/s，softmax 约 78K，GLA 约 121K。优势集中在固定状态解码；当前实现三角特征和显式 attention 计算并没有带来更高训练吞吐。（§4.4、§7，PDF pp.6、9；demo cell 18）

## 五：结论——可保留的机制与需要补齐的证据

SANATAN 提供了一个简单、可解释的乘积核：标签兼容性乘以角度相似度。它最值得借鉴的地方，是将二值风格的交互选择性放进显式特征映射，从而保留 $p=1$ 的线性注意力递推结构。六通道设计、逐维而非全标签隔离、以及幂次改变后所需状态维度，都能清楚地从公式推出。

经验层面，修订稿做了重要收缩：撤回不可靠的四通道优势、明确 $p>1$ 部署差距、披露绝对位置 embedding，并把 GLA 作为更强参考。两阶段适配得到接近原模型的并行验证损失，是一个有价值的观察。

不过，当前仓库仍需要把最终训练模型的配对递推核验、182.2M tied-embedding GLA 运行、纯三通道消融，以及完整更新路径的 GPU 微基准补齐并对应到结果表。它们直接影响“已经验证的等价性”“匹配预算比较”和“门控独立贡献”的证据强度。

对后续实验，最有信息量的顺序是：先统一精度并在同一批输入上比对训练模型的并行/递推 logits；再修正三通道对照；随后比较根门、普通可学习二值门和随机/hash 门；最后在去掉绝对位置表的模型上测试真实长上下文任务，并尝试与状态衰减机制组合。

### 附录 B 的频谱展望应怎样理解

作者提出增加 $\cos(n\theta),\sin(n\theta)$ 谐波，在 $p=1$ 下仍可显式展开，但每维特征数和递推状态会随谐波数增长。它是在计算和表达能力之间做新的取舍，不是免费的锐化。

其中“不同质数频率使离峰平均降到 $O(K^{-1/2})$”没有在文中给出足够条件，不能当作统一上界。一个直接反例是取 $\Delta\theta=\pi$：对含 2 的 $K$ 个不同质数，2 对应余弦值 1，其他奇质数对应 −1，因此

$$
\frac1K\sum_{p\in\mathcal P}\cos(p\pi)=\frac{2-K}{K}\longrightarrow-1.
$$

“只有零点是所有频率的共同正峰”不意味着其他位置的平均幅值都小。若想利用统计抵消，需要说明频率如何采样、相位分布以及排除哪些共振点。类似地，非整数的可学习角频率可以作用于有明确代表值的实数相位，但一般不再定义圆周上具有 $2\pi$ 周期的同一个函数。附录这些内容属于未来构想，应与已建立的六通道恒等式分开。（附录 B，PDF p.12；反例与周期性解释为本次分析）
