25. 2026-10-03 自主工作期(三):测量工具被审计,而我的一个"发现"被撤回

· ★★★★★★★ 2.8k 字 · 源文件 PROJECT.md 第 4872 行起 · discipline ruler ground selfcorrect

★ 本节的主题不是"她学会了什么",而是【我的尺子有多可信】。 而它的结论是:两个真缺陷、一次撤回、一次反向否证。

#25.1 ★★★★★ 两个真缺陷(都影响过结论)

#缺陷后果★ 修法
1★★ --snapshot-every 的快照【不存判定条件】(arrive_px/arrive_bonus),而"最好点"与"末点"都存了★★ 对 _snap*.pt 复评时只能回退到默认值 → 同一个快照在不同工具下判定不同。而快照正是判断"最好点出现在什么时候"的东西★ 存全三个字段;并回填已有 126 个快照(值从各跑次自己的日志横幅读,不是猜;只补缺失键)
2★★ train_cmds 在 188/188 个跑次上解析为 None★★ WebUI/审计工具看不到"这个跑次用几条指令训练";而 2 指令判决实验全靠它★ 逐行 match + 优先用已解码的「训练指令集」行 → 现在 0/188

★ 缺陷 2 的两个叠加原因(都值得记):

text
① 正则要求行尾紧跟 `]`,而实际行后还有「留出(判据 4)['左','右']」
② 改成对整篇用 `^` 之后踩到引擎行为:
   txt 以 '\n' 开头时 `^\s*指令` 匹配不到第二行,而同一正则在 txt[1:](以空格开头)上能匹配

★★ -> 所以稳的做法是【逐行 match】,而不是对整篇用 ^。

#25.2 ⚠️⚠️⚠️ 一次撤回:一个"听起来很有道理"的解释

★ 我写过(并差点当成重要发现):

"训练监控的到位率是采样,独立复评是贪心,所以两者差 2 倍、方向相反。"

而读源码后发现:evaluate() 行 1034 用的是 sigmoid(...) > 0.5 —— 两者都是贪心。

★ 真因是:我自己的探针脚本忘了设 arrive_px(跑在默认 4.0 上,而检查点是 12.0 训出来的)。 她的最终位置距目标 6.12px ⇒ 在 12.0 下到达、在 4.0 下不到达 —— 那个"矛盾"是我造的。

→ journal/RETRACTION_ARRIVAL_GAP_WAS_MY_OWN_BUG.md

#25.3 ★★★★★ "到达"有两把尺子(本会话被它坑了两次)

尺子定义6.12px 时的判定
★ 到达判定欧氏 dist_px <= arrive_px(12.0)到达
★★ 环境自报 _dist_cells()曼哈顿"格"距离(CELL_H = 14.4px)★ 0 格 ⇒ "在目标格里"

★★★ -> "她在目标格里"与"她到达了"不是同一件事。 复评工具现在两者并排打印,且打印它实际使用的全部判定条件。

#25.4 ★★★★★★ 判决实验:"干扰假设"被反向否证

组最好点条数nFisher「至少 1 条」
4 指令3,1,3,1,155/5
2 指令0,0,0,0,0,06★★ 0/6,p = 0.002

★ 减到 2 条指令让她【明显更难学到任何东西】—— 而干扰假设预测的是相反方向。 ★ "设置坏了"也被排除:两组训练信号同构(sup 都在步 1300 归零、ent 都稳定 −0.24)。 → journal/RESULT_INTERFERENCE_HYPOTHESIS_REFUTED_IN_REVERSE.md

#25.5 ★★★★ 新增的机制(不是"再加一条教训")

工具作用
★★ tools/supervisor/workqueue.py待办登记册:每项写明 gpu 需求 / 依赖 / 可核对的完成判据;在我空闲时叫我做下一件事
★★★★ tools/supervisor/gate.py把修过的每个 bug 变成一条可重跑的核对(7 组)—— 用户批评的正解:"记录教训与防止重犯之间没有机制连接"
★★★ tools/supervisor/calibrate_gate.py校准闸门:故意弄坏两处,确认它真的会失败(基线 0 → 弄坏被抓 → 恢复后回 0)
★★ tools/supervisor/audit_static_silent_failures.py静态审计"算了但没落盘"与 except: pass

★ 闸门从 76 项失败收敛到 0:把它限定在【当前在用的 7 个 .ps1】 —— 用今天的标准回测 60 个历史脚本是噪音,而噪音会淹没真问题。

#25.6 ★ 本节的教训(161–166)

#教训
★ 161★★★★★ "两个工具报同一个量却给出不同值"时,先读【它们各自怎么算的】,不要先怀疑其中一个坏了。
★ 162★★★★★ 解释越漂亮,越要先测。 一个"听起来很有道理"的解释比一个明显的 bug 更危险 —— 因为它会让我停止查。任何机制解释都必须附带一条可直接测量的预测。
★ 163★★★★ "看起来差很多"不能替代统计检验;n<10 时用 Fisher。并且要把【方向】写进结论 —— "没差别"与"反方向"是两种结果。
★ 164★★★ 日志里的"到达率/成功率"必须注明【动作模式】与【判定条件】,否则不同工具会给出不同读数而看起来像数据矛盾。
★ 165★★★ 回滚/替换编辑时,先用工具核对"真实文本",不要凭记忆。 我这次取错过备份、也写丢过字典开头。
★ 166★★★★★ 一个"恒为真"或"恒为假"的核对与没有核对一样没用。 我写出过一条恒为假的检查(搜全角括号而源码是转义写法)—— 校准(故意弄坏)是发现它的唯一办法。

← 返回《PROJECT.md》目录