--- library_name: openpi tags: - robotics - imitation-learning - diffusion-policy - pi0.5 - robotwin - arx-x5 --- # pi0.5 — RoboTwin ICL ARX-X5 v4mix — step 20000 Fine-tune of the Physical Intelligence [pi0.5](https://github.com/Physical-Intelligence/openpi) base policy on the RoboTwin ICL benchmark for the ARX-X5 dual-arm robot, with additional paired-variant demonstrations mixed in (v4mix). ## Contents | File | Purpose | |---|---| | `model.safetensors` | ~7.0 GB — main model weights (bf16) | | `optimizer.pt` | ~13 GB — AdamW state; needed only to resume training | | `metadata.pt` | Lightning bookkeeping (step, epoch, RNG state) | | `assets/robotwin-icl-arx-x5-v4mix/norm_stats.json` | Per-dim action/state norm stats used at inference | ## How to load ```python # Requires openpi (Physical Intelligence). See # https://github.com/Physical-Intelligence/openpi from openpi.policies import policy_config from openpi.training import config as pi_config train_cfg = pi_config.get_config("pi05_robotwin_icl_arx_x5_v4mix") policy = policy_config.create_trained_policy( train_cfg, checkpoint_dir="path/to/this/checkpoint", ) actions = policy.infer(obs)["actions"] # (50, 14) action chunk ``` ## Training recipe - **Base**: pi0.5 (openpi `pi05_base` params) - **Continued from**: `pi05_robotwin_arx5_icl_20260702/200000` (an earlier ICL-only fine-tune) - **Config**: `pi05_robotwin_icl_arx_x5_v4mix` - **Model**: `Pi0Config(action_dim=32, action_horizon=50, pi05=True, paligemma_variant='gemma_2b_lora', action_expert_variant='gemma_300m', dtype=bfloat16)` - **Data**: - **Canonical**: 3000 train + 1000 val episodes from `robotwin-arx5-lerobot` (25-task ICL split) - **Variants**: 1500 train episodes from `robotwin-arx5-variants-lerobot` (paired-v4 waypoint / grasp-point / arm variants) - **Optimizer**: AdamW(b1=0.9, b2=0.95, eps=1e-8, wd=1e-10, clip_grad_norm=1.0) - **LR schedule**: CosineDecay(warmup=200, peak_lr=3e-5, decay_steps=50000) - **Freeze filter**: LLM backbone frozen except `_1` (action expert) and LoRA adapters; PaliGemma trained with `gemma_2b_lora` - **This checkpoint**: step **20000 / 50000**, batch size 16 × 4 GPUs (FSDP), bfloat16 precision - **Trained on**: 2026-07-06 ## Notes on step choice Prior top-K noise-coverage diagnostics on the v4mix training series found that step 20k retains more multimodal coverage of variant modes (arm switch, waypoint direction, grasp point) than later steps 35k+, which progressively collapse toward the modal action. For downstream residual adapter / noise-steering experiments that rely on the base policy having non-trivial support over variant modes, 20k is a better starting point than converged 35k+. For strict in-distribution BC accuracy on canonical demos, later checkpoints (35k / 50k) may be preferred. ## Closed-loop sanity (small smoke) On `beat_block_hammer_D_wpN` val split (arx-x5, SAPIEN sim), 3 seeds: 2 successes out of 2 solvable seeds (1 seed marked expert_fail by the planner and skipped). Full closed-loop success rate table has not been computed yet. ## License Model weights are derived from Physical Intelligence's pi0.5 base and inherit its Apache-2.0 license. Training data (RoboTwin) has its own license — see the [RoboTwin repo](https://github.com/RoboTwin-Platform/RoboTwin).