ZeroPoint / experiments /slots.md
Holmes2011's picture
ZeroPoint v0 research prototype: new from-scratch NumPy framework, memory-slot architecture, audited Transformer comparison
5c6c847 verified
|
Raw History Blame Contribute Delete
2.13 kB
# 预注册分析:长期槽在干什么
> 写于分析之前(2026-11-01)。跑完只追加结果,不改这一节。用 experiments/out/diag_*.npz(T64 / T64-ema / T256 各 3 种子)。
**矛盾**:T64 模型写入只有 6.1% 落在半衰期 > 16 字的槽;但消融里去掉分层初始化变差 0.051。
**三个可区分的假设**
- H9 读取端在用:长期槽虽然写得少,但**读地址**落在长期槽上的占比明显高于写占比(读占比 ≥ 2 × 写占比)。
→ 长期槽像"慢变的背景",少量写入、持续读取。
- H10 中期槽才是关键:分层初始化的作用主要来自半衰期 4~64 字的槽,不是 > 64 的;读写都集中在 4~64 桶(该桶读 + 写占比合计 > 50%)。
- H11 训练长度决定长期槽的使用:T256 模型在 > 16 字桶上的写占比 ≥ 2 × T64 的。
来源:diagnose 里 T256 远处 loss 明显更好,推测它学会了用更长的槽。
**判定**:3 个种子平均;各桶占比按所有层、所有头的平均。H9 / H11 的"2 倍"是无依据的整数阈值,仅作记录;
同时报告原始占比,让读者自己看。
## 结果(分析之后写)
验证集 4 条 × 2048 字递推;占比 = 该桶内所有槽的地址权重之和(读 / 写各自归一化),层和头平均,3 个种子平均。
| 条件 | 量 | 半衰期 0~4 | 半衰期 4~16 | 半衰期 16~64 | 半衰期 64~∞ |
|---|---|---|---|---|---|
| T64 | 读 | 0.703 | 0.120 | 0.127 | 0.050 |
| T64 | 写 | 0.815 | 0.122 | 0.058 | 0.006 |
| T64-ema | 读 | 0.524 | 0.149 | 0.167 | 0.159 |
| T64-ema | 写 | 0.925 | 0.060 | 0.014 | 0.001 |
| T256 | 读 | 0.660 | 0.180 | 0.152 | 0.008 |
| T256 | 写 | 0.696 | 0.167 | 0.135 | 0.001 |
## 判定(按预注册的标准)
- H9 读取端在用长期槽:> 16 字桶 读 0.177 vs 写 0.064 → **成立**(2 倍阈值无依据,仅作记录)
- H10 中期槽是关键:4~64 字桶 读写平均占比 0.213 > 0.5 → **不成立**
- H11 训练长度 256 更用长期槽:> 16 字桶写占比 T256 0.136 vs T64 0.064 → **成立**(2 倍阈值无依据,仅作记录)