File size: 2,680 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 | # 预注册实验:长序列变差与 ema 写入
> 写于实验之前(2026-10-18)。跑完后只在下面追加结果,不改这一节。
**观察**:compare.md 里 ZeroPoint(无 ema)在 1024~4095 字处的 loss(1.70)高于 64~255 字处(1.62)。
**假设 H1**:原因是长期槽(λ 接近 1)的数值随序列长度无界累积,超出训练时(64 字)见过的范围。
**预测**:
- ① 直接测:推理时槽值的最大绝对值,无 ema 的模型在 4000 字处明显大于 64 字处(比值 > 2);有 ema 的模型比值接近 1(< 1.5)。
- ② 间接测:开 ema 重新训练(其余完全相同),1024~4095 字处的 loss 不再明显高于 64~255 字处:差值 < 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 与 64~255 的 loss 差):+1.7677,噪声阈值 0.4805 → **不成立**(对照:无 ema 的差是 +0.2190)
- ema 不损害短距离:64 字处 loss 差 -0.0033 → **成立**
**结论**:① ② 都不成立:**放弃 H1**,下一步查学到的 λ 值
|