Fine-tuning of pi0-FAST (PaliGemma-3B VLA + FAST action tokenizer) on a bimanual YAM robot teleoperation dataset, trained with the openpi framework (JAX/Flax).
⚠️ Format note: These are openpi checkpoints (Orbax/JAX) — not HuggingFace PEFT adapters. Load them with openpi (create_trained_policy), not PeftModel.from_pretrained. See Load Example.
Normalization statistics (norm_stats.json) are bundled in each checkpoint's assets/ directory.
Checkpoints
Each step subdir is a full openpi checkpoint containing params/, train_state/ (optimizer moments + step, for resuming), assets/ (norm stats), and _CHECKPOINT_METADATA.
Step
Notes
2000/
intermediate (first run)
2500/
intermediate (first run)
5000/
intermediate (second run)
6999/
final model — full 7,000-step training
The model was trained in two phases: an initial run through step 2,500, then resumed from that checkpoint and trained to completion at step 6,999. Older intermediate checkpoints were pruned (max_to_keep=1 + keep_period=5000).
train loss
Load Example (openpi)
python
1from openpi.training import config as _config
2from openpi.policies import policy_config
34# 1. Load the training config used for this model5config = _config.get_config("pi0_fast_yam_low_mem_finetune")67# 2. Point at a downloaded checkpoint step directory (e.g. the final 6999/)8checkpoint_dir ="path/to/pi0-fast-yam/6999"910# 3. Build the inference policy (loads params + norm stats from assets/)11policy = policy_config.create_trained_policy(config, checkpoint_dir)1213# 4. Run inference14# obs must contain the 3 camera views + observation.state + prompt15action_chunk = policy.infer(obs)["actions"]