§43 2026-10-04 凌晨:根因是一条"曲线拟合直线",而修法有三个选项
·
★★★★★★★
1.6k 字 ·
源文件 进度.md 第 2341 行起 ·
goal discipline ruler arch optim
★ 本节取代 §42 的结论(§42 说"病因在优化动力学",对但不完整)。
#一、★★★★★★★ 七环根因链(每环都有实测或源码依据)
| # | 环节 | 依据 |
|---|---|---|
| 1 | 教师靶由 clip(d/MOVE_PX, ±0.98) 得到(线性裁剪) | 源码 |
| 2 | 教师再把它 arctanh 成 logits ⇒ 极值 ±2.298 | 源码 + 实测 |
| 3 | 策略侧 stick = tanh(logits) | 源码 screen_agent.py:340 |
| 4 | ⇒ 要复现教师的 ±0.98,策略 logits 必须到 ±2.3 | 数学 |
| 5 | ★★ 而在 ±2.3 处 tanh 导数只有 0.01 ⇒ 梯度被压 100 倍 | 数学 |
| 6 | ⇒ 输出被"缩小" 2.2 倍 | ★ 实测两个跑次 a* = 2.20 |
| 7 | ⇒ 误差集中在到位前窗口(RMSE 1.30 vs 0.17) | ★ 实测 |
★★★★★ 一句话:
arctanh把靶推到tanh的饱和区 —— 模型被要求用一条【曲线】去拟合一条【直线】。
#二、★★★★★★★ 三个修法选项(已实测)
| 选项 | 内容 | 到位前 RMSE | 授权 |
|---|---|---|---|
| ① 不动 | 保持 tanh + arctanh | 0.85–1.12 | — |
| ★★ ② 推理时摇杆 logits × 2.2 | 一处、可逆;输出仍在 (−1,1) | ★ 0.19 | ★ 不需要 |
★★★ ③ tanh 换成 clip(与教师一致) | 两处 | ★★★ 0.0026 | ★★ 需要 + 重跑基线 |
#三、★★★★★★★ 而"学得多好"与"保持"是【两件可分的事】
| 干预 | 最好点(检查点口径) | 最好点之后均值 | 末点 |
|---|---|---|---|
REL_s4(基线) | 60.4% / 1.21 格 | 1.38 条 | 0.0% |
★ RLO_s4(移除 π) | ★★ 89.6% / 0.75 格 | ★★ 3.50 条 | 4.2% |
★★★★★ 移除
π让最好点 +29pp、之后均值 1.38 → 3.50,但它【不足以】阻止崩塌。 ⇒ "损失项冲突"是真实但不够的贡献者;"保持"是另一个独立问题。
#四、★★★★★ 一条被推翻的旧读数:日志口径系统性偏低
同一个检查点 REL_s6_best.pt:检查点复评 75.0% vs 训练日志"≤1 条"。
⇒ 从此所有"她学会了几条"的读数只允许来自【检查点复评】。
#五、★ 状态与元事实
- ★ 今晚改了 21 次结论,其中第 183 条教训复现 2 次
- ★ 修了 20 处实现层错误,含一个让两个训练同时跑的闸门竞态 (已改成 OS 级原子文件锁,端到端验证通过)
- ★ 交付 10 个零 GPU 已验证工具
- ⏳ 在跑:
RLO_s8、GN_s4(并发,已标注);排队:LRD/IMO/FRZ/FT/GN2P