ZeroPoint v0 research prototype: new from-scratch NumPy framework, memory-slot architecture, audited Transformer comparison
5c6c847 verified |
Download experiments/ema_longrun.md from Holmes2011/ZeroPoint: direct link, hf CLI and curl.
- Browser
- Download file 2.68 kB
-
https://huggingface.co/Holmes2011/ZeroPoint/resolve/main/experiments/ema_longrun.md
- Command line
-
hf download hf://Holmes2011/ZeroPoint/experiments/ema_longrun.md
-
curl -L -o ema_longrun.md https://huggingface.co/Holmes2011/ZeroPoint/resolve/main/experiments/ema_longrun.md
2.68 kB
预注册实验:长序列变差与 ema 写入
写于实验之前(2026-10-18)。跑完后只在下面追加结果,不改这一节。
观察:compare.md 里 ZeroPoint(无 ema)在 10244095 字处的 loss(1.70)高于 64255 字处(1.62)。
假设 H1:原因是长期槽(λ 接近 1)的数值随序列长度无界累积,超出训练时(64 字)见过的范围。
预测:
- ① 直接测:推理时槽值的最大绝对值,无 ema 的模型在 4000 字处明显大于 64 字处(比值 > 2);有 ema 的模型比值接近 1(< 1.5)。
- ② 间接测:开 ema 重新训练(其余完全相同),1024
4095 字处的 loss 不再明显高于 64255 字处:差值 < 2 × 种子间标准差。
H1 不成立时会看到:① 无 ema 的槽值没有明显增长;或 ② 开 ema 后远处 loss 照样升高。
判定:① 和 ② 都成立 → 接受 H1,且 ema 是有效的修法;只有 ② 成立 → ema 有效但原因另有其他; 都不成立 → 放弃 H1,下一步查学到的 λ 值。另外要求 ema 不损害短距离:64 字处验证 loss 的差别 < 2 × 标准差。
对照:两组用同样的 3 个种子、同样 2000 步、学习率 0.006、同样语料;外推用 32 条 4096 字的验证序列, 两组都用分块并行算法算 loss。(10-18 的修正是把验证序列从 8 条增加到 32 条;分块并行与递推形式数学等价,float32 下 logit 最大差 1.4e-5,不是算法差异。)
结果(实验之后写)
64 字处的验证 loss(均值 ± 标准差,3 个种子)
| 模型 | 验证 loss |
|---|---|
| no-ema | 1.5214 ± 0.0134 |
| ema | 1.5182 ± 0.0076 |
长度外推(32 条 × 4096 字,分块并行算法;均值 ± 标准差)
| 位置 | no-ema | ema |
|---|---|---|
| 0 ~ 63 | 1.4372 ± 0.0187 | 1.4308 ± 0.0039 |
| 64 ~ 255 | 1.4742 ± 0.0341 | 1.6476 ± 0.0529 |
| 256 ~ 1023 | 1.6617 ± 0.0234 | 3.1084 ± 0.2157 |
| 1024 ~ 4095 | 1.6932 ± 0.0305 | 3.4153 ± 0.2402 |
槽值的最大绝对值(递推推理,3 个种子平均)
| 位置 | no-ema | ema |
|---|---|---|
| 64 | 9.08 | 1.60 |
| 256 | 10.07 | 2.34 |
| 1024 | 9.88 | 1.51 |
| 4000 | 16.07 | 2.27 |
判定(按预注册的标准)
- 预测 ①(槽值比值 4000 字 / 64 字):无 ema 1.93,有 ema 1.44 → 不成立
- 预测 ②(ema 模型 1024
4095 与 64255 的 loss 差):+1.7677,噪声阈值 0.4805 → 不成立(对照:无 ema 的差是 +0.2190) - ema 不损害短距离:64 字处 loss 差 -0.0033 → 成立
结论:① ② 都不成立:放弃 H1,下一步查学到的 λ 值