--- library_name: openpi pipeline_tag: robotics tags: - robotics - vision-language-action - pi0.5 - lora - libero - libero-pro --- # pi0.5 LoRA finetunes on LIBERO-Object Anonymous model release for the ICLR submission *Which VLAs Learn a Grasp That Transfers to New Object Positions?* It holds every checkpoint of ours that the paper evaluates: the pi0.5 LoRA on all 500 LIBERO-Object demonstrations (Table 1), its training-step curve, and the data ladder (Sec. 6). The code, the evaluation harness and one row per evaluated episode are in the paper's supplementary material. ## Checkpoints | path | openpi config | demos | step | evaluated in | |---|---|---|---|---| | `pi05_lora_libero_object/step_11999` | `pi05_libero_object_orig` | 500 (all) | 11999 | Table 1 (swap and task cell, with and without the harness), Sec. 5 | | `pi05_lora_libero_object/steps/step_`, S = 1000 ... 11000 | `pi05_libero_object_orig` | 500 | every 1000 | training-step curve (stock, policy alone; swap in the harness at 1000, 2000, 4000, 6000, 8000) | | `pi05_lora_libero_object_ladder/p50_250demos/step_1999` | `pi05_libero_object_p50` | 250 | 1999 | data ladder | | `pi05_lora_libero_object_ladder/p25_125demos/step_1999` | `pi05_libero_object_p25` | 125 | 1999 | data ladder | | `pi05_lora_libero_object_ladder/p10_50demos/step_1999` | `pi05_libero_object_p10` | 50 | 1999 | data ladder | | `pi05_lora_libero_object_ladder/p02_10demos/step_`, S = 500, 1000, 1500, 1999 | `pi05_libero_object_p02` | 10 (one per task) | 500-1999 | data ladder | Each `step_*` folder is an openpi checkpoint without its optimizer state: `params/` (Orbax, the full parameter tree of the finetuned model, 6 GB) and `assets/libero//norm_stats.json`, the normalization statistics it was trained and is served with. ## Recipe openpi's `pi05_base` with LoRA on both experts (`gemma_2b_lora`, `gemma_300m_lora`), trained on LIBERO's own LIBERO-Object demonstrations (native 128x128 frames rotated 180 degrees, no-op steps dropped, the task string as the prompt). Batch 24, AdamW with gradient clipping at 1.0, cosine schedule with 200 warmup steps and peak 5e-5 decaying to 1e-6, no EMA, action horizon 10. The full run is 12,000 steps; every ladder rung is 2,000 steps on a stratified subset of the demos (at 2 %, one demo per task). The configs are in `training/openpi.patch` (against openpi `215abfb`). The data conversion and the launch script are in the supplementary material's `training/` folder. ## Use ```bash # openpi at 215abfb with the patch (it adds the five configs; serving needs them) git clone --recurse-submodules https://github.com/Physical-Intelligence/openpi.git && cd openpi git checkout 215abfb && git apply ../training/openpi.patch && GIT_LFS_SKIP_SMUDGE=1 uv sync # one checkpoint hf download sketcH2027/evaluated_models --include "pi05_lora_libero_object/step_11999/*" --local-dir models uv run scripts/serve_policy.py --port 8000 policy:checkpoint \ --policy.config=pi05_libero_object_orig --policy.dir=models/pi05_lora_libero_object/step_11999 ``` Serve a ladder checkpoint with its own config (`pi05_libero_object_p50`, `_p25`, `_p10`, `_p02`). A LoRA checkpoint served with a non-LoRA config loads without error and answers as the wrong model. The server speaks openpi's LIBERO protocol: frames rotated 180 degrees and padded to 224, an 8-D state (end-effector position, axis-angle orientation, two finger joints), and ten 7-D delta actions, of which the paper executes five per query. ## License These weights are finetuned from openpi's `pi05_base` and are subject to the terms under which `pi05_base` is distributed.