Restore consolidated workspace README
Browse files- workspace/README.md +660 -0
workspace/README.md
ADDED
|
@@ -0,0 +1,660 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# VLA / CIL-Atlas / Causal Tangent Transport
|
| 2 |
+
|
| 3 |
+
This repository is the working codebase for a robot-learning research project
|
| 4 |
+
around same-state counterfactual action charts and Causal Tangent Transport
|
| 5 |
+
(CTT).
|
| 6 |
+
|
| 7 |
+
The single spine of the project is:
|
| 8 |
+
|
| 9 |
+
> Standard VLA training observes one demonstrated action per state. CIL-Atlas
|
| 10 |
+
> restores the same state, executes multiple action chunks, and measures which
|
| 11 |
+
> local action tangents causally improve, recover, fail, collide, or succeed.
|
| 12 |
+
> CTT turns this measured local causal geometry into deployment-clean proposal
|
| 13 |
+
> generation by transporting measured positive do-action tangents from
|
| 14 |
+
> train-only neighboring charts into the target chart.
|
| 15 |
+
|
| 16 |
+
The current evidence is intentionally written as a diagnostic method paper, not
|
| 17 |
+
as an overclaimed final success. K=16 `env_clip` support is strong on held-out
|
| 18 |
+
test (`proposal_oracle_success = 0.5694`, `OutcomePTR@16 = 0.5486`), while the
|
| 19 |
+
selector/dominance side remains the bottleneck. The strongest current
|
| 20 |
+
train-clean K=16 selector reaches `selected_success = 0.3542` against a
|
| 21 |
+
`0.5694` proposal oracle, leaving a `0.2431` success selector gap. The
|
| 22 |
+
score-source LCB dominance fallback is safe under action-bound labels but
|
| 23 |
+
negative as a selector (`0.2778` auto, `0.2917` tau0).
|
| 24 |
+
|
| 25 |
+
All other Markdown files were removed and consolidated into this README. The
|
| 26 |
+
canonical paper is `latex/main.tex` plus `latex/main.pdf`; experiment evidence
|
| 27 |
+
lives in JSON, TeX, logs, configs, and command files under `runs/`.
|
| 28 |
+
|
| 29 |
+
## Research Goal
|
| 30 |
+
|
| 31 |
+
The paper target is not "a bigger stack." The target is a clean method story:
|
| 32 |
+
|
| 33 |
+
1. Same-state CIL charts define local do-action causal geometry.
|
| 34 |
+
2. Causal Action Regret decomposes deployment failure into support gap plus
|
| 35 |
+
selector gap.
|
| 36 |
+
3. CTT proposes candidates by transporting measured train positive tangents,
|
| 37 |
+
not by Gaussian noise or verifier optimization off support.
|
| 38 |
+
4. Utility energy and calibrated dominance decide whether a transported tangent
|
| 39 |
+
should replace the base action.
|
| 40 |
+
5. Every main claim must have a method, implemented script/module, metric table,
|
| 41 |
+
leakage audit, and reproducible run log.
|
| 42 |
+
|
| 43 |
+
Current strategic diagnosis:
|
| 44 |
+
|
| 45 |
+
| Area | Current status | Meaning |
|
| 46 |
+
| --- | --- | --- |
|
| 47 |
+
| Same-state chart data | Implemented and leakage-audited | Good scientific primitive |
|
| 48 |
+
| Metrics | Implemented with measured/proxy separation | OutcomePTR and PPTC are not confused |
|
| 49 |
+
| CTT residual transport | Implemented and measured | K=16 support is real |
|
| 50 |
+
| Gated/residual proxy variants | Implemented | Mostly diagnostic |
|
| 51 |
+
| `env_clip` execution convention | Implemented | Action-bound-clean current convention |
|
| 52 |
+
| Learned dominance selectors | Implemented | Best current selector still leaves large gap |
|
| 53 |
+
| LCB calibrated dominance | Implemented | Safe fallback diagnostic, not successful selector |
|
| 54 |
+
| Object-layout hand features | Implemented | Negative measured result |
|
| 55 |
+
| Theory notes/section | Implemented | Honest support-regret framing |
|
| 56 |
+
| Paper | Implemented in LaTeX | Must remain diagnostic until selector improves |
|
| 57 |
+
|
| 58 |
+
## High-Level Layout
|
| 59 |
+
|
| 60 |
+
```text
|
| 61 |
+
.
|
| 62 |
+
|-- cil/ Core CTT metrics, chart features, and small models.
|
| 63 |
+
|-- dovla_cil/ Broader CIL/VLA framework: data, sims, models, eval.
|
| 64 |
+
|-- configs/ YAML/JSON configs for baselines, CTT, large jobs, toy jobs.
|
| 65 |
+
|-- data/ Exported CIL chart indexes and shards.
|
| 66 |
+
|-- latex/ Main paper source, tables, references, and PDF.
|
| 67 |
+
|-- paper/ Theory section used by the LaTeX paper.
|
| 68 |
+
|-- scripts/ Training, export, audit, rollout, evaluation, HF sync.
|
| 69 |
+
|-- manifests/ Job/run manifests and active templates.
|
| 70 |
+
|-- runs/ Reproducible experiment artifacts and metrics.
|
| 71 |
+
|-- logs/ Cluster/stdout/stderr logs and local sync logs.
|
| 72 |
+
|-- outputs/ Scratch-like local outputs and HF sync manifests.
|
| 73 |
+
|-- results/ Legacy non-Markdown result artifacts, if any remain.
|
| 74 |
+
|-- tests/ Unit/regression tests.
|
| 75 |
+
|-- Makefile Convenience command entrypoint.
|
| 76 |
+
```
|
| 77 |
+
|
| 78 |
+
## Folder And File Inventory
|
| 79 |
+
|
| 80 |
+
### Root
|
| 81 |
+
|
| 82 |
+
- `README.md`: this file. The only Markdown document kept in the workspace.
|
| 83 |
+
- `Makefile`: convenience wrapper for common commands.
|
| 84 |
+
- `.env.example`: example environment variables; do not store secrets here.
|
| 85 |
+
- `.gitignore`: ignored local artifacts, caches, and generated files.
|
| 86 |
+
- `.claude/`, `.codex/`, `.agents/`, `.remember/`: local assistant/tool state.
|
| 87 |
+
- `.pytest_cache/`, `.ruff_cache/`: local test/lint caches.
|
| 88 |
+
|
| 89 |
+
### `cil/`
|
| 90 |
+
|
| 91 |
+
Core research implementation for CTT and canonical metrics.
|
| 92 |
+
|
| 93 |
+
- `cil/__init__.py`: package marker.
|
| 94 |
+
- `cil/chart_features.py`: deployment-visible chart feature construction.
|
| 95 |
+
Feature modes include `base`, `base_context`, `base_context_obs`,
|
| 96 |
+
`base_context_obj`, and `base_context_obs_obj`. This file is important
|
| 97 |
+
because it controls what information the selector/generator may see.
|
| 98 |
+
- `cil/metrics.py`: canonical metrics:
|
| 99 |
+
- BranchCAR / branch causal action regret.
|
| 100 |
+
- OutcomePTR@K for measured executed generated candidates.
|
| 101 |
+
- PPTC@K for distance-only proxy positive tangent coverage.
|
| 102 |
+
- SelectorRegret@K.
|
| 103 |
+
- SupportGap.
|
| 104 |
+
- ProxySupportDistance.
|
| 105 |
+
- NegativeNear.
|
| 106 |
+
- PosCloserThanNeg.
|
| 107 |
+
- Pairwise Causal Calibration Error.
|
| 108 |
+
- safety label coverage and unsafe-rate helpers.
|
| 109 |
+
- `cil/models/__init__.py`: model package exports.
|
| 110 |
+
- `cil/models/chart_encoder.py`: chart encoder used by CTT/utility energy.
|
| 111 |
+
- `cil/models/tangent_encoder.py`: tangent encoder and normalization helpers.
|
| 112 |
+
- `cil/models/ctt.py`: Causal Tangent Transport model definitions, including
|
| 113 |
+
residual/gated transport variants.
|
| 114 |
+
- `cil/models/utility_energy.py`: utility energy scorer used by ranking and
|
| 115 |
+
dominance.
|
| 116 |
+
|
| 117 |
+
### `dovla_cil/`
|
| 118 |
+
|
| 119 |
+
General CIL/VLA framework code. This is older and broader than the compact
|
| 120 |
+
`cil/` CTT layer.
|
| 121 |
+
|
| 122 |
+
- `dovla_cil/config/defaults.yaml`: default project config.
|
| 123 |
+
- `dovla_cil/config/schema.py`: config schema.
|
| 124 |
+
- `dovla_cil/effects/extractors.py`: outcome/effect extraction utilities.
|
| 125 |
+
- `dovla_cil/effects/failure_classifier.py`: failure classifier logic.
|
| 126 |
+
- `dovla_cil/effects/rewards.py`: scalar reward/utility helpers.
|
| 127 |
+
- `dovla_cil/eval/causalstress.py`: causal stress evaluation.
|
| 128 |
+
- `dovla_cil/eval/external_vla_baseline.py`: external VLA baseline eval.
|
| 129 |
+
- `dovla_cil/eval/lattice_eval.py`: CIL lattice evaluation.
|
| 130 |
+
- `dovla_cil/eval/libero_eval.py`: LIBERO eval adapter.
|
| 131 |
+
- `dovla_cil/eval/maniskill_eval.py`: ManiSkill eval adapter.
|
| 132 |
+
- `dovla_cil/eval/maniskill_policy_rollout.py`: policy rollout harness.
|
| 133 |
+
- `dovla_cil/eval/metrics.py`: legacy eval metrics.
|
| 134 |
+
- `dovla_cil/eval/simpler_eval.py`: simpler eval adapter.
|
| 135 |
+
- `dovla_cil/eval/smolvla_cil_baseline.py`: SmolVLA CIL baseline eval.
|
| 136 |
+
- `dovla_cil/eval/smolvla_runtime.py`: SmolVLA runtime wrapper.
|
| 137 |
+
- `dovla_cil/experiments/baselines.py`: baseline experiment definitions.
|
| 138 |
+
- `dovla_cil/experiments/manifest.py`: manifest execution helpers.
|
| 139 |
+
- `dovla_cil/experiments/reports.py`: legacy report generation helpers.
|
| 140 |
+
- `dovla_cil/experiments/scaling.py`: scaling experiment helpers.
|
| 141 |
+
- `dovla_cil/generation/distributed.py`: distributed generation utilities.
|
| 142 |
+
- `dovla_cil/generation/maniskill_lattice.py`: ManiSkill lattice generation.
|
| 143 |
+
- `dovla_cil/generation/maniskill_parallel.py`: parallel ManiSkill generation.
|
| 144 |
+
- `dovla_cil/generation/maniskill_render.py`: rendering utilities.
|
| 145 |
+
- `dovla_cil/generation/pipeline.py`: generation pipeline orchestration.
|
| 146 |
+
- `dovla_cil/generation/tangent_chart_synthesis.py`: chart synthesis baseline.
|
| 147 |
+
- `dovla_cil/generation/tangent_cvae.py`: raw/positive tangent CVAE baseline.
|
| 148 |
+
- `dovla_cil/generation/tangent_local_atlas.py`: local atlas memory baseline.
|
| 149 |
+
- `dovla_cil/generation/tangent_memory.py`: tangent memory utilities.
|
| 150 |
+
- `dovla_cil/generation/tangent_spline_cvae.py`: spline-CVAE baseline.
|
| 151 |
+
- `dovla_cil/generation/tangent_spline_flow.py`: spline flow baseline.
|
| 152 |
+
- `dovla_cil/generation/tangent_spline_guided_flow.py`: guided spline flow.
|
| 153 |
+
- `dovla_cil/generation/tangent_targets.py`: tangent target construction.
|
| 154 |
+
- `dovla_cil/interventions/language_counterfactuals.py`: language CIL changes.
|
| 155 |
+
- `dovla_cil/interventions/perturbations.py`: action/scene perturbations.
|
| 156 |
+
- `dovla_cil/interventions/physics_counterfactuals.py`: physics interventions.
|
| 157 |
+
- `dovla_cil/interventions/samplers.py`: intervention samplers.
|
| 158 |
+
- `dovla_cil/interventions/schema.py`: intervention data schema.
|
| 159 |
+
- `dovla_cil/models/action_encoder.py`: action encoder.
|
| 160 |
+
- `dovla_cil/models/dovla.py`: base DOVLA model.
|
| 161 |
+
- `dovla_cil/models/dovla_attention.py`: attention model variant.
|
| 162 |
+
- `dovla_cil/models/dovla_attention_enhanced.py`: enhanced attention variant.
|
| 163 |
+
- `dovla_cil/models/dovla_hybrid.py`: hybrid model variant.
|
| 164 |
+
- `dovla_cil/models/dovla_transformer.py`: transformer model variant.
|
| 165 |
+
- `dovla_cil/models/effect_heads.py`: effect prediction heads.
|
| 166 |
+
- `dovla_cil/models/openvla_adapter.py`: OpenVLA adapter.
|
| 167 |
+
- `dovla_cil/models/policy_heads.py`: policy output heads.
|
| 168 |
+
- `dovla_cil/retrieval/embeddings.py`: retrieval embedding utilities.
|
| 169 |
+
- `dovla_cil/retrieval/eval.py`: retrieval evaluation.
|
| 170 |
+
- `dovla_cil/retrieval/index.py`: retrieval index.
|
| 171 |
+
- `dovla_cil/retrieval/prompting.py`: retrieval prompt helpers.
|
| 172 |
+
- `dovla_cil/retrieval/retriever.py`: retriever implementation.
|
| 173 |
+
- `dovla_cil/sim/base.py`: simulator interface.
|
| 174 |
+
- `dovla_cil/sim/genesis_backend.py`: Genesis simulator backend.
|
| 175 |
+
- `dovla_cil/sim/maniskill_backend.py`: ManiSkill backend.
|
| 176 |
+
- `dovla_cil/sim/registry.py`: simulator registry.
|
| 177 |
+
- `dovla_cil/sim/toy_backend.py`: toy backend.
|
| 178 |
+
- `dovla_cil/tasks/library.py`: task library.
|
| 179 |
+
- `dovla_cil/tasks/predicates.py`: task predicates.
|
| 180 |
+
- `dovla_cil/tasks/schema.py`: task schema.
|
| 181 |
+
- `dovla_cil/tasks/validators.py`: task validation.
|
| 182 |
+
- `dovla_cil/training/collate.py`: data collation.
|
| 183 |
+
- `dovla_cil/training/losses.py`: training losses.
|
| 184 |
+
- `dovla_cil/training/metrics.py`: training metrics.
|
| 185 |
+
- `dovla_cil/training/trainer.py`: trainer implementation.
|
| 186 |
+
- `dovla_cil/transfercritic/*`: transfer critic labels, model, training,
|
| 187 |
+
selection, and evaluation.
|
| 188 |
+
- `dovla_cil/utils/*`: hashing, IO, logging, seeding, language embeddings,
|
| 189 |
+
and OpenClaude client helpers.
|
| 190 |
+
- `dovla_cil/vlm/*`: VLM annotation, prompts, clients, and task generation.
|
| 191 |
+
- `dovla_cil/py.typed`: marks the package as typed.
|
| 192 |
+
|
| 193 |
+
### `configs/`
|
| 194 |
+
|
| 195 |
+
Configuration files for experiments.
|
| 196 |
+
|
| 197 |
+
- `configs/ctt/residual_smoke.yaml`: small residual CTT smoke config.
|
| 198 |
+
- `configs/ctt/residual_full.yaml`: full residual CTT config.
|
| 199 |
+
- `configs/ctt/gated_residual_smoke.yaml`: small gated CTT smoke config.
|
| 200 |
+
- `configs/ctt/gated_residual_full.yaml`: full gated CTT config.
|
| 201 |
+
- `configs/baselines/*.yaml`: baseline configs for expert-only BC,
|
| 202 |
+
cross-state negatives, random negatives, label-only counterfactuals, and
|
| 203 |
+
world-model auxiliary baselines.
|
| 204 |
+
- `configs/external/*.json`: SmolVLA aligned/full/smoke external configs.
|
| 205 |
+
- `configs/hpc/nvidia_icd.json`: HPC GPU/ICD runtime config.
|
| 206 |
+
- `configs/large/*.yaml`: large-scale generation/training templates.
|
| 207 |
+
- `configs/toy/*.yaml`: toy generation/eval/training configs.
|
| 208 |
+
|
| 209 |
+
### `data/`
|
| 210 |
+
|
| 211 |
+
Exported CIL chart databases. These are generated artifacts, not source code.
|
| 212 |
+
|
| 213 |
+
- `data/cil_charts/{train,val,test}/`: original chart indexes/shards.
|
| 214 |
+
- `data/cil_charts_rgb_refs/{train,val,test}/`: non-destructive RGB-reference
|
| 215 |
+
chart export with observation refs and deterministic RGB/object features.
|
| 216 |
+
- `index.json` inside each split records split hashes, content hashes,
|
| 217 |
+
retrieval permissions, and evaluator-only outcome contracts.
|
| 218 |
+
- NPZ shards store chart rows, base actions, branch actions, utility labels,
|
| 219 |
+
outcome vectors, residual action tangents, spline tangent codes, and metadata.
|
| 220 |
+
|
| 221 |
+
### `latex/`
|
| 222 |
+
|
| 223 |
+
Paper source and build artifacts.
|
| 224 |
+
|
| 225 |
+
- `latex/main.tex`: canonical paper draft. This is the single main paper source.
|
| 226 |
+
- `latex/main.pdf`: compiled PDF.
|
| 227 |
+
- `latex/references.bib`: bibliography.
|
| 228 |
+
- `latex/tables/*.tex`: hand-maintained or generated tables used by `main.tex`.
|
| 229 |
+
- `latex/main.aux`, `main.bbl`, `main.blg`, `main.fdb_latexmk`, `main.fls`,
|
| 230 |
+
`main.log`, `main.out`: LaTeX build intermediates.
|
| 231 |
+
|
| 232 |
+
### `paper/`
|
| 233 |
+
|
| 234 |
+
Paper sections that are included or copied into the LaTeX draft.
|
| 235 |
+
|
| 236 |
+
- `paper/sections/theory.tex`: formal theory section with same-state causal
|
| 237 |
+
contrast identifiability, CAR decomposition, support/sample-complexity
|
| 238 |
+
arguments, and transport smoothness/support-regret bounds.
|
| 239 |
+
- `paper/notes/`: reserved for non-Markdown theory notes if needed. Markdown
|
| 240 |
+
notes were removed to keep this README as the single textual overview.
|
| 241 |
+
|
| 242 |
+
### `scripts/`
|
| 243 |
+
|
| 244 |
+
Main executable research pipeline.
|
| 245 |
+
|
| 246 |
+
Data/chart export and audits:
|
| 247 |
+
|
| 248 |
+
- `scripts/export_cil_charts.py`: exports train/val/test CIL chart DB.
|
| 249 |
+
- `scripts/build_data_accounting.py`: builds data accounting artifacts.
|
| 250 |
+
- `scripts/audit_cil_charts.py`: leakage audit for chart indexes and run hashes.
|
| 251 |
+
- `scripts/audit_leakage.py`: legacy leakage audit.
|
| 252 |
+
- `scripts/audit_action_bounds.py`: action-bound validity audit.
|
| 253 |
+
- `scripts/audit_chart_feature_sources.py`: audits feature source availability.
|
| 254 |
+
- `scripts/check_tangent_reconstruction.py`: verifies spline tangent
|
| 255 |
+
reconstruction exactly matches stored residuals.
|
| 256 |
+
- `scripts/build_action_scale_vector.py`: builds per-dimension action scaling.
|
| 257 |
+
|
| 258 |
+
CTT training/proxy/rollout:
|
| 259 |
+
|
| 260 |
+
- `scripts/train_ctt.py`: trains residual or gated residual CTT.
|
| 261 |
+
- `scripts/eval_ctt_proxy.py`: proxy support evaluation with PPTC,
|
| 262 |
+
NegativeNear, distance, diversity, and collapse metrics.
|
| 263 |
+
- `scripts/eval_ctt_generated_rollout.py`: measured rollout harness that
|
| 264 |
+
restores states, decodes generated tangents, executes candidates, and writes
|
| 265 |
+
measured candidate rows.
|
| 266 |
+
- `scripts/eval_ctt_rollout.py`: measured-output wrapper.
|
| 267 |
+
- `scripts/build_ctt_proxy_comparison.py`: proxy comparison/gate table.
|
| 268 |
+
- `scripts/build_ctt_rollout_comparison.py`: measured rollout aggregation.
|
| 269 |
+
- `scripts/summarize_ctt_runs.py`: global CSV/Markdown summary. Markdown output
|
| 270 |
+
may be generated transiently, but the persistent overview is this README.
|
| 271 |
+
|
| 272 |
+
Dominance and utility:
|
| 273 |
+
|
| 274 |
+
- `scripts/train_utility_energy.py`: train-only utility energy model.
|
| 275 |
+
- `scripts/calibrate_dominance.py`: conformal-style dominance calibration rule.
|
| 276 |
+
- `scripts/eval_dominance_selector.py`: LCB dominance fallback evaluation.
|
| 277 |
+
Reports selected success, coverage, fallback, unsafe execution, PCCE,
|
| 278 |
+
selector regret, and support/selector gaps.
|
| 279 |
+
- `scripts/eval_learned_dominance_selector.py`: ridge learned dominance
|
| 280 |
+
selector with basic/context/tangent/source/chart-compat features.
|
| 281 |
+
- `scripts/eval_nonlinear_dominance_selector.py`: nonlinear selector sweep.
|
| 282 |
+
|
| 283 |
+
Metric and paper artifacts:
|
| 284 |
+
|
| 285 |
+
- `scripts/eval_metrics.py`: canonical measured/proxy metric evaluator.
|
| 286 |
+
- `scripts/reproduce_v0_report.py`: V0 reproduction artifact.
|
| 287 |
+
- `scripts/make_paper_artifacts.py`: generated paper tables/artifacts.
|
| 288 |
+
- `scripts/build_paper_analysis.py`: paper analysis builder.
|
| 289 |
+
- `scripts/build_paper_table_status.py`: paper table status builder.
|
| 290 |
+
- `scripts/report_dataset.py`, `report_eval.py`, `report_hpc_clean_results.py`:
|
| 291 |
+
structured reporting helpers.
|
| 292 |
+
|
| 293 |
+
Generation and baseline scripts:
|
| 294 |
+
|
| 295 |
+
- `scripts/generate_cil.py`: CIL generation entrypoint.
|
| 296 |
+
- `scripts/generate_cil_distributed.py`: distributed CIL generation.
|
| 297 |
+
- `scripts/generate_maniskill_lattice.py`: ManiSkill lattice generator.
|
| 298 |
+
- `scripts/generate_metaworld_lattice.py`: MetaWorld lattice generator.
|
| 299 |
+
- `scripts/generate_rlbench_lattice.py`: RLBench lattice generator.
|
| 300 |
+
- `scripts/generate_12task_collection.py`: larger task collection generator.
|
| 301 |
+
- `scripts/make_cil_collection.py`: collection builder.
|
| 302 |
+
- `scripts/merge_task_datasets.py`: merge task datasets.
|
| 303 |
+
- `scripts/prepare_baseline_dataset.py`: baseline dataset prep.
|
| 304 |
+
- `scripts/run_baseline.py`: baseline launcher.
|
| 305 |
+
- `scripts/run_external_vla_baseline.py`: external VLA baseline launcher.
|
| 306 |
+
- `scripts/run_manifest.py`: manifest executor.
|
| 307 |
+
- `scripts/run_master_workflow.sh`: legacy master workflow.
|
| 308 |
+
|
| 309 |
+
Positive tangent baselines:
|
| 310 |
+
|
| 311 |
+
- `scripts/export_positive_tangent_targets.py`: exports positive tangent targets.
|
| 312 |
+
- `scripts/eval_positive_tangent_memory.py`: memory baseline eval.
|
| 313 |
+
- `scripts/eval_positive_tangent_local_atlas.py`: local atlas baseline eval.
|
| 314 |
+
- `scripts/eval_positive_tangent_chart_synthesis.py`: chart synthesis eval.
|
| 315 |
+
- `scripts/train_positive_tangent_cvae.py`: CVAE baseline training.
|
| 316 |
+
- `scripts/train_positive_tangent_spline_cvae.py`: spline-CVAE training.
|
| 317 |
+
- `scripts/train_positive_tangent_spline_flow.py`: spline flow training.
|
| 318 |
+
- `scripts/train_positive_tangent_guided_spline_flow.py`: guided flow training.
|
| 319 |
+
- `scripts/summarize_positive_tangent_*`: sweep summarizers.
|
| 320 |
+
|
| 321 |
+
Legacy DOVLA training/eval:
|
| 322 |
+
|
| 323 |
+
- `scripts/train_dovla.py`: base DOVLA training.
|
| 324 |
+
- `scripts/train_dovla_attention.py`: attention variant.
|
| 325 |
+
- `scripts/train_dovla_enhanced.py`: enhanced variant.
|
| 326 |
+
- `scripts/train_dovla_transformer.py`: transformer variant.
|
| 327 |
+
- `scripts/train_hybrid_direct.py`: hybrid direct model.
|
| 328 |
+
- `scripts/train_transformer_with_language.py`: language transformer training.
|
| 329 |
+
- `scripts/eval_*checkpoint.py`: checkpoint evaluators.
|
| 330 |
+
- `scripts/evaluate_phase_a*.py`: legacy phase evaluators.
|
| 331 |
+
|
| 332 |
+
HF sync and operations:
|
| 333 |
+
|
| 334 |
+
- `scripts/hf_push_once.sh`: one-shot HF upload of workspace/scratch roots.
|
| 335 |
+
- `scripts/hf_push_every_15m.sh`: local 15-minute HF sync daemon.
|
| 336 |
+
- `scripts/hf_sync_daemon.sh`: alternate daemon wrapper.
|
| 337 |
+
- `scripts/auto_sync_hf.py`: legacy auto-sync helper.
|
| 338 |
+
- `scripts/check_hf_sync.sh`: HF sync check.
|
| 339 |
+
- `scripts/quick_start.sh`, `run_eval.sh`, `run_inference.sh`,
|
| 340 |
+
`run_train_debug.sh`, `smoke_test.sh`: convenience shell entrypoints.
|
| 341 |
+
|
| 342 |
+
### `scripts/slurm/`
|
| 343 |
+
|
| 344 |
+
Cluster job templates. Important groups:
|
| 345 |
+
|
| 346 |
+
- CTT: `train_ctt_proxy_sweep.sbatch`, `train_ctt_feature_proxy.sbatch`,
|
| 347 |
+
`eval_ctt_generated_rollout.sbatch`.
|
| 348 |
+
- Dominance: `eval_tanh_train_dominance.sbatch`,
|
| 349 |
+
`eval_perdim_trainmax_dominance.sbatch`,
|
| 350 |
+
`train_utility_energy_selector.sbatch`.
|
| 351 |
+
- Rendering/export: `render_six_task_chart_observations.sbatch`,
|
| 352 |
+
`reexport_rgb_ref_cil_charts.sbatch`, `render_maniskill_observations.sbatch`.
|
| 353 |
+
- Baselines/generation: `generate_6task_h16.sbatch`,
|
| 354 |
+
`make_maniskill_collection.sbatch`, `train_maniskill_*`.
|
| 355 |
+
- Legacy model training/eval: `train_dovla*.sbatch`, `train_transformer*.sbatch`,
|
| 356 |
+
`eval_*`.
|
| 357 |
+
- HF sync: `hf_push_daemon.sbatch`.
|
| 358 |
+
|
| 359 |
+
### `manifests/`
|
| 360 |
+
|
| 361 |
+
Run manifests and templates.
|
| 362 |
+
|
| 363 |
+
- `manifests/cil_1b_template.yaml`: active large template opened in the IDE.
|
| 364 |
+
- `manifests/cil_160m.yaml`: smaller CIL manifest.
|
| 365 |
+
- `manifests/baselines_full.yaml`: full baseline manifest.
|
| 366 |
+
- `manifests/scaling_k_sweep.yaml`: scaling/K sweep.
|
| 367 |
+
- `manifests/source_score_bonus_pick001_stack005.*`: source-score bonus configs.
|
| 368 |
+
|
| 369 |
+
### `runs/`
|
| 370 |
+
|
| 371 |
+
Reproducible experiment artifacts. Each serious run should contain:
|
| 372 |
+
|
| 373 |
+
```text
|
| 374 |
+
config.yaml
|
| 375 |
+
command.txt
|
| 376 |
+
git_hash.txt
|
| 377 |
+
data_hash.txt
|
| 378 |
+
split_hash.txt
|
| 379 |
+
train.log
|
| 380 |
+
eval.log
|
| 381 |
+
metrics.json
|
| 382 |
+
metrics_by_task.json
|
| 383 |
+
metrics_by_seed.json
|
| 384 |
+
table.tex
|
| 385 |
+
```
|
| 386 |
+
|
| 387 |
+
Markdown `report.md` files were removed per the current cleanup request. Use
|
| 388 |
+
`metrics.json`, `table.tex`, logs, and this README instead.
|
| 389 |
+
|
| 390 |
+
High-value run directories:
|
| 391 |
+
|
| 392 |
+
- `runs/data_accounting`: verified data counts.
|
| 393 |
+
- `runs/leakage_audit`: original leakage audit.
|
| 394 |
+
- `runs/leakage_audit_rgb_refs`: RGB-ref leakage audit.
|
| 395 |
+
- `runs/tangent_reconstruction`: original tangent reconstruction check.
|
| 396 |
+
- `runs/tangent_reconstruction_rgb_refs`: RGB-ref tangent reconstruction check.
|
| 397 |
+
- `runs/action_bound_audit_rgb_refs`: action-bound audit.
|
| 398 |
+
- `runs/chart_observation_embeddings_rgb_refs`: RGB-stat embedding export.
|
| 399 |
+
- `runs/chart_object_embeddings_rgb_refs`: object-layout embedding export.
|
| 400 |
+
- `runs/chart_feature_audit*`: feature-source audits.
|
| 401 |
+
- `runs/ctt_residual_full_seed{0,1,2}`: full residual CTT training.
|
| 402 |
+
- `runs/ctt_gated_residual_full_seed{0,1,2}`: full gated residual CTT training.
|
| 403 |
+
- `runs/ctt_base_context_obs_test_envclip_k16_rollout_comparison`: current
|
| 404 |
+
strongest measured support artifact.
|
| 405 |
+
- `runs/ctt_base_context_obs_train_cal_envclip_k16_rollout_comparison`: train
|
| 406 |
+
calibration rows for K=16 `env_clip`.
|
| 407 |
+
- `runs/ctt_base_context_obs_dominance_envclip_k16_train_to_test`: K=16 LCB
|
| 408 |
+
dominance auto threshold, negative selector result.
|
| 409 |
+
- `runs/ctt_base_context_obs_dominance_envclip_k16_train_to_test_tau0`: K=16
|
| 410 |
+
LCB tau0 fallback, matches base but does not improve.
|
| 411 |
+
- `runs/ctt_base_context_obs_learned_dominance_chartcompat_obs_utility_task_envclip_k16_train_to_test`:
|
| 412 |
+
best current train-clean selector diagnostic.
|
| 413 |
+
- `runs/ctt_base_context_obs_nonlinear_dominance_chartcompat_obs_*`: fixed
|
| 414 |
+
nonlinear selector diagnostics.
|
| 415 |
+
- `runs/summary_ctt.csv`: global run summary table.
|
| 416 |
+
|
| 417 |
+
### `logs/`
|
| 418 |
+
|
| 419 |
+
Cluster stdout/stderr and daemon logs.
|
| 420 |
+
|
| 421 |
+
- `logs/*.out` and `logs/*.err`: Slurm job output/error files.
|
| 422 |
+
- `logs/auto_sync_hf.log`: legacy HF auto-sync log.
|
| 423 |
+
- `logs/auto_sync_hf.pid`: legacy auto-sync PID file.
|
| 424 |
+
- `logs/workflow/`: workflow logs.
|
| 425 |
+
|
| 426 |
+
### `outputs/`
|
| 427 |
+
|
| 428 |
+
Local generated outputs and HF sync state.
|
| 429 |
+
|
| 430 |
+
- `outputs/hf_sync/hf_sync.log`: one-shot HF sync log.
|
| 431 |
+
- `outputs/hf_sync/hf_sync_daemon.log`: 15-minute daemon log.
|
| 432 |
+
- `outputs/hf_sync/last_manifest.json`: latest HF sync manifest.
|
| 433 |
+
- `outputs/hpc/`: HPC outputs.
|
| 434 |
+
- `outputs/external_vla*`: external VLA export/probe outputs.
|
| 435 |
+
- `outputs/manifest_*`: manifest smoke outputs.
|
| 436 |
+
- `outputs/phase5_*`: legacy phase-5 outputs.
|
| 437 |
+
- `outputs/smoke_*`, `outputs/train_smoke_*`: smoke outputs.
|
| 438 |
+
- `outputs/wheels`: local wheel/cache outputs.
|
| 439 |
+
|
| 440 |
+
### `results/`
|
| 441 |
+
|
| 442 |
+
Legacy result files. Markdown summaries were removed. Any remaining non-Markdown
|
| 443 |
+
files are legacy evidence or machine-readable artifacts. Current CTT evidence
|
| 444 |
+
should be read from `runs/`, not `results/`.
|
| 445 |
+
|
| 446 |
+
### `tests/`
|
| 447 |
+
|
| 448 |
+
Regression tests. Key tests:
|
| 449 |
+
|
| 450 |
+
- `tests/test_metrics.py`: canonical metric behavior.
|
| 451 |
+
- `tests/test_causal_action_metrics.py`: causal action metric checks.
|
| 452 |
+
- `tests/test_ctt.py`: CTT model/training/eval checks.
|
| 453 |
+
- `tests/test_chart_features.py`: chart feature leakage invariants.
|
| 454 |
+
- `tests/test_dominance_selector.py`: dominance selector, PCCE, safety fields.
|
| 455 |
+
- `tests/test_cil_schema.py`, `test_cil_images.py`: CIL data/image schema.
|
| 456 |
+
- `tests/test_maniskill_*`: ManiSkill backend/lattice/render/rollout tests.
|
| 457 |
+
- `tests/test_tangent_*`: positive tangent generator baselines.
|
| 458 |
+
- `tests/test_transfercritic.py`: transfer critic checks.
|
| 459 |
+
- `tests/test_slurm_templates.py`: Slurm template sanity.
|
| 460 |
+
|
| 461 |
+
## Current Best Evidence
|
| 462 |
+
|
| 463 |
+
### K=16 `env_clip` measured support
|
| 464 |
+
|
| 465 |
+
Run:
|
| 466 |
+
|
| 467 |
+
```text
|
| 468 |
+
runs/ctt_base_context_obs_test_envclip_k16_rollout_comparison
|
| 469 |
+
```
|
| 470 |
+
|
| 471 |
+
Key held-out test values:
|
| 472 |
+
|
| 473 |
+
| Metric | Value |
|
| 474 |
+
| --- | ---: |
|
| 475 |
+
| Rows | 144 |
|
| 476 |
+
| Base success | 0.2917 |
|
| 477 |
+
| Score-only selected success | 0.2778 |
|
| 478 |
+
| Proposal oracle success | 0.5694 |
|
| 479 |
+
| Hidden chart oracle success | 0.7292 |
|
| 480 |
+
| OutcomePTR@16 | 0.5486 |
|
| 481 |
+
| Success support gap | 0.2014 |
|
| 482 |
+
| Success selector gap | 0.2917 |
|
| 483 |
+
| Action-bound unsafe | 0.0000 |
|
| 484 |
+
|
| 485 |
+
Interpretation: support is strong; selector is not.
|
| 486 |
+
|
| 487 |
+
### Best current K=16 train-clean learned selector
|
| 488 |
+
|
| 489 |
+
Run:
|
| 490 |
+
|
| 491 |
+
```text
|
| 492 |
+
runs/ctt_base_context_obs_learned_dominance_chartcompat_obs_utility_task_envclip_k16_train_to_test
|
| 493 |
+
```
|
| 494 |
+
|
| 495 |
+
Key values:
|
| 496 |
+
|
| 497 |
+
| Metric | Value |
|
| 498 |
+
| --- | ---: |
|
| 499 |
+
| Selected success | 0.3542 |
|
| 500 |
+
| Coverage | 0.6597 |
|
| 501 |
+
| Proposal oracle success | 0.5694 |
|
| 502 |
+
| Success selector gap | 0.2431 |
|
| 503 |
+
| Pairwise causal calibration ECE | 0.0150 |
|
| 504 |
+
| Pair count | 12,434 |
|
| 505 |
+
|
| 506 |
+
Interpretation: RGB-stat chart compatibility helps, but the selector gap is
|
| 507 |
+
still too large for a deployment-clean method success claim.
|
| 508 |
+
|
| 509 |
+
### K=16 score-source LCB dominance
|
| 510 |
+
|
| 511 |
+
Runs:
|
| 512 |
+
|
| 513 |
+
```text
|
| 514 |
+
runs/ctt_base_context_obs_dominance_envclip_k16_train_to_test
|
| 515 |
+
runs/ctt_base_context_obs_dominance_envclip_k16_train_to_test_tau0
|
| 516 |
+
```
|
| 517 |
+
|
| 518 |
+
Key values:
|
| 519 |
+
|
| 520 |
+
| Variant | Selected | Coverage | Unsafe exec. | PCCE | Selector gap |
|
| 521 |
+
| --- | ---: | ---: | ---: | ---: | ---: |
|
| 522 |
+
| auto | 0.2778 | 0.1319 | 0.0000 | 0.1633 | 0.2986 |
|
| 523 |
+
| tau0 | 0.2917 | 0.1111 | 0.0000 | 0.1633 | 0.2986 |
|
| 524 |
+
|
| 525 |
+
Interpretation: the LCB fallback records the requested safety/calibration
|
| 526 |
+
fields, but it does not solve dominance. It is a negative Part-G diagnostic.
|
| 527 |
+
|
| 528 |
+
## How To Run Core Commands
|
| 529 |
+
|
| 530 |
+
Use the local virtual environment when possible:
|
| 531 |
+
|
| 532 |
+
```bash
|
| 533 |
+
.venv/bin/python -m pytest tests/test_metrics.py tests/test_ctt.py tests/test_dominance_selector.py -q
|
| 534 |
+
```
|
| 535 |
+
|
| 536 |
+
Build the paper:
|
| 537 |
+
|
| 538 |
+
```bash
|
| 539 |
+
cd latex
|
| 540 |
+
latexmk -pdf -interaction=nonstopmode main.tex
|
| 541 |
+
```
|
| 542 |
+
|
| 543 |
+
Refresh summary:
|
| 544 |
+
|
| 545 |
+
```bash
|
| 546 |
+
.venv/bin/python scripts/summarize_ctt_runs.py \
|
| 547 |
+
--run-root runs \
|
| 548 |
+
--out-csv runs/summary_ctt.csv \
|
| 549 |
+
--out-md runs/summary_ctt.md
|
| 550 |
+
```
|
| 551 |
+
|
| 552 |
+
Run K=16 LCB dominance auto:
|
| 553 |
+
|
| 554 |
+
```bash
|
| 555 |
+
.venv/bin/python scripts/eval_dominance_selector.py \
|
| 556 |
+
--calibration-input runs/ctt_base_context_obs_train_cal_envclip_k16_rollout_comparison/combined_measured_candidates.json \
|
| 557 |
+
--calibration-target-index data/cil_charts_rgb_refs/train/index.json \
|
| 558 |
+
--eval-input runs/ctt_base_context_obs_test_envclip_k16_rollout_comparison/combined_measured_candidates.json \
|
| 559 |
+
--eval-target-index data/cil_charts_rgb_refs/test/index.json \
|
| 560 |
+
--checkpoint-template 'runs/ctt_residual_base_context_obs_seed{seed}/model.pt' \
|
| 561 |
+
--out-dir runs/ctt_base_context_obs_dominance_envclip_k16_train_to_test \
|
| 562 |
+
--k 16 \
|
| 563 |
+
--bootstrap-samples 1000
|
| 564 |
+
```
|
| 565 |
+
|
| 566 |
+
Run leakage audits:
|
| 567 |
+
|
| 568 |
+
```bash
|
| 569 |
+
.venv/bin/python scripts/audit_cil_charts.py \
|
| 570 |
+
--chart-root data/cil_charts \
|
| 571 |
+
--run-root runs \
|
| 572 |
+
--out-dir runs/leakage_audit
|
| 573 |
+
|
| 574 |
+
.venv/bin/python scripts/audit_cil_charts.py \
|
| 575 |
+
--chart-root data/cil_charts_rgb_refs \
|
| 576 |
+
--run-root runs \
|
| 577 |
+
--out-dir runs/leakage_audit_rgb_refs
|
| 578 |
+
```
|
| 579 |
+
|
| 580 |
+
Run tangent reconstruction checks:
|
| 581 |
+
|
| 582 |
+
```bash
|
| 583 |
+
.venv/bin/python scripts/check_tangent_reconstruction.py \
|
| 584 |
+
--chart-root data/cil_charts \
|
| 585 |
+
--out-dir runs/tangent_reconstruction
|
| 586 |
+
|
| 587 |
+
.venv/bin/python scripts/check_tangent_reconstruction.py \
|
| 588 |
+
--chart-root data/cil_charts_rgb_refs \
|
| 589 |
+
--out-dir runs/tangent_reconstruction_rgb_refs
|
| 590 |
+
```
|
| 591 |
+
|
| 592 |
+
Start HF sync daemon:
|
| 593 |
+
|
| 594 |
+
```bash
|
| 595 |
+
bash scripts/hf_push_every_15m.sh
|
| 596 |
+
```
|
| 597 |
+
|
| 598 |
+
Current local daemon process was previously observed as PID `615094`; verify
|
| 599 |
+
with:
|
| 600 |
+
|
| 601 |
+
```bash
|
| 602 |
+
ps -p 615094 -o pid,etimes,cmd
|
| 603 |
+
```
|
| 604 |
+
|
| 605 |
+
## Hugging Face Remote
|
| 606 |
+
|
| 607 |
+
Repository:
|
| 608 |
+
|
| 609 |
+
```text
|
| 610 |
+
anhtld/vla
|
| 611 |
+
```
|
| 612 |
+
|
| 613 |
+
The workspace is uploaded under:
|
| 614 |
+
|
| 615 |
+
```text
|
| 616 |
+
workspace/
|
| 617 |
+
```
|
| 618 |
+
|
| 619 |
+
Large scratch roots are uploaded under:
|
| 620 |
+
|
| 621 |
+
```text
|
| 622 |
+
scratch/
|
| 623 |
+
```
|
| 624 |
+
|
| 625 |
+
Use:
|
| 626 |
+
|
| 627 |
+
```bash
|
| 628 |
+
.venv/bin/hf auth whoami
|
| 629 |
+
.venv/bin/hf upload anhtld/vla <local_path> workspace/<remote_path>
|
| 630 |
+
```
|
| 631 |
+
|
| 632 |
+
Avoid uploading secrets. The sync scripts exclude `.env`, token/secret/key
|
| 633 |
+
patterns, virtualenvs, git internals, containers, and native library folders.
|
| 634 |
+
|
| 635 |
+
## Development Rules
|
| 636 |
+
|
| 637 |
+
- Do not claim method success unless the result is implemented, measured,
|
| 638 |
+
leakage-audited, and logged.
|
| 639 |
+
- Do not call distance proxy metrics PTR. Use PPTC for proxy support.
|
| 640 |
+
- Do not compute OutcomePTR, SelectorRegret, or SupportGap from proxy-only
|
| 641 |
+
candidates.
|
| 642 |
+
- Train-only retrieval must use train charts only.
|
| 643 |
+
- Validation/test outcomes are evaluator-only.
|
| 644 |
+
- Keep V0/V1/V3 as diagnostics/baselines, not final method claims.
|
| 645 |
+
- Use K=16 `env_clip` as the current bounded-action diagnostic convention until
|
| 646 |
+
a better action representation is implemented and measured.
|
| 647 |
+
- Treat deterministic object-layout features as a negative result unless a new
|
| 648 |
+
measured run proves otherwise.
|
| 649 |
+
- The next real method work is a stronger deployment-visible chart/outcome
|
| 650 |
+
representation and dominance model, not more wrapper text.
|
| 651 |
+
|
| 652 |
+
## Immediate Next Actions
|
| 653 |
+
|
| 654 |
+
1. Replace hand-built RGB/object descriptors with learned visual-language or
|
| 655 |
+
task/object/contact-stage tokens.
|
| 656 |
+
2. Train a stronger train-only utility/dominance model under the K=16
|
| 657 |
+
`env_clip` convention.
|
| 658 |
+
3. Re-run measured selection on held-out test after the representation fix.
|
| 659 |
+
4. Add actual collision/contact safety labels beyond action-bound validity.
|
| 660 |
+
5. Keep the paper honest: support is promising, selector is not solved.
|