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>, 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>, 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/<dataset>/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

# 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.

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading