ZeroPoint / experiments /ema_longrun.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.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 重新训练(其余完全相同),10244095 字处的 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 模型 10244095 与 64255 的 loss 差):+1.7677,噪声阈值 0.4805 → 不成立(对照:无 ema 的差是 +0.2190)
  • ema 不损害短距离:64 字处 loss 差 -0.0033 → 成立

结论:① ② 都不成立:放弃 H1,下一步查学到的 λ 值