十八、10-02:追查结案 —— 那不是"她退化了",是我们【量错了】
1.6k 字 ·
源文件 进度.md 第 657 行起 ·
goal ruler selfcorrect
#★★★★★ 结论(一句话)
她一直都能把字写对(走到 100%)。 09-27 的一次改动让【评估时回合在打对那一刻就结束】, 于是我们量到的是"被截断"的数字(0.2 左右),而不是她的能力。
#证据链(全部同种子、同数据、只差代码)
| 代码状态 | stop_on_correct | 步300 | 步400 |
|---|---|---|---|
bf8eb3d / 914f032(09-27 之前) | False | 0.917 / 0.969 / 0.938 / 0.927 / 0.979 | 全部 100% |
19ee290(09-27 15:09) | True | 0.250 / 0.219 | 0.333 / 0.438 |
| ★ 只删掉那两行传参 | False | ★ 0.917 | 100% |
| 当前代码(12 个种子) | True | 0.115 ~ 0.323 | 0.35 ~ 0.44 |
#★ 元凶的确切一行
class="tok-com">## 19ee290 之后(错的):
stop_on_correct=not a.play class="tok-com"># a.play=False 时 -> True != ReadScreen 的默认 False
class="tok-com">## 现在(已修):
stop_on_correct=False含义:stop_on_correct=True = "打对之后立刻结束回合"。
于是终点量到的不再是"她把这个字写完了吗",而是别的东西。
#★ 这也解释了那个一直很怪的读数
"认字(第一笔对)两边都是 100%,而整字只有 0.2~0.4" —— 因为她本来就认得出,只是回合在打出第一笔(打对)时就结束了。
#★★ 我错在哪(记下来,别再犯)
我从未【求值】
not a.play。 我把它读成"和默认等价的表达式", 而它在play=False时是True—— 与默认恰好相反。新铁律: · "没影响"的标准是【删掉它测过】,不是【读代码觉得它对】 · "看似等价"的表达式必须【求值】,不能靠读
#★★★ 影响面(这两天哪些读数不能用)
| 受影响 | 说明 |
|---|---|
★★★ 今天全部 12 个基线(BASE_s* / PH_s*) | 都是"被截断"的量 |
| ★★★ 09-27 15:09 之后的所有认字跑次 | 同上(含 var_s2) |
★ var_s0 / var_s1(1.0) | ★ 在改动之前跑,所以是真实的 —— 她是真的会写 |
★ 接地线(exp41) | 待查有没有同型问题 |
#✅ 怎么撤回
class="tok-com">## 一行:experiments/exp31_read_rl.py 第 1704 行附近
stop_on_correct=False class="tok-com"># (原为 not a.play)#★ 下一步
| # | 做什么 |
|---|---|
| 1 | 验证修复(FIX_s2 应 ≥0.80) |
| 2 | ★★★ 重修基线(好配方 + stop_on_correct=False,≥3 种子)—— 之前的 MDE 要重算 |
| 3 | 然后才做原计划的条件 (3)(4)(5) |
| 4 | 查 exp41(接地线)有没有同型问题 |