Pi0.5 (flow matching) · LIBERO (100k) — matched baseline for Pi0.5-Drift

Pi0.5 is a vision-language-action model from Physical Intelligence that decodes an action chunk by integrating a flow-matching ODE — 10 forward passes of the action expert per chunk. This model is the matched flow-matching baseline of the Pi0.5-Drift budget study: same base weights, data, initialization, batch, seed, and 100k LR schedule as zuoxingdong/pi05_drift_libero; the training objective is the only difference. Loads with vanilla LeRobot — no plugin needed.

Results

LIBERO, official lerobot-eval on lerobot==0.6.0, 3 eval seeds {1000, 1001, 1002}, 50 episodes/task, n_action_steps=10.

Suite FM — this model (10 NFE) Drift (1 NFE)
libero_spatial 98.5 ± 0.3 97.9 ± 1.0
libero_object 99.1 ± 0.6 99.0 ± 0.2
libero_goal 96.7 ± 0.5 98.1 ± 0.4
libero_10 (long horizon) 93.3 ± 0.7 94.7 ± 1.9
Overall average 96.9 97.4

Budget sweep — 25k/50k/75k/100k: FM 96.2 / 95.9 / 96.7 / 96.9 vs Drift 96.8 / 97.3 / 97.7 / 97.4.

Evaluation

Needs a graphics-capable node for the MuJoCo/LIBERO renderer, and access to the gated Pi0.5 tokenizer google/paligemma-3b-pt-224 (request access, then hf auth login).

pip install "lerobot[pi,libero]>=0.6.0,<0.7" "mujoco==3.3.2"

lerobot-eval \
  --policy.path=zuoxingdong/pi05_fm_libero \
  --policy.n_action_steps=10 \
  --env.type=libero \
  --env.task=libero_spatial \
  --eval.n_episodes=50 \
  --eval.batch_size=2 \
  --eval.use_async_envs=true \
  --seed=1000 \
  --output_dir=eval/pi05_fm_libero

Finetune on your data

lerobot-train \
  --policy.type=pi05 \
  --policy.pretrained_path=zuoxingdong/pi05_fm_libero \
  --policy.dtype=bfloat16 \
  --policy.gradient_checkpointing=true \
  --dataset.repo_id=lerobot/libero \
  --dataset.revision=a1aaacb7f6cd6ee5fb43120f673cebb0cfea7dd4 \
  --batch_size=56 \
  --steps=10000

The dataset shown is the one this model was trained on — lerobot/libero (LIBERO, LeRobot v3 format), pinned to the training revision. To finetune on your own data, swap in your --dataset.repo_id.

Training details & provenance

  • Base: lerobot/pi05_libero VLM with a freshly re-initialized action expert, full-parameter finetune on lerobot/libero (all four suites), MEAN_STD normalization, bf16, effective batch 56, LR 2.5e-5 cosine-decayed over 100k steps (this checkpoint = step 100k, schedule end), seed 1000, num_inference_steps=10.
  • Stack: lerobot==0.6.0, trained via the lerobot_policy_pi05_drift plugin with use_drifting_loss=false (the plugin provides the fresh-expert initialization; with the drift loss disabled its path is stock Pi0.5 flow matching). This release's config.json is standard "type": "pi05"weights byte-identical to the training checkpoint — so it loads with vanilla LeRobot.

License

Weights derive from Pi0.5 / PaliGemma and are distributed under the Gemma license, matching the upstream lerobot/pi05_libero release.

Downloads last month
16
Safetensors
Model size
4B params
Tensor type
F32
·
BF16
·
Video Preview
loading