§46 2026-10-04 凌晨 02:35:四个干预的判定,以及两处更正

· ★★★★★★★ 2.5k 字 · 源文件 进度.md 第 2481 行起 · discipline ruler selfcorrect

★ 这是 §45 之后的一轮完整收口。★ 所有读数用权威口径 eval_f2_all_checkpoints.py。 ★ 主读数按铁律 = 末点相对最好点(三个数一起报)。 → 完整:PROJECT.md §28、journal/TASK_BOARD_LIVE.md、journal/CONCLUSIONS_LEDGER_WITH_QUALIFIERS.md

#一、★★★★★★★ 判定表(四个干预)

干预★ 判据(跑前写死)★ 结果★ 判定
★★ W2 --rl-scale 0最好点提高★ +29.5pp(p = 0.0000,3 种子)<br>★ 串行组内 +12.0pp(p = 0.0106)★★★ 成立
★★ V1 --freeze-trunk末点 ≥1 条在 ≥2 种子★ FT_s4 末点 100%<br>★★★ FT_s6 末点 21.9%(且最好点 60.4% < 起点 75.0%)★★★ 不成立(1/2)
★★ T5 --restore-best-at-end末点 == 最好点在 ≥2 种子★ FRZ_s1:38.5% → 38.5%(参数差 0),而未干预末点 = 0.0%<br>★★★ FRZB_s6 vs FT_s6:9 个快照逐位相同,末点 21.9% → 60.4%★★★ 成立(2/2)
IMO验"v 是否被 π 抬高"★ 未跑完(RLO 没开 --gn-split ⇒ 无法离线替代)★ 记账

#二、★★★★★★★ T5 的判定比"成立"更强(今晚最干净的一条)

★★★ FRZB_s6 与 FT_s6 的【全部 9 个快照逐位相同】 (44.8/40.6/25.0/25.0/41.7/40.6/21.9%),只有末点不同(21.9% → 60.4%), 且 FRZB_s6.pt 与 FRZB_s6_best.pt 的参数差 = 0。

★★★★★ -> 所以 --restore-best-at-end 是一个【纯记账修正】: 它不改变训练的任何一步,收益完全来自"你原本会把一个好检查点丢掉"。 ★★★ 收益 = 原本的损失量(本例 +38.5pp),而不是"它产生了新能力"。

#三、★★★★★★ 两处更正

#★ 早先的说法★ 更正
①★★ "末段参数更新是最大的一段 ⇒ 它导致丢失"★★★ 不成立:FT_s4(变好)与 FT_s6(变差)的末段移动速度几乎相同(0.000575 vs 0.000588 / 100 步,差 2%);中段速度差 2–8 倍。★ 且 FT_s4 自己形状是 U 形(首段最快 0.000944)
②★★ "冻主干是累积器、全参是替换器"★★★ 只在 FT_s4 上成立;FT_s6 是"早峰后衰退"(最好点在步 1)⇒ 降级为单种子机制假设

#四、★★★★★ 今晚新增的三条 A 类(可无条件引用)

#★ 结论★ 证据
★★★--restore-best-at-end 保住最好点(纯记账)9 快照逐位相同;参数差 0
★★★并行协议不改变训练轨迹790 步逐步损失曲线差 = 0.0000e+00
★★★冻主干把"读出方向被转走"从根上消除冻结时旋转角 0.00°(四个)vs 全参 7°–85°

#五、★★★ 下一步

#★ 干预★ 它测什么
1★★ LRD --lr-end 0(在跑)★★ 末段步长是否是元凶(决定性判别:--lr-decay-frac 0.5 只影响后半段)
2★★ FT2_s6★ 那个 60.4% 的点是否可改进
3★★★ --rl-scale 0 + --restore-best-at-end★★★ 今晚两条最强修法叠加

#六、★ 教训

#★
245★★★★★ 一个开关用【A 口径】选点、而你用【B 口径】评价时,那个"最好点"在 B 口径下可能很普通 —— 而修法的上限就是那个普通的值。
246★★★★★ 一个"零成本的报告层修正"的收益完全来自"你原本会丢掉多少",而不是"它提升了多少"。
247★★★★★ 当一个开关【不改变任何中间状态】而只改变最终产物时,它就是一个纯粹的【记账修正】,应当被这样报告。
244★★★★★ 一条"某段变化最大"的观测,只有在【与一个变好的对照组比较】之后,才能当成"那一段导致变差"的证据。
242★★★★★ 一个干预若在第一个种子上【大幅改善】,最危险的解读是"它有效" —— 因为那可能只是"第一个种子恰好可改进"。

← 返回《进度.md》目录