十五、 真相反转(同一天内,第二十次更正)

★ 1.7k 字 · 源文件 进度.md 第 493 行起 · arch read selfcorrect

#我发现:她其实会写,而我今天测的是一个"坏掉的配置"

检查点有回显★ 无回显"抄"的贡献留出(无回显)认字
var_s0(早先那条基线)1.0000★★ 1.0000★ 0.00000.45831.0000
P0v2old0.52080.01040.51040.00001.0000
P0v2new0.62500.01040.61460.00000.9896

★★★ var_s0 不需要回显也会写(1.0),而且在没见过的字体上还有 0.4583。 → "照抄屏幕"不是这个任务的缺陷 —— 是我把配置搞坏了。

#★★★ 我错在哪(这是今天最该记的一条)

var_s0 和我今天用的配置有 12 个参数不同,而我只看见了 1 个:

参数var_s0(好的)我今天(坏的)性质
★ pred_coef1.00.0★★ "预测下一刻"这个自监督项被【整项关掉】
★ echo_drop0.50.0★★ 回显增广被关掉
★ emit_cost0.150.0出手代价被关掉
batch256128★ 我为了"固定 batch"选的值
steps7001400—

★★★ 我把两条差 12 个参数的跑次拿来比,还把结果归因给"回显"。 这正是我一整天都在警告自己的那个错(一次只改一个变量)—— 而我在最关键的那次比较上又犯了。

#★★ 而最可疑的真凶是 pred_coef

"预测下一刻"这个辅助目标,正好就是"记住目标并保持"所需要的压力。 把它关掉,"靠回显抄"就变成了捷径 —— 因为没有别的东西迫使她记住。

★ 这与另一个读数方向一致:认字 两条都是 ~1.0(她认得出), 但"写完整"靠的是【保持】,而保持正是 pred_coef 施加的压力。

#★ 这意味着:今天几乎全部结论都要重估

今天的结论状态
units 加 4 倍没用⚠️ 在坏配置上测的
线性 vs 非线性读出无差⚠️ 同上
pi-init-std 无效应⚠️ 同上
"她写不完一个汉字"★★ 在 var_s0 上:她能写

#★ 两个新工具(这轮最值钱的产出)

工具作用
★★ tools/eval_clean.py独立评测:跑完训练直接测检查点,一次测完"有/无回显 × 训练/留出"<br>★ 为什么需要:曲线 json 里只有"能作弊"的那一版读数 -> 只看曲线必然被带偏
★ tools/diff_two_runs.py比较两条跑次前,先把所有不同参数列出来(12 个差异里我只看见了 1 个)

#正在跑:复现 var_s0 的配方(判据:无回显 acc 是否又是 ~1.0)

★ 下一步一律一次只改一个变量:pred_coef 1.0→0.0(最可疑)→ echo_drop → batch。 ★ 而全部在无回显下取数(用 eval_clean.py,不看曲线)。


← 返回《进度.md》目录