修正: deepseek 笔记 96 处块级公式改为多行写法(适配 SilverBullet 行首锚点), 索引脚本同步 _abstract 命名

This commit is contained in:
ylhan
2026-09-21 10:53:11 +08:00
parent f5b825bd4a
commit 19afe00a86
28 changed files with 486 additions and 130 deletions
@@ -23,11 +23,15 @@
论文把开闭源模型差距归因于三点:朴素注意力令长序列低效、后训练算力不足、智能体泛化与指令遵循落后;DSA 针对第一点,由闪电索引器(lightning indexer)与细粒度 token 选择组成。索引器为查询与前序 token 打分:
$$I_{t,s}=\sum_{j=1}^{H^{I}}w_{t,j}^{I}\cdot\text{ReLU}\left(\mathbf{q}^{I}_{t,j}\cdot\mathbf{k}^{I}_{s}\right)$$
$$
I_{t,s}=\sum_{j=1}^{H^{I}}w_{t,j}^{I}\cdot\text{ReLU}\left(\mathbf{q}^{I}_{t,j}\cdot\mathbf{k}^{I}_{s}\right)
$$
选 ReLU 纯为吞吐考虑;索引器头数少且可用 FP8,故效率很高。之后只对 top-$k$ 分数对应的键值条目做注意力:
$$\mathbf{u}_{t}=\text{Attn}\left(\mathbf{h}_t,\left\{\mathbf{c}_s \mid I_{t,s}\in\text{Top-k}\left(I_{t,:}\right)\right\}\right)$$
$$
\mathbf{u}_{t}=\text{Attn}\left(\mathbf{h}_t,\left\{\mathbf{c}_s \mid I_{t,s}\in\text{Top-k}\left(I_{t,:}\right)\right\}\right)
$$
为便于从 V3.1-Terminus 继续训练,DSA 实例化在 MLA 的 MQA 模式上,使每个潜向量被同一查询 token 的所有查询头共享——这是内核层面的硬约束:各头独立选 top-$k$ 反而低效。
@@ -35,11 +39,15 @@ $$\mathbf{u}_{t}=\text{Attn}\left(\mathbf{h}_t,\left\{\mathbf{c}_s \mid I_{t,s}\
起点是上下文已扩至 128K 的 V3.1-Terminus 基座,两阶段数据分布与之对齐。稠密预热保持稠密注意力、冻结除索引器外全部参数,把主注意力分数沿头求和后沿序列 L1 归一化得目标分布 $p_{t,:}$,以 KL 散度训练索引器:
$$\mathcal{L}^{I}=\sum_{t}\mathbb{D}_{\mathrm{KL}}\left(p_{t,:}\,\middle\|\,\text{Softmax}\left(I_{t,:}\right)\right)$$
$$
\mathcal{L}^{I}=\sum_{t}\mathbb{D}_{\mathrm{KL}}\left(p_{t,:}\,\middle\|\,\text{Softmax}\left(I_{t,:}\right)\right)
$$
学习率 $10^{-3}$,1000 步 × 16 条 128K 序列,共 2.1B tokens。稀疏训练引入选择机制并优化全部参数以适应稀疏模式,索引器只在被选集合 $\mathcal{S}_t$ 上对齐:
$$\mathcal{L}^{I}=\sum_{t}\mathbb{D}_{\mathrm{KL}}\left(p_{t,\mathcal{S}_t}\,\middle\|\,\text{Softmax}\left(I_{t,\mathcal{S}_t}\right)\right)$$
$$
\mathcal{L}^{I}=\sum_{t}\mathbb{D}_{\mathrm{KL}}\left(p_{t,\mathcal{S}_t}\,\middle\|\,\text{Softmax}\left(I_{t,\mathcal{S}_t}\right)\right)
$$
关键设计是把索引器输入从计算图 detach,索引器只由 $\mathcal{L}^I$ 训练、主模型只按语言建模损失优化,二者解耦。此阶段学习率 $7.3\times10^{-6}$,每查询选 2048 个键值 token,15000 步 × 480 条 128K 序列,共 943.7B tokens。