23. 2026-10-03 自主工作期(二):修尺子,以及一个被推翻的收口结论

· ★★★★★ 3.8k 字 · 源文件 PROJECT.md 第 4701 行起 · ruler arch optim ground selfcorrect

⚠️ 本节记录的是"上一节的收口结论被推翻"的全过程。 它比上一节更重要,因为它说明了那个结论为什么不够硬。

#23.1 ★★ 起因:上一节的结论依赖两个有缺陷的量

#缺陷现场
1★★ "到达"的容差正好等于一步的位移(ARRIVE_PX = MOVE_PX = 4.0)★ 摇杆归零时方块被留在 4.52 px,而阈值是 4.0 px —— 半个像素决定判定
2★★ "撤掉进度条"根本不是撤掉★ 进度条累计 0.75,而关掉后回合末补 arrive_bonus = 1.0 —— 同量级

★ 修法:--arrive-px(做成参数,这次用 12px = 3 倍)+ --arrive-bonus 0.1(是进度条的 13%)。 ★ 三层端到端验证:启动打印生效值 / 到达锁存阈值精确随容差翻转 / 所有构建路径一致。

#23.2 ★★★★★ 修好之后的读数:两条臂都守住了

臂配置最会的时候训练结束时比值
F2_A有老师(β→0.4)40.6%31.2% / 1.69 格1.30 守住
★★ F2_B★ 无老师(β→0.0)★ 44.8% / 1.90 格(就是末点)44.8%★★ 1.00 守住
随机地板—5.6%——

★ 对照上一节:同配置的 B 当时是"最好 35.9% → 末点 0.0%"。

★★★ -> 上一节那句"她学得会但留不住"因此【被推翻或至少大幅收窄】。

#23.3 ⚠️ 但"是哪一处修复救了它"分不开

★ 这次同时改了尺子(arrive_px)与【训练条件】(arrive_bonus)。

★★★ -> 这违反"一次只改一个变量",必须写在结论里。 ★★ 可复用的做法:把"修测量"与"改条件"分成两个目标; 不得不同时做时,把这个混淆写在结论的【第一行】。

#23.4 ★★★★ 一个我自己发现的设计缺口

四臂的进度条都是"第 600 步才关" → 每一臂都先享受了 600 步的密集信号。

★★★ -> "撤掉密集信号之后能不能学会"这个问题,四臂里一条也没测到, 而报告里把它叫做"支架撤除实验"。

★★ F2_E(--shaping-off-at 0 + β→0.0)补这个缺口。

#23.5 ★★★ 她学到的一直只是【两条】指令(⚠️ 本节结论已被更正,见 §24)

指令F2_AF2_B上一轮 C
左100%100%0%
下25%79%100%
上0%0%100%
右0%0%75%

⚠️⚠️ 本节结论已被更正(同日,§24):上面那张表是【末点】读数。 而【最好点】的读数显示她做到过 3 条与 4 条 —— C_SC_nobar_best 是 上 100% / 左 62% / 右 79% / 下 100%(85.4% / 0.96 格)。 ★ 所以"只有两条"只对末点成立,对能力【不成立】。 → 见 journal/CORRECTION_SHE_LEARNED_THREE_AND_FOUR_COMMANDS.md。

★★★ ->(本节原结论,现仅对末点成立)"哪两条"会换,"只有两条"一致。

#23.6 ★★★ 更正:§21.5 那条"完美策略到位 0 次"是我的控制器有缺陷

★ 修正后的策略在每个容差下都是 100.0%。 ★ 错因:它把"命令摇杆 0"当成"停下",而方块会停在离目标 21.44 px 处。 ★ 这是"坏工具指控被测对象"那一族的第 4 例。

#23.7 ★★★★ 本节的可复用教训

#教训
★ 135★★ "命令一个零动作"不等于"停住" —— 零动作会落在一个由动力学决定的位置上。
★ 136★★ "参数不能取 0"这类理由,要用【发放点计数】验证,而不是引用注释。
★ 137★★★ 修好一把尺子后要问:"我原来的结论里,哪一部分【不依赖那把尺子】?"<br>(本例:到位率依赖容差,而格距不依赖)
★ 138★★★ "用了中途点"这个错会在【两个相反方向】上犯 —— 提前宣布失败,与提前宣布成功。<br>而提前宣布成功更危险,因为没人会去复核好消息。
★ 139★★★ 报告的永远是【读数 − 基线】,而不是读数本身。<br>(本例:她的峰值一字不差 47.9%,而地板从 1.4% 涨到 5.6%)
★ 140★★★ "修好测量工具"可能同时改掉【尺子精度】与【奖励幅度】—— 后者是训练条件,不是测量。
★ 141★★★ 一个诊断的证据来自【另一个任务】时,要问它在【当前任务】上是否也是约束。<br>(记忆短在序列任务上是约束,在接地任务上不是 —— 后者没有延迟期)
★ 142★★★★★ "中途撤掉 X"与"从来没有 X"是两个不同的实验;<br>只做前者会让你以为你测了后者。
★ 143★★★★★ 判断"某模块能不能外包给一个通用模型"时,最硬的判据不是"输出像不像",<br>而是【被测主体能不能表示它自己说的话】。

#23.8 ★★★ 新增的工具(都先跑过已知对照)

工具作用
tools/measure_floor_corrected_policies.py修正后的盲策略地板(含"朝目标"必须先证明它接近 100%)
tools/measure_gn_share2.py + read_gn_share_json.py各损失项的梯度范数份额("谁在主导训练")
tools/eval_f2_all_checkpoints.py最好点 + 末点 + 每个快照的同批世界复评(三数报)
tools/check_run_identity.py从跑次自己的横幅核对参数并逐项 diff(治"用记忆代替核对")
tools/scan_before_sharing.py对外分享前的泄露扫描(凭据/路径/邮箱/IP)
tools/list_chain_arms.py从启动器文件解析链包含哪些臂(治"检测器匹配自己")
tools/goal_supervisor.py目标契约自检 + 下一个目标提案(每个目标轮次结束跑一次)

#23.9 ★★★ 一个设计决定:嘴巴是她自己打字,不是 LLM(用户定)

★ 用户否掉了"用 LLM 当嘴巴",理由是:

"LLM 会说出她没学过的东西,她自己可能听不懂自己在说什么。"

★★★ 这个理由比统计判据(T/F)更硬:

判据性质
T(固定 prompt 只改状态 → 输出必须变)★ 统计性,可绕过
★★★ 同一性:她说的每个词必须是【她自己的符号状态能表示】的★★★ 结构性

★ 接口事实:N_KEY=77,含 a-z/0-9/空格/退格/回车,MAX_LINE=16; 认字任务的奖励就是"编辑距离"→ 她已经在打字。 ★ 所以"打拼音"(ni3 hao3,全 ASCII)不是新增能力,而是复用她唯一的符号输出通道。

★ 两条实现约束:① 嘴巴有自己的键输出,不与人共享; ★★★ ② 它的梯度【不回流入核心状态】 —— 否则她会为了"说得通顺"而扭曲内心。 ★ 详见 journal/DECISION_MOUTH_IS_HER_OWN_TYPING_NOT_AN_LLM.md。


← 返回《PROJECT.md》目录