Source: docs/experiments/EXP-3D-CAJU-HEADROOM-V1/PROTOCOL.md · Plain text

EXP-3D-CAJU-HEADROOM-V1 预注册协议(CAJU-V1 Gate 0)

0. 范围

1. 审计结论(详见 code_audit.md)

2. 数据

3. 片段

4. 动作(锁定)

动作 TTT 步数 状态
A0 OFF 0 CACHE 状态,不做优化
A1 SHORT 10 同一条 TTT 轨迹的第 10 步状态
A2 FULL 100 第 100 步状态,即 Core B

5. 效用、成本与损害

6. 策略

策略 定义
FIX 最佳固定动作:在 CAJU_SEL 上场所平均效用最高的动作,平局取更便宜的。选择结果写入 fixed_action_selection.json,记录哈希后才允许读 CAJU_EVAL 的真值。
ORACLE 逐片段 oracle:事后为每个片段选效用最高的动作(平局取更便宜的)。这是事后上界,不可部署。
XORACLE(主判定) 交叉查询 oracle:用一个查询的效用选动作,在另一个查询上评价,两个方向取平均。它去掉了"利用单个查询帧的特异性"带来的乐观偏差,更接近只看片段级信息的选择器能达到的上限。
VORACLE 场所 oracle:同一场所的两个角色用同一个动作(事后选择)。
XROLE 交叉角色:用一个角色的效用选动作,在另一个角色上评价。
SUFFICIENT / XSUFFICIENT 最省充分策略:在效用不低于 U(FIX) − 0.0005 的动作里选最便宜的。XSUFFICIENT 是交叉查询版本,用于计算节省分支。

7. Gate 0 判定(锁定)

主判定 QUALITY_HEADROOM_SUPPORTED:在 CAJU_EVAL 的场所上看 XORACLE − FIX,以下四条全部满足: 1. 均值 ≥ 0.0010 AbsRel。这是实用最小值:在真实数据上,Core B 读出中 FULL 相对 OFF 的全部收益约为 0.003,0.001 大约是它的三分之一。 2. 场所 bootstrap(项目统一实现,10,000 次,seed 20260928)的 95% CI 下界 > 0。 3. 每个留一场所均值都 > 0。 4. 正贡献中 top-1 场所的占比 ≤ 0.5。

计算节省分支 COMPUTE_HEADROOM_SUPPORTED:只在主判定不成立时检查,以下全部满足: - FIX 有成本; - XSUFFICIENT 的平均步数 ≤ FIX 步数的 50%; - 质量损失 FIX − XSUFFICIENT 的均值 ≤ 0.0003,且 CI 上界 ≤ 0.0005; - 没有任何成本 ≤ FIX 50% 的固定动作已经在 0.0005 以内。如果只有这一条不满足,记为 NOT_ESTABLISHED_FIXED_RULE_SUFFICES,意思是固定规则就能省计算,不需要学习。

其余情况:NOT_ESTABLISHED,输出 NO_USEFUL_DYNAMIC_ACTION_SPACE,停止 Utility MLP。

GATE1_ALLOWED:只有 Gate 0 通过、并且 JEPA 特征存在时才为 true。本轮 JEPA 特征不存在,所以无论 Gate 0 结果如何都是 false。如果 Gate 0 通过,只允许准备 non-JEPA 预测器(B2–B4),并给出最小 JEPA 特征提取器的设计和训练成本,由用户决定是否继续。

8. 必须报告的次要量(描述性)

9. 信息契约与完整性(对应任务书第 13 节)

项 内容 检查方式
1 未来查询真值不进入任何动作 回放只读 7 个到达帧,每个片段审计所有打开的文件,封存中写明 query_depth_read=false
2 未来查询真值不进入 JEPA 特征 没有 JEPA 特征
3 未来查询真值不进入预测器特征 更新前特征只来自 7 个到达帧(已审计)
4 反事实分支来自同一初始状态 OFF = CACHE;SHORT / FULL 是同一轨迹的第 10 / 100 步
5 各动作获得相同的到达观测 每个片段只编码一次
6 OFF 保留正常缓存与融合 OFF 是 7 视角 CACHE
7 R7 对所有动作相同 每个目标视角一个几何封存,所有动作共用
8 TTT 只读到达帧 已审计
9 优化器状态不跨分支污染 每个片段新建 Adam;SHORT 是只读快照;与 V1 的独立运行做等价检查
10 扫描之间完整重置 每个片段重新编码,记录 CACHE 指纹
11 动作集合不随开发结果改变 动作集合在锁中
12 opacity 阈值不随真值改变 阈值在锁中
13 同一场所的扫描不当作独立单位 统计单位是场所
14 部署时只执行所选动作 Gate 0 不部署选择器,不适用
15 在线成本包含 JEPA 与 MLP 本轮没有 JEPA / MLP,不适用
16 结果可由原始预测重建 打分从封存的 npz 重算;分析运行两次,逐字节一致

10. 计算预算

11. 执行顺序

  1. root
  2. geometry
  3. test
  4. rehearsal(根目录外,1 个片段)
  5. lock
  6. pilot(GPU)
  7. pilot-score
  8. formal(GPU)
  9. score:依次为 sel → eval → analyze(两次)→ finalize

12. 修订规则

修订 1(2026-10-14,在正式回放之前,没有读取任何正式真值)

触发:试点中,预测层面的引擎检查有两项未通过(见 equivalence/equivalence_report.json): - SHORT 快照与 V1 独立 10 步运行相比,单像素 depth_z 的最大差为 0.0033 m;阈值是 2 × 底线 + 1e-6,底线为 0.0014 m,阈值约 0.0029 m。 - CAJU_COMPAT 上,FULL 与 V3 封存的 TTT_m1 相比,单像素最大差为 0.353 m;阈值用的是 PILOT 场景的底线,2 × 0.145 m。

其余检查都通过了: - OFF 与 V1、与 V3 都逐位一致; - FULL 与独立运行的差异在底线以内; - 效用层面三个动作都在 2 × 底线 + 1e-6 以内,例如 FULL 回放对独立运行最大 1.1e-5,独立运行之间 7.8e-6。

诊断:见 audit/amendment_1/nondeterminism_diagnostic.py 及其输出 nondeterminism_diagnostic.json,不读任何真值。 - V1 的 TTT 在 GPU 上本身就不确定。同一进程中两次独立运行,10 步后像素差均值 1.2e-7 m、最大 1.4e-3 m;100 步后均值 4.8e-4 m、最大 0.145 m。 - 回放与独立运行之间的差异分布,和两次独立运行之间的差异分布相同:

动作 指标 回放对独立运行 独立运行对独立运行
SHORT 像素差均值 1.19e-7 1.18e-7
SHORT 像素差 p99 9.6e-7 1.2e-6
FULL 像素差均值 4.66e-4 4.75e-4
FULL 像素差 p99 6.5e-3 6.7e-3
SHORT Core B 读出相对差均值 3.9e-8 4.1e-8
FULL Core B 读出相对差均值 6.0e-5 6.0e-5
- 原检查的问题:单像素最大值是极值统计,用一个极值去比另一个极值,本身很不稳定。COMPAT 的阈值又来自另外的场景,尺度不同。
- COMPAT 的实际差异:FULL 与 V3 的 Core B 相对差均值 1.7e-4、p99 2.4e-3,与运行间的非确定性同一量级;OFF 与 V3 逐位一致。

决定: - 引擎:不修改任何引擎代码。 - 检查结果:预测层面的单像素最大值检查如实记为未通过。能否进入正式回放,改为同时看两项: 1. 已预注册的效用层面检查,已全部通过; 2. 本诊断的分布比较:回放对独立运行的 Core B 读出相对差,均值和 p99 不超过两次独立运行之间的 1.5 倍,且 OFF 与 V3 逐位一致。也已通过。 - Gate 0 不变:数据、动作、效用、策略、阈值、分析全部不变。 - 非确定性的影响:运行间非确定性对单个片段效用的影响最多约 1e-5,比主判定阈值 0.001 和片段带宽 0.0005 小两个数量级以上,不可能制造或掩盖 headroom。 - caju_finalize.py:相应修改。完整性记录保留原始检查结果,加入本修订的分布检查;其余检查都通过时,状态记为 PASS_WITH_AMENDMENT_1。新的哈希记在 audit/amendment_1.json。 - 正式回放:自动链在检查失败后按设计停止。正式回放在本修订记录之后手动启动,命令就是锁定的 caju_jobs.sh formal。