十四、10-01 最后:找到了真正的问题 —— 她一直在"照抄屏幕"

1.8k 字 · 源文件 进度.md 第 415 行起 · ground read

#★★★★★ 同一检查点,只改一件事(屏幕上画不画已打出的前缀)

条件整字正确率认字
有回显(evaluate 的默认)62.5%98.96%
★ 无回显(与训练同条件)★ 1.0%98.96%
留出字体 + 无回显0.0%79.17%

★★★ 掉 61.5pp。

她不是在"看字然后写出来",她是在"看屏幕上已经打出的前缀,接着抄"。

(而"认字 100%"是真的 —— key_first_ok 两种情况都一样,说明她确实认得出。但"写完整"靠的是回显。)

#★★ 而这正是这个项目自己记录过的那条最贵教训又回来了

项目文档里早写着:

§19 那条「照抄屏幕」的诊断(接地线里发现的,用 --echo-drop 治好了)。 ★★ "语言学习里,'复述'会以同样的形式回来 —— 而且更难查。"

它回来了。而且比上次更难查,因为: 训练时 --no-echo 已经开了(训练条件是对的)—— 但【评估】的默认是"有回显",所以所有报出来的数都来自一个她能作弊的条件。

#★★★ 这意味着什么(影响今天几乎全部结论)

读数修正
整字 43~62%★ 那是"有回显时她能抄到 60%"
units 加 4 倍没用⚠️ 在能作弊的条件下测的,要重测
线性 vs 非线性读出无差⚠️ 同上
P0 消融无效应⚠️ 同上
留出字体 0%★ 无回显时她本来就不会

#★ 还有一个自证的细节

gate_open_when_need("该出手时门开不开"):

条件值
有回显0.023(几乎一直关着)
无回显0.234

★ 有回显时门几乎一直关着 —— 因为屏幕已经把字画出来了,她不需要再按。 门的行为本身就在告发"她在依赖回显"。

#✅ 已做的改动

项内容
改什么新增 held_ne(留出字体 + 无回显)评估;write_live 加 held_ne_acc
为什么训练是无回显,评估必须与训练一致(否则测的是"能不能抄")
影响面★ 只新增,默认行为不变,旧曲线仍可复现
怎么撤回git revert;或不管新键
判据✅ 单变量对照已跑(-61.5pp)

#⚠️ 遗留(诚实)

#遗留
1★ held_ne_acc 只进 live 看板,还没进 curve.json ——<br>我试过一次插错了位置(打中了"占位字典"而非赋值处,导致崩溃),已回退。留给下一轮。
2★★ 必须在无回显下重测那三条被污染的结论(units 扫描 / 读出线性-非线性 / pi-init-std)
3★ 诊断"无回显时她为什么只有 1%" —— 那才是真正的任务

#★ 我这一轮犯的错(第 N 次同源)

我以为实际
grp.typed 存在EnvGroup 不转发它
argmax=True 是"贪心评估"与权威 evaluate 走的不是同一条路
按关键字 "acc_eval" 能定位赋值处★ 它出现两次(占位 + 赋值),我打中了占位

★★★ 对第三点:凡按关键字找位置,必须确认它【只出现一次】或带上行号。


← 返回《进度.md》目录