File size: 3,835 Bytes
5c6c847 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | # 预注册实验:查三个问题
> 写于实验之前(2026-10-18)。跑完只在下面追加结果,不改这一节。
**背景**:ema_longrun.md 否定了"槽值无界累积"假设。无 ema 的模型在 1024~4095 字处 loss 比 64~255 字处高约 0.22;
有 ema 的高约 1.77。compare.md 里 16 个槽只有 3~5 个被写入(**更正**:3~5 是按未归一化的门控分布算的偏低值;归一化后读约 10/16,写约 6~10/层)。
## 假设和预测
**H2(训练长度)**:长序列变差是因为训练只见过 64 字;模型在更长的位置上遇到的槽状态分布是训练时没见过的。
- 预测:训练长度改为 256(每步字数不变、其余相同)后,1024~4095 与 64~255 的 loss 差 **缩小到 T64 的一半以下**。
- 不成立时会看到:差距没有缩小(< 2 × 标准差的变化)。
**H3(ema 为什么更差)**:ema 把长期槽的写入乘上 (1-λ),训练时(64 字)长期槽几乎不起作用,模型学会只用短期槽;
到了长序列,读地址仍指向短期槽,但短期槽里的内容和训练时的统计不同。
- 预测 ③a:ema 模型的**写地址**集中在半衰期短的槽上:半衰期 > 16 字的槽,写入占比 < T64 模型的一半。
- 预测 ③b:ema 模型学到的长期槽 λ 更接近 1(半衰期更长),或者长期槽的读占比在远处位置上升。
- 不成立时会看到:两组的写入分布没有明显差别。
**H4(槽塌缩)**:塌缩不是训练失败,而是写地址的 softmax 竞争让少数槽赢者通吃;在不同序列位置上"赢的槽"不同,
所以整体统计(compare.md 的 3~5 个有效槽,见上面对该度量的更正)低估了实际用到的槽数。
- 预测 ④:按位置分段(0~63 / 64~255 / 256~1023 / 1024~4095)分别统计有效写槽数,各段的并集 > 整体有效槽数 × 1.5;
同时各段的读/写分布之间有明显差别(任意两段的 JS 散度 > 0.1)。
- 不成立时会看到:各段的分布几乎相同,用的始终是同几个槽。
**判定**:每条按上面的数值阈值判,3 个种子均值;差别和 2 × 种子间标准差比。
## 结果(实验之后写)
### 验证 loss(64 字)和长度外推(32 条 × 4096 字;均值 ± 标准差,3 个种子)
| 条件 | 64 字验证 | 0~63 | 64~255 | 256~1023 | 1024~4095 | 远−近 差 |
|---|---|---|---|---|---|---|
| T64 | 1.5214 ± 0.0134 | 1.4372 ± 0.0187 | 1.4742 ± 0.0341 | 1.6617 ± 0.0234 | 1.6932 ± 0.0305 | +0.2190 ± 0.0630 |
| T64-ema | 1.5182 ± 0.0076 | 1.4308 ± 0.0039 | 1.6476 ± 0.0529 | 3.1084 ± 0.2157 | 3.4153 ± 0.2402 | +1.7677 ± 0.2188 |
| T256 | 1.5572 ± 0.0060 | 1.4741 ± 0.0117 | 1.4486 ± 0.0098 | 1.5098 ± 0.0022 | 1.5155 ± 0.0048 | +0.0669 ± 0.0051 |
### H3:写入落在半衰期 > 16 字的槽上的占比(0~63 段),和学到的最长半衰期
| 条件 | 长期槽写入占比 | 最长半衰期(字) | 远处读长期槽占比的变化 |
|---|---|---|---|
| T64 | 0.061 ± 0.005 | 109 | +0.009 |
| T64-ema | 0.014 ± 0.001 | 103 | +0.007 |
### H4:槽的使用(T64,写地址;各层各头平均)
| 段 | 有效写槽数 |
|---|---|
| 0~63 | 8.6 |
| 64~255 | 8.7 |
| 256~1023 | 8.5 |
| 1024~4095 | 8.9 |
| 整体 | 8.7 |
各段用到的槽的并集 ÷ 整体有效槽数 = 0.68;各段分布之间最大的 JS 散度 = 0.010
## 判定(按预注册的标准)
- H2 训练长度:远−近差 T64 +0.2190 → T256 +0.0669 → **成立**
- H3a ema 写入避开长期槽:占比 0.061 → 0.014 → **成立**
- H3b ema 的长期槽更长或远处更依赖长期槽 → **不成立**
- H4 槽塌缩是分段使用不同的槽:并集比 0.68,JS 0.010 → **不成立**
模型已保存在 experiments/out/diag_*.npz,可以事后再分析。
|