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.
|
| 444 |
-
5.
|
|
|
|
|
|
| 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.
|
| 484 |
-
|
| 485 |
-
|
| 486 |
-
|
|
|
|
|
|
| 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.
|