RACE RoboTwin β Ο0.5 t5k showcase checkpoints
Single-task Ο0.5 (OpenPI) checkpoints on RoboTwin 2.0 (aloha-agilex, demo_clean, 50 demos/task), for 6 tasks:
pick_dual_bottles, move_can_pot, place_dual_shoes, place_can_basket, blocks_ranking_rgb, stack_blocks_three.
All fine-tunes start from the 5k-step teacher (weak-teacher regime, "t5k").
Layout
<task>/
teacher_ac50/ # 5k-step teacher (JAX -> PyTorch conversion, float32)
vlmfreeze_ac50/{5000,10000}/ # phase-loc fine-tune, VLM frozen, action horizon 50
vlmfreeze_ac75/{5000,10000}/ # action horizon 75
vlmfreeze_ac100/{5000,10000}/ # action horizon 100
Each checkpoint dir has model.safetensors, assets/ (norm stats), and metadata.pt
(training config + step). Optimizer states are omitted.
Results β 100 episodes (seeds 0+1, demo_clean, 50 ep each)
| task | teacher ac50@5k | ac50@5k | ac75 best | ac100 best |
|---|---|---|---|---|
| pick_dual_bottles | 58% | 62% | 67% (@2k) | 59% (@2k) |
| move_can_pot | 58% | 76% | 61% (@5k) | 54% (@8k) |
| place_dual_shoes | 29% | 48% | 39% (@9k) | 28% (@9k) |
| place_can_basket | 45% | 47% | 40% (@4k) | 48% (@7k) |
| blocks_ranking_rgb | 48% | 64% | 43% (@10k) | 41% (@6k) |
| stack_blocks_three | 31% | 45% | 36% (@9k) | 39% (@4k) |
| mean | 44.8% | 57.0% | 47.7% | 44.8% |
ac75/ac100 "best" steps were selected on the seed-0 dense sweep, so their totals carry some selection bias; ac50@5k is a fixed step (no selection). Takeaway: action horizon 50 at 5k steps is the sweet spot β vlm-freeze fine-tuning beats the 5k teacher by +12.2%p on average.
Best ac75 checkpoints
<task>/vlmfreeze_ac75_best/ holds each task's best-performing ac75 checkpoint,
selected over the 1k-10k dense eval sweep (demo_clean, seed 0, 50 episodes).
BEST_INFO.txt inside records the source training step and score:
| task | step | success |
|---|---|---|
| pick_dual_bottles | 2000 | 68% |
| move_can_pot | 5000 | 64% |
| place_dual_shoes | 9000 | 46% |
| place_can_basket | 4000 | 46% |
| blocks_ranking_rgb | 10000 | 46% |
| stack_blocks_three | 9000 | 40% |
Best ac100 checkpoints
Two selections from the ac100 dense sweep: vlmfreeze_ac100_best/ (designated
best, used for the 100-episode report) and vlmfreeze_ac100_max/ (per-row curve
maximum). Steps: best = 2000/8000/9000/7000/6000/4000, max =
9000/2000/9000/2000/7000/7000 (task order as above). See each BEST_INFO.txt.
Serving / eval
Serve with OpenPI's scripts/serve_policy.py (PyTorch path):
python scripts/serve_policy.py --port <P> policy:checkpoint \
--policy.config=st_<task>_phase_loc[_h75|_h100] --policy.dir=<downloaded dir>
--policy.config must match the action horizon (st_<t>_phase_loc = 50,
_h75 = 75, _h100 = 100); evaluate with RoboTwin 2.0 script/eval_policy.py
(--pi0_step = the same horizon, demo_clean, seed 0, 50 episodes).
Checkpoints are uploaded progressively as trainings/evals complete.