ZeroPoint v0 research prototype: new from-scratch NumPy framework, memory-slot architecture, audited Transformer comparison
5c6c847 verified |
Download experiments/recall.md from Holmes2011/ZeroPoint: direct link, hf CLI and curl.
- Browser
- Download file 2.86 kB
-
https://huggingface.co/Holmes2011/ZeroPoint/resolve/main/experiments/recall.md
- Command line
-
hf download hf://Holmes2011/ZeroPoint/experiments/recall.md
-
curl -L -o recall.md https://huggingface.co/Holmes2011/ZeroPoint/resolve/main/experiments/recall.md
2.86 kB
长距离精确回忆(联想检索)
k1 v1 k2 v2 … kN vN [问] kq → 回答 kq 对应的值。16 个键、16 个值,随机猜的准确率是 1/16 ≈ 6%。
三个模型宽 64、2 层、4 头;训练 20000 步,N 在 2~16 随机;每格是 512 道测试题 × 种子 [0, 1] 的平均准确率。
| 模型 | N = 2 | N = 4 | N = 8 | N = 12 | N = 16 |
|---|---|---|---|---|---|
| Transformer | 50% | 30% | 23% | 20% | 18% |
| ZeroPoint (16 槽) | 51% | 32% | 23% | 20% | 16% |
| ZeroPoint (32 槽) | 49% | 31% | 24% | 20% | 17% |
判定与解释(11-08 补)
预注册判定(见 recall_prereg.md)
- P1(Transformer 在 N=16 准确率 ≥ 80%)不成立:18%。
- P2(ZeroPoint 比 Transformer 低 ≥ 20 个百分点)不成立:N=16 时 16% / 17% vs 18%,差 1~2 点。
- P3(32 槽比 16 槽高 ≥ 5 个百分点)不成立:17% vs 16%。
和 3000 步比:几乎完全一样(Transformer N=2 52% → 50%、N=16 14% → 18%;ZeroPoint 16 槽 51% → 51%、17% → 16%)。训练量加长 6.7 倍没有任何可辨别的提升。
诊断(11-08,recall_diag.py;诊断性实验,不参与上面的预注册判定)
- 固定 32 条 N=2 题反复训练:600 步训练集准确率 100%,loss ≈ 0 → 框架、优化、反向传播没问题。
- 只训 N=1(复制值,不需要匹配查询):500 步 100% → 复制机制能学会。
- 只训 N=2,换学习率安排(种子 0,各 8000 步):
- 恒定 3e-3(本脚本原设置):N=2 停在 53%,loss ≈ 0.72。
- 余弦 3e-3 → 3e-4:N=2 停在 53~59%,loss ≈ 0.72。
- 余弦 1e-3 → 1e-4:第 6000 步开始突破,第 8000 步 N=2 = 100%,loss 0.001。 → 任务能学会;原来的 3e-3 恒定学习率把模型困在"两个候选值各猜一半"的状态(loss ≈ ln 2 ≈ 0.69)。另外,单独只用恒定 3e-3 训 N=2 到 20000 步也仍是 53%,所以不是步数问题。
- 混合 N(2~16)用同一个 1e-3 余弦跑 12000 步:N=2 仍只有 56%。混合训练里 N=2 的样本只占约 1/15,梯度信号被稀释,12000 步对 N=2 只相当于 800 步左右——还不够。
结论(已测量):20000 步无结论不是"训练量差一点",而是训练配置问题:
- 恒定 3e-3 太高,模型停在 50/50 对冲的局部解,学不出"用查询键选值"的回路;
- 混合 N 把简单样本(N 小)的信号稀释了大约 15 倍。
- 只学 N=2 时,1e-3 余弦 8000 步就能到 100%,说明 Transformer 架构有能力学这个任务。
下一步:按修正后的学习率(1e-3 余弦)重跑 recall,或者加课程(先 N=2,再逐步加长到 16);需要重写预注册。在那之前,recall 的结论仍是"无结论",不能拿这张 20000 步的表去比架构。