research: publish AttnRes forward training study

This commit is contained in:
wuyang
2026-07-30 18:41:18 +08:00
parent 7ea91caabb
commit f177fa676d
47 changed files with 192164 additions and 192 deletions
@@ -0,0 +1,89 @@
# Round 08 runner / analyzer 实现审阅与处置
审阅日期:2026-07-30
Grok 会话:`019fb1f0-bb24-7202-8123-295edda7518f`
身份:**正式文件完成前的外部模型只读实现审计,不是结果或论文证据**
## 1. 审阅边界
Grok Headless 只读检查:
- 冻结协议与 manifest;
- `train.py` / `verify.py` / `analyze.py` / `run_matrix.py`;
- 父 runner 的 salt、schema 与 DepthMixer 算术路径。
明确禁止读取 Round 08 raw formal results、运行训练、修改文件、web search 与 subagents。
## 2. 对正式 4×3 路径的确认
审阅确认:
- 新 protocol ID 没有进入父 `window_start` salt;
- selected 路径用 constant-zero FP32 logits 和父 `softmax+einsum` kernel;
- 非空 selector 的 query / key norm hook、AdamW state 与 final=initial gate 自洽;
- historical pairing 比较的字段在父 JSON 中真实存在;
- replay payload 正确排除 run kind、timing、path、parent self hash 与 GPU/version metadata,
同时保留模型、optimizer、diagnostics、history、selector 与 reachability;
- analyzer 强制 4×3 identity、step 8,000 主判定、1-based layers 21–25、finite/positive、
`D=(ref-variant)/ref`、BPC `variant-ref` 与 descriptive `I67`;
- 12 formal + 1 replay、65,536,000 bytes/cell 与最大两进程算术正确。
没有发现会改变正在运行的四个非空 formal variants 数值语义的 blocking error。
## 3. Blocking finding:smoke-only empty selector 的空审计
`learned_reference` 直接调用父 `forward`,没有递增 wrapper 的 visit counters。因此:
```text
forward_calls = 0
all depth/output visits = 0
visit_gate = all(0 == 0) = true
selected reachability = all([]) = true
```
这不会影响四个正式变体,它们全部是非空 selector;而 empty selector 另有 20-step
parent-equivalence gate,模型/optimizer/evaluations/diagnostics/history/hash 已 exact。
但 `forward_intervention.passed` 本身不能在修复前被当作 learned census 证据。
处置:
- formal matrix 完成后,删除 `selected_indices` 为空时的父路径 early return;
- 让 empty selector 也走同一 copied forward,其中 `mix` 对 64 个节点逐个调用父
`DepthMixer.forward`;
- 加入 `forward_calls > 0`;
- 重跑 step-0、parent smoke、wrapper smoke 与 parent equivalence;
- 只有 copied path 仍逐字段 exact 才保留。
这项修复只强化 smoke audit,不更改任何正式 variant 的 selector 或 forward。
## 4. Non-blocking findings 与处置
| finding | 处置 |
|---|---|
| `smoke_compare` 整体比较 `manifest.path` | 规范化 path 后比较 scientific manifest fields |
| unselected gate 额外要求 optimizer state | 保留为强实现 gate,但在文档中标成 protocol 之外的额外审计,不用于科学 status |
| GPU/version 差异只有 `metadata_equal`,没有 warnings 数组 | aggregate 增加显式 metadata warnings |
| `run_matrix` 失败后只 terminate、不 wait/kill,invalid file 会阻塞重跑 | 加入 terminate→wait→kill 清理,并在 cell failure 时标明 exact invalid target |
| step-0 CE 只比较 Python float | 追加 scalar tensor SHA-256 |
| `EXPECTED_SOURCE_COUNTS` 未使用 | 用于 runner↔manifest 交叉校验 |
上述修订不读取结果、不改变冻结阈值或主公式。
## 5. 矩阵结束后的处置结果
13 个单元全部退出后才应用上述修订;四个正式非空 selector 的 raw 文件未被重写。
修补后的前置闸门结果:
- step-zero 五个 variant 的 logits、loss tensor、evaluation 与 diagnostic exact;
- smoke-only learned wrapper 实际执行 `39` 次 forward,64 个 depth mixer 与
output mixer 的 visit census 全部非零且 exact;
- parent 与 wrapper 的 architecture、seed、schedule、model、optimizer、hash、
evaluation、diagnostic、history、gradient gate 与 scientific environment 共
15 组字段全部 exact;
- primary smoke 的 selected 参数仍为 0 hook、无 optimizer state、final=initial;
- unselected optimizer-state 条件继续作为额外实现闸门,不进入科学 status。
结果后 Grok 会话 `019fb28b-a9e1-7643-8e43-06f5e16a2077` 在只读 sandbox 中独立
复算 13 个 raw、三个 historical references 与 aggregate,报告
`blocking_errors=0`、`status_confirmed=true`、`replay_confirmed=true`。详细数字与
claim boundary 见 `research/K3_ATTNRES_FORWARD_TRAINING_AUDIT.md`。