kattri15's picture
Add ActionShift frozen PPO backbones and reference adaptation-method checkpoints
6bdeb28 verified
|
Raw
History Blame Contribute Delete
8.52 kB
---
license: mit
pipeline_tag: robotics
tags:
- reinforcement-learning
- robot-manipulation
- ppo
- maniskill
- action-interface
- domain-adaptation
- system-identification
---
# ActionShift baselines
Reference checkpoints for **ActionShift**, a benchmark for manipulation policies adapting to a hidden
action-interface contract. Code: [github.com/Archerkattri/actionshift](https://github.com/Archerkattri/actionshift).
Splits, eval configs, and the rollout logs these checkpoints produced:
[kattri15/actionshift](https://huggingface.co/datasets/kattri15/actionshift).
These are **reference implementations from one benchmark run, not claims of best-in-class performance.**
Exact numbers, intervals, and the honesty caveats for every method are in `reports/*.md` in the GitHub
repo, in particular `reports/gate1.md` and `reports/adaptation_tournament.md`.
## What's here
```
ppo/*_final_ckpt.pt frozen Gate-1 competent PPO backbones, one per task
learned/*.pt unprivileged learned contract-identifier regressors
delay_aware/*.pt delay-aware augmented-state PPO backbones (long_lag split)
```
### `ppo/` β€” the frozen base policies
The task backbone every adaptation method sits on top of. Official ManiSkill v3.0.1 PPO baseline,
control mode `pd_ee_delta_pose`, trained per task, then frozen for the whole tournament. This is
**a fixed reference policy competent at the clean task, not a SOTA manipulation policy** β€” it is
deliberately unmodified so that the only variable across experiments is the action-interface contract,
not the backbone.
| File | Task | sha256 |
|---|---|---|
| `ppo/pick_cube_final_ckpt.pt` | PickCube-v1 | `3e6c95d63a2132843323e24cf7ba962b8cf2610f04b2a5a43f3efb6fef8497a8` |
| `ppo/push_cube_final_ckpt.pt` | PushCube-v1 | `a4a02198b309e73cb877959079023d967d5f63ec78380de9703a10c9efafc0cf` |
| `ppo/pull_cube_final_ckpt.pt` | PullCube-v1 | `74ae6a09b9af5e9e50dc71944f2e99316a8b67b02f3a96ca45df4a6d53dc1bd7` |
| `ppo/stack_cube_final_ckpt.pt` | StackCube-v1 | `e63cc8d8ffdca3d03553a21ea615c759b2b224493a7e7e12bee7efc29d5bad9c` |
Clean-task success (no hidden contract, i.e. identity): Pick and Push both 1.000 on `seen`. Under a
hidden contract with no adaptation, all four collapse to the 0.000-0.007 floor β€” that collapse is the
premise the rest of the benchmark measures adaptation against. PegInsertionSide-v1 has **no** frozen
checkpoint here: it never cleared the Gate 0 competence floor at the official training budget and is
excluded from the benchmark (see `reports/peg_retry.md` on GitHub).
### `learned/` β€” unprivileged learned contract identifiers
No pool, no grammar enumeration: these regressors learn to identify the active contract from calibrated
response alone. Trained on 96 contracts / 34,560 env steps / 80 epochs (`osi`, `osi_random_excitation`,
`recurrent`), or 96 contracts with a probe phase (`probe_osi`); held out on 12 contracts.
| File | Method | Held-out field accuracy (lag / permutation / sign / target) |
|---|---|---|
| `learned/osi_regressor.pt` | passive UP-OSI-style, fixed excitation | 0.415 / 0.291 / 0.551 / 0.941 |
| `learned/osi_random_excitation_regressor.pt` | passive UP-OSI-style, random excitation | 0.773 / 0.519 / 0.558 / 0.599 |
| `learned/recurrent_regressor.pt` | recurrent, episode-length accumulation | see `result.json` in the source run (lag 0.917 at 15 steps; permutation plateaus at ~0.37) |
| `learned/probe_osi_regressor.pt` | probe-augmented (budget 6, amplitude 0.5), pick_cube + push_cube | permutation caps at 0.39 |
These are reported in the paper as a **load-bearing negative result**: on PickCube/seen, the passive
learned identifier scores 0.000 end-to-end, the same floor as no adaptation at all β€” active probing
against a declared hypothesis space (the belief-family methods, not included here as checkpoints, see
below) is not something these unprivileged learners recover on their own. Do not read these as "the
adaptation methods" β€” read them as the specific negative result the paper reports.
### `delay_aware/` β€” delay-aware augmented-state PPO (the `long_lag` split)
A **new task backbone**, not the frozen Gate-1 PPO above. Same official PPO hyperparameters, plus two
changes: the observation is augmented with the last 4 canonical actions (K=4, restores the Markov
property under delay), and training uses a per-episode action lag resampled from `{0, 1, 2, 4}`. This
is the standard state-augmentation reduction for delayed MDPs (Katsikopoulos & Engelbrecht 2003), not a
reproduction of DCAC or D-TRPO.
| File | Task | Variant | Long-lag success | Seen-split competence |
|---|---|---|---:|---:|
| `delay_aware/pick_cube_randomized_final_ckpt.pt` | pick_cube | randomized lag (headline) | 0.528 [0.488, 0.568] | 0.715 |
| `delay_aware/pick_cube_curriculum_final_ckpt.pt` | pick_cube | lag-curriculum (documented alt) | 0.455 (1 seed) | 0.950 |
| `delay_aware/push_cube_randomized_final_ckpt.pt` | push_cube | randomized lag (headline) | 0.415 [0.376, 0.455] | 0.990 |
| `delay_aware/push_cube_curriculum_final_ckpt.pt` | push_cube | lag-curriculum (documented alt) | 0.355 (1 seed) | 0.885 |
The randomized-lag checkpoint is the headline long-lag method (frozen oracle scores 0.027 Pick / 0.153
Push on the same split, so this is roughly 20x / 2.7x). The curriculum variant trades long-lag success
for near-perfect instantaneous competence and is included because the paper documents both, not because
it is the recommended checkpoint for `long_lag` evaluation.
### What's not here
**Belief-family methods (exact belief, entropy probing, fixed/random probes, DualABI and its
ablations) have no checkpoint in this repo because they are analytic, not learned** β€” they maintain a
Bayesian posterior over the declared contract pool (`configs/contracts/core.yaml` in the dataset repo)
and are fully specified by their config files (`configs/method/dualabi*.yaml`, `configs/method/*probes*.yaml`
in the dataset repo), with no trained weights to publish. This is also true of the scale-corrector and
grasp-channel adaptation variants. Diffusion Policy imitation backbones used for the brittleness study
(Round 12 in the paper) exist locally but are not uploaded here; ask if you need them.
## Intended use
Reproducing or extending the ActionShift tournament: load a `ppo/` checkpoint as the frozen backbone,
evaluate it through the hidden-contract wrapper on the splits in
[kattri15/actionshift](https://huggingface.co/datasets/kattri15/actionshift), and compare an adaptation
method's success against the oracle ceiling and no-adapt floor those splits report. The `learned/` and
`delay_aware/` checkpoints are reference points on that ladder, not standalone manipulation policies to
deploy.
## Honest limits
- **Sim-only, no hardware.** All checkpoints were trained and evaluated in ManiSkill (SAPIEN/PhysX).
No real-robot claim is made or implied.
- **Reference baselines, not SOTA.** The PPO backbones are deliberately plain official-baseline policies
so the interface is the only variable; they are not tuned for maximum task performance.
The `learned/` regressors are reported specifically as a **negative result** in the paper.
- **Method coverage is partial.** Only oracle, no-adapt, the four learned identifiers, and delay-aware
control have trained checkpoints wired to the frozen backbones as of this release. Domain-randomized,
RMA-style, and the belief-family methods have config files but not trained-weight checkpoints (see
above) β€” that gap is disclosed in `reports/gate1.md` on GitHub as a structured exclusion, not silently
omitted.
- **`delay_aware/` checkpoints are separate backbones**, not drop-in replacements for `ppo/` on splits
other than `long_lag` β€” do not benchmark them on `seen` and compare directly to the `ppo/` row without
reading the caveats in `reports/adaptation_delay_aware.md`.
## License
MIT, same as the code and paper. See `LICENSE` in the [GitHub repo](https://github.com/Archerkattri/actionshift).
## Citation
```bibtex
@software{attri2026actionshift,
author = {Attri, Krishi},
title = {ActionShift: Hidden compositional action-interface adaptation benchmark},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.21500713},
url = {https://github.com/Archerkattri/actionshift}
}
```
Zenodo DOI: [10.5281/zenodo.21500713](https://doi.org/10.5281/zenodo.21500713). If you use the ManiSkill
baselines these checkpoints derive from, cite ManiSkill separately.