anhtld commited on
Commit
df7a456
·
verified ·
1 Parent(s): 85b7dc5

auto-sync 2026-07-03T17:50:39Z workspace (part 4)

Browse files
workspace/reports/2026-07-03.md CHANGED
@@ -15,6 +15,9 @@
15
  - Fixed the CTT rollout loader to avoid repeated `.npz` decompression, and added a CPU sequential fallback because ManiSkill `physx_cpu` does not allow `num_envs > 1`.
16
  - Updated measured rollout metrics and summaries to report base/selected/proposal-oracle/hidden-oracle success, utility gaps, success support gap, success selector gap, outcome-vector schema, and internal paper-gate pass/fail.
17
  - Added measured safety-label coverage metrics in `cil/metrics.py`, `scripts/eval_metrics.py`, and `scripts/build_ctt_rollout_comparison.py`. Missing/null `safety_violation` fields are now treated as unknown rather than safe, so current reports show coverage while withholding unsafe-rate numbers when labels are absent.
 
 
 
18
  - Extended `scripts/eval_learned_dominance_selector.py` with logged `--feature-set` and `--target` variants, including success-weighted and tangent-code diagnostics, while keeping the original utility-margin default unchanged.
19
  - Extended `scripts/eval_learned_dominance_selector.py` again with deployment-visible `context` and `context_tangent` feature sets using target task id, instruction hash, source task id, and source-target task match. These features do not read evaluator-only val/test outcomes.
20
  - Extended `scripts/eval_dominance_selector.py` with `--score-source checkpoint`, cached chart embeddings/base scores, and single-thread torch scoring so a standalone train-only utility-energy checkpoint can be used for dominance evaluation.
@@ -99,6 +102,10 @@
99
  - `15116892`: `base_context_obj` seed 2, validation 69 positive-support charts, K=8
100
  - final scheduler state: all three jobs completed with exit code `0:0`.
101
  - purpose: object-layout proxy passed the support/safety gate by mean positive distance, so the next evidence must be measured OutcomePTR rather than another proxy claim.
 
 
 
 
102
 
103
  ## Jobs Completed
104
 
@@ -239,6 +246,22 @@
239
  - OutcomePTR@8 `0.5024`, success support gap `0.2947`, success selector gap `0.1787`
240
  - generated/base/selected safety-label coverage: `0.0000`; unsafe-rate metrics are not reported because all current `safety_violation` labels are null.
241
  - interpretation: proxy gate pass did not translate into better measured support. Object-layout-only is worse than RGB-stat on proposal oracle (`0.3816` vs `0.4058`) and selected success (`0.2029` vs `0.2415`), so it is a negative representation diagnostic.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
242
  - Base-context-observation CTT proxy diagnostics completed for three seeds:
243
  - train artifacts: `runs/ctt_residual_base_context_obs_seed{0,1,2}`
244
  - proxy artifacts: `runs/ctt_residual_base_context_obs_seed{0,1,2}_val_proxy`
@@ -383,6 +406,8 @@ Interpretation: the test proposal oracle clears the internal 50% support target,
383
 
384
  Safety metric status: regenerated measured rollout reports now expose `base_safety_label_known`, `generated_safety_label_coverage_at_8`, and `selected_safety_label_known_at_8`. For the visual-stat, object-layout, held-out test, and train-calibration rollout rows, each coverage number is `0.0000`; the legacy validation aggregate without `candidate_outcomes` reports `n/a`. No `generated_unsafe_rate_known` or selected/base unsafe-rate claim is made because the current ManiSkill outcome payloads carry null `safety_violation` labels.
385
 
 
 
386
  ## Leakage Audit Status
387
 
388
  - `data/cil_charts/train`: outcomes visible, retrieval allowed.
@@ -424,6 +449,7 @@ Safety metric status: regenerated measured rollout reports now expose `base_safe
424
  - Updated the validation proxy gate discussion to account for object-layout rows now present in `runs/ctt_val_proxy_comparison/table`: RGB-stat remains best on PPTC@0.20, object-layout-only is slightly best on mean positive distance, and measured rollout shows the object-layout row is negative relative to RGB-stat support.
425
  - Added the measured object-layout validation rollout table via `\input{../runs/ctt_base_context_obj_val_rollout_comparison/table}` and described it as a negative representation diagnostic.
426
  - Added safety-label coverage semantics to the metrics section and limitations: current measured artifacts log `safety_violation` fields but have 0% known safety labels, so unsafe execution rate is explicitly unmeasured rather than zero.
 
427
  - Reframed the title/abstract around `Counterfactual Action Atlas`; CTT is now the current transport generator inside the Atlas, not the whole novelty.
428
  - Tightened the abstract to avoid overclaiming a successful learned generator: the paper now says the Atlas measures local do-action geometry and audits whether deployment-clean generators reach positive support.
429
  - Added the train-calibration leakage rule to the split contract: when target charts are from train, retrieval excludes same chart id and same restored-state hash.
@@ -434,11 +460,17 @@ Safety metric status: regenerated measured rollout reports now expose `base_safe
434
  - Updated limitations: current evidence includes validation/test measured rollout, but the selected action fails the acceptance gate; real-robot recovery, unsafe-contact measurement, and dominance-calibrated deployment remain missing.
435
  - Added local-atlas/proxy-comparison scripts to the reproducibility artifact list.
436
  - Added generated-rollout script and Slurm wrapper to the reproducibility artifact list.
 
 
 
 
 
437
 
438
  ## Next Actions
439
 
440
  1. Stop treating deterministic object-layout as a likely win: it passed proxy but failed measured support relative to RGB-stat.
441
  2. Replace the deterministic RGB/object descriptors with learned visual-language or task/object tokens that can distinguish target, distractor, gripper/contact region, and task stage.
442
  3. Train utility/dominance on richer outcome-vector features; the best clean train-calibrated selector still reaches only `0.3125` selected success.
443
- 4. Add actual unsafe/contact labels to rollout outcomes; metric hooks now exist, but current safety-label coverage is `0.0000`.
444
- 5. Rerun validation/test measured rollouts only after a representation or utility model change, not another shallow selector/proxy-only change.
 
 
15
  - Fixed the CTT rollout loader to avoid repeated `.npz` decompression, and added a CPU sequential fallback because ManiSkill `physx_cpu` does not allow `num_envs > 1`.
16
  - Updated measured rollout metrics and summaries to report base/selected/proposal-oracle/hidden-oracle success, utility gaps, success support gap, success selector gap, outcome-vector schema, and internal paper-gate pass/fail.
17
  - Added measured safety-label coverage metrics in `cil/metrics.py`, `scripts/eval_metrics.py`, and `scripts/build_ctt_rollout_comparison.py`. Missing/null `safety_violation` fields are now treated as unknown rather than safe, so current reports show coverage while withholding unsafe-rate numbers when labels are absent.
18
+ - Updated `scripts/eval_ctt_generated_rollout.py` to record action-bound validity labels before optional clipping. Outcome payloads now include `safety_violation_source=action_bounds`, `action_bound_violation`, and `action_clip_max_abs`; the script also supports `--disable-action-clipping` for raw-action replay audits.
19
+ - Updated `scripts/slurm/eval_ctt_generated_rollout.sbatch` with `CLIP_ACTIONS=0` support.
20
+ - Added `scripts/audit_action_bounds.py` to audit whether exported chart actions lie inside the ManiSkill deployment action space and to write a full run artifact under `runs/action_bound_audit_rgb_refs`.
21
  - Extended `scripts/eval_learned_dominance_selector.py` with logged `--feature-set` and `--target` variants, including success-weighted and tangent-code diagnostics, while keeping the original utility-margin default unchanged.
22
  - Extended `scripts/eval_learned_dominance_selector.py` again with deployment-visible `context` and `context_tangent` feature sets using target task id, instruction hash, source task id, and source-target task match. These features do not read evaluator-only val/test outcomes.
23
  - Extended `scripts/eval_dominance_selector.py` with `--score-source checkpoint`, cached chart embeddings/base scores, and single-thread torch scoring so a standalone train-only utility-energy checkpoint can be used for dominance evaluation.
 
102
  - `15116892`: `base_context_obj` seed 2, validation 69 positive-support charts, K=8
103
  - final scheduler state: all three jobs completed with exit code `0:0`.
104
  - purpose: object-layout proxy passed the support/safety gate by mean positive distance, so the next evidence must be measured OutcomePTR rather than another proxy claim.
105
+ - Submitted no-clipping visual-stat CTT measured rollout refresh jobs after the action-bound audit found a global action-scale mismatch:
106
+ - `15117739`, `15117740`, `15117741`: validation `base_context_obs`, seeds 0/1/2, 69 charts, K=8, `CLIP_ACTIONS=0`
107
+ - `15117742`, `15117743`, `15117744`: test `base_context_obs`, seeds 0/1/2, 48 charts, K=8, `CLIP_ACTIONS=0`
108
+ - latest scheduler state checked after submission: all six array tasks are running on compute nodes.
109
 
110
  ## Jobs Completed
111
 
 
246
  - OutcomePTR@8 `0.5024`, success support gap `0.2947`, success selector gap `0.1787`
247
  - generated/base/selected safety-label coverage: `0.0000`; unsafe-rate metrics are not reported because all current `safety_violation` labels are null.
248
  - interpretation: proxy gate pass did not translate into better measured support. Object-layout-only is worse than RGB-stat on proposal oracle (`0.3816` vs `0.4058`) and selected success (`0.2029` vs `0.2415`), so it is a negative representation diagnostic.
249
+ - Action-bound rollout safety smoke completed:
250
+ - direct artifact: `runs/ctt_residual_base_context_obs_rollout_safety_smoke_direct_seed0`
251
+ - Slurm artifact: `runs/ctt_residual_base_context_obs_rollout_safety_smoke_seed0`, job `15117529`, completed `0:0`
252
+ - setting: `base_context_obs` seed 0, validation, one target chart, K=2, default clipped execution.
253
+ - result: base and both generated candidates have known action-bound labels and all violate the `[-1,1]^7` action space before clipping (`base_action_clip_max_abs=1.7218`, generated max excess `1.3133` and `1.5043`).
254
+ - interpretation: the new safety hook is working, and it exposes action-representation mismatch rather than collision/contact safety.
255
+ - No-clipping action-bound smoke completed:
256
+ - artifact: `runs/ctt_residual_base_context_obs_rollout_safety_noclip_smoke_direct_seed0`
257
+ - setting: same one target chart and K=2, but with `--disable-action-clipping`.
258
+ - result: raw replay keeps the same action-bound violations; candidate progress changes from `[0.1141, 0.0396]` under clipping to `[0.1700, 0.0436]` without clipping. This is enough to justify separate full no-clipping validation/test refresh jobs, not enough for a method-success claim.
259
+ - Action-bound audit completed:
260
+ - artifact: `runs/action_bound_audit_rgb_refs`
261
+ - train: action violation `0.3075`, base-action violation `1.0000`, max excess `3.6421`
262
+ - validation: action violation `0.3076`, base-action violation `1.0000`, max excess `3.5995`
263
+ - test: action violation `0.3079`, base-action violation `1.0000`, max excess `3.4353`
264
+ - interpretation: every exported base branch in the RGB-ref chart DB exceeds the nominal ManiSkill action space. Existing clipped rollout tables remain useful support/selector diagnostics, but they cannot be final deployment or unsafe-contact evidence until action representation/clipping is explicitly resolved.
265
  - Base-context-observation CTT proxy diagnostics completed for three seeds:
266
  - train artifacts: `runs/ctt_residual_base_context_obs_seed{0,1,2}`
267
  - proxy artifacts: `runs/ctt_residual_base_context_obs_seed{0,1,2}_val_proxy`
 
406
 
407
  Safety metric status: regenerated measured rollout reports now expose `base_safety_label_known`, `generated_safety_label_coverage_at_8`, and `selected_safety_label_known_at_8`. For the visual-stat, object-layout, held-out test, and train-calibration rollout rows, each coverage number is `0.0000`; the legacy validation aggregate without `candidate_outcomes` reports `n/a`. No `generated_unsafe_rate_known` or selected/base unsafe-rate claim is made because the current ManiSkill outcome payloads carry null `safety_violation` labels.
408
 
409
+ Action-bound audit status: new rollout artifacts now log action-bound safety labels. The first smoke has 100% known labels and 100% action-bound violation for base/generated candidates. The full chart DB audit shows base-action violation rate 1.0000 in train/val/test and branch-level violation rate about 0.308. These are action-space validity labels only; collision/contact safety remains unmeasured.
410
+
411
  ## Leakage Audit Status
412
 
413
  - `data/cil_charts/train`: outcomes visible, retrieval allowed.
 
449
  - Updated the validation proxy gate discussion to account for object-layout rows now present in `runs/ctt_val_proxy_comparison/table`: RGB-stat remains best on PPTC@0.20, object-layout-only is slightly best on mean positive distance, and measured rollout shows the object-layout row is negative relative to RGB-stat support.
450
  - Added the measured object-layout validation rollout table via `\input{../runs/ctt_base_context_obj_val_rollout_comparison/table}` and described it as a negative representation diagnostic.
451
  - Added safety-label coverage semantics to the metrics section and limitations: current measured artifacts log `safety_violation` fields but have 0% known safety labels, so unsafe execution rate is explicitly unmeasured rather than zero.
452
+ - Added action-bound audit table via `\input{../runs/action_bound_audit_rgb_refs/table}` and described the finding as an action-representation validity confound, not a collision/contact safety result.
453
  - Reframed the title/abstract around `Counterfactual Action Atlas`; CTT is now the current transport generator inside the Atlas, not the whole novelty.
454
  - Tightened the abstract to avoid overclaiming a successful learned generator: the paper now says the Atlas measures local do-action geometry and audits whether deployment-clean generators reach positive support.
455
  - Added the train-calibration leakage rule to the split contract: when target charts are from train, retrieval excludes same chart id and same restored-state hash.
 
460
  - Updated limitations: current evidence includes validation/test measured rollout, but the selected action fails the acceptance gate; real-robot recovery, unsafe-contact measurement, and dominance-calibrated deployment remain missing.
461
  - Added local-atlas/proxy-comparison scripts to the reproducibility artifact list.
462
  - Added generated-rollout script and Slurm wrapper to the reproducibility artifact list.
463
+ - Verification after the action-bound patch:
464
+ - `.venv/bin/python -m py_compile scripts/eval_ctt_generated_rollout.py scripts/audit_action_bounds.py tests/test_ctt.py`
465
+ - `.venv/bin/python -m pytest tests/test_ctt.py tests/test_metrics.py tests/test_cil_metrics.py -q`: 19 passed.
466
+ - `latexmk -pdf -interaction=nonstopmode main.tex`: PDF already up-to-date.
467
+ - Overclaim scan for `A*`, `Q1`, `Best Paper`, `SOTA`, and `state-of-the-art` in the main paper/report files returned no matches.
468
 
469
  ## Next Actions
470
 
471
  1. Stop treating deterministic object-layout as a likely win: it passed proxy but failed measured support relative to RGB-stat.
472
  2. Replace the deterministic RGB/object descriptors with learned visual-language or task/object tokens that can distinguish target, distractor, gripper/contact region, and task stage.
473
  3. Train utility/dominance on richer outcome-vector features; the best clean train-calibrated selector still reaches only `0.3125` selected success.
474
+ 4. Wait for no-clipping validation/test refresh jobs `15117739`--`15117744`, then aggregate separately from the clipped rollout tables.
475
+ 5. Decide whether to fix action scaling at export/decode time or treat action clipping as the deployment constraint; do not mix clipped and raw-action rollout claims.
476
+ 6. Add actual collision/contact labels after action-bound validity is resolved.
workspace/reports/draft_audit_ctt.md CHANGED
@@ -133,6 +133,20 @@ validation aggregate without `candidate_outcomes` reports `n/a`. Therefore the
133
  draft may say the safety metric hooks exist, but it must not claim an unsafe
134
  execution rate yet.
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  Current artifact evidence:
137
 
138
  - Phase-0 reproduce bundle exists: `runs/reproduce_v0/`.
@@ -155,6 +169,11 @@ Current artifact evidence:
155
  `scripts/build_ctt_rollout_comparison.py` now expose measured safety-label
156
  coverage and known-label unsafe rates. Current coverage is 0% for the
157
  regenerated rollout rows, so unsafe execution remains unmeasured.
 
 
 
 
 
158
  - `runs/ctt_residual_rollout_val69_seed{0,1,2}` and
159
  `runs/ctt_val_rollout_comparison` contain the first full validation measured
160
  rollout results for residual CTT.
@@ -412,6 +431,8 @@ Resolved in this pass:
412
  Still missing before a full method paper:
413
 
414
  - actual unsafe/contact labels and simulator-integrated fallback evaluation
 
 
415
  - simulator-integrated dominance-calibrated rollout collection
416
  - visual-language/object-centric chart tokens that make train-only utility
417
  energy transfer beyond the current negative checkpoint result. The feature
@@ -444,6 +465,9 @@ Current missing:
444
 
445
  - Unsafe-contact labels and fallback-rate audit over executed calibrated
446
  rollouts.
 
 
 
447
  - Real robot near-miss recovery audit.
448
  - A dominance model that approaches the selected-success paper gate. The current
449
  learned ridge row only marginally beats the base, and the full train-only
@@ -480,7 +504,8 @@ Next:
480
  0.3264 selected success.
481
  3. Replace the validation-calibrated ridge/context selector with a stronger
482
  deployment-clean train-only dominance model.
483
- 4. Add actual unsafe/contact labels; safety coverage/known-label metric hooks
484
- are now implemented, but current coverage is 0%.
485
- 5. Improve chart tokens from base-action summaries to visual-language and
486
- object-centric geometry.
 
 
133
  draft may say the safety metric hooks exist, but it must not claim an unsafe
134
  execution rate yet.
135
 
136
+ A follow-up action-bound safety pass exposes a stronger current blocker.
137
+ `scripts/eval_ctt_generated_rollout.py` now records pre-clipping action-space
138
+ violations as `safety_violation_source=action_bounds`, and
139
+ `scripts/audit_action_bounds.py` writes `runs/action_bound_audit_rgb_refs`.
140
+ That audit finds base-action violation rate 1.0000 in train, validation, and
141
+ test, with about 30.8% branch-level action-bound violations and max excess
142
+ 3.64. A one-chart clipped and no-clipping smoke confirms the labels propagate
143
+ into measured rollout rows. This is not a collision/contact safety result; it is
144
+ an action-representation validity confound. Existing clipped rollout tables
145
+ remain support/selector diagnostics, but the paper must not present them as
146
+ final deployment evidence until action scaling or clipping policy is resolved.
147
+ Separate no-clipping validation/test refresh jobs are submitted as
148
+ `15117739`--`15117744`.
149
+
150
  Current artifact evidence:
151
 
152
  - Phase-0 reproduce bundle exists: `runs/reproduce_v0/`.
 
169
  `scripts/build_ctt_rollout_comparison.py` now expose measured safety-label
170
  coverage and known-label unsafe rates. Current coverage is 0% for the
171
  regenerated rollout rows, so unsafe execution remains unmeasured.
172
+ - `scripts/audit_action_bounds.py` and `runs/action_bound_audit_rgb_refs`
173
+ expose a global action-space validity issue: every base branch in the
174
+ RGB-reference chart DB is outside the nominal ManiSkill action bounds before
175
+ clipping. This must be resolved or explicitly separated before any final
176
+ deployment-clean rollout claim.
177
  - `runs/ctt_residual_rollout_val69_seed{0,1,2}` and
178
  `runs/ctt_val_rollout_comparison` contain the first full validation measured
179
  rollout results for residual CTT.
 
431
  Still missing before a full method paper:
432
 
433
  - actual unsafe/contact labels and simulator-integrated fallback evaluation
434
+ - action representation/clipping policy for measured rollout; current base
435
+ chunks violate action bounds before clipping
436
  - simulator-integrated dominance-calibrated rollout collection
437
  - visual-language/object-centric chart tokens that make train-only utility
438
  energy transfer beyond the current negative checkpoint result. The feature
 
465
 
466
  - Unsafe-contact labels and fallback-rate audit over executed calibrated
467
  rollouts.
468
+ - Action-bound validity is now audited and failing for base chunks; this is a
469
+ prerequisite blocker for interpreting clipped rollout results as deployment
470
+ evidence.
471
  - Real robot near-miss recovery audit.
472
  - A dominance model that approaches the selected-success paper gate. The current
473
  learned ridge row only marginally beats the base, and the full train-only
 
504
  0.3264 selected success.
505
  3. Replace the validation-calibrated ridge/context selector with a stronger
506
  deployment-clean train-only dominance model.
507
+ 4. Resolve action scaling/clipping: compare pending no-clipping jobs
508
+ `15117739`--`15117744` against clipped rollouts, then decide whether the
509
+ chart export or rollout decoder should normalize actions.
510
+ 5. Add actual unsafe/contact labels; action-bound labels now exist, but
511
+ collision/contact safety remains unmeasured.