Instructions to use Aether258/pi05_bi_task1_all_step8000 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use Aether258/pi05_bi_task1_all_step8000 with LeRobot:
- Notebooks
- Google Colab
- Kaggle
pi05_bi β task1_all β step 8000
openpi pi05_bi checkpoint, snapshot at training step 8000.
Task: "Use the left hand to pick up the black tube, and then transfer it to the
right hand and place it into the rack."
Data
Merged from three LeRobot v2.1 datasets (30 fps, images embedded in parquet,
total_videos=0):
| source | episodes | frames |
|---|---|---|
KaiyueChen/task1_01 |
550 | 375,061 |
KaiyueChen/task1_02 |
200 | 130,902 |
KaiyueChen/task1_03 |
200 | 114,987 |
| merged | 950 | 620,950 |
task1_01 shipped with the placeholder task string perform manipulation task
while 02/03 carried the full description. Since prompt_from_task=True feeds
this string to the model, all episodes were unified to the 02/03 wording at
merge time β otherwise 58% of the data would train against an uninformative
prompt.
Split (per-source 10% held out, seed 42): train 855 / val_seen 95 / val_unseen 95. Normalization statistics were computed over the train split only.
Model & training
- 6 camera streams:
camera0,camera1,tactile_{left,right}_{0,1} state_dim=20,action_dim=20,action_horizon=50- LoRA on the PaliGemma LLM (rank 16) and the action expert (rank 32)
- The SigLIP vision tower is fully fine-tuned, not LoRA β openpi's
get_freeze_filter()matches.*llm.*only, soPaliGemma/img/*stays trainable. That is 413M of the 463M trainable parameters (89.8%). - batch size 128, FSDP over 2ΓA100-80GB,
ema_decay=None CosineDecayScheduledefaults: peak_lr 2.5e-5, warmup 1000, decay_steps 30000- init from
gs://openpi-assets/checkpoints/pi05_base/params
One epoch is 4356 steps, so step 8000 β 1.8 epochs.
Validation at this checkpoint
Loss is the flow-matching training objective evaluated with train=False
(image augmentation disabled), averaged over a fixed set of batches with a
fixed rng so successive points differ only by the model.
| step | val_seen | val_unseen |
|---|---|---|
| 2000 | 0.0575 | 0.0534 |
| 4000 | 0.0530 | 0.0501 |
| 6000 | 0.0497 | 0.0482 |
| 8000 | 0.0483 | 0.0470 |
val_unseen was still decreasing monotonically at this checkpoint β no
overfitting turn had occurred yet. (A previous run on a different dataset
bottomed out at step 8000 and then degraded, which is why this step was
snapshotted.)
Caveat on the numbers: validation used val_batches=20 at batch size 128 =
2560 frames, and episodes here average 653 frames, so each evaluation covers
only the first 4 episodes of each split (5.4%). The absolute trend of
val_unseen is meaningful (identical episodes and rng every time), but the
seen-vs-unseen difference rests on 4 episodes per side and should not be read
as a generalization gap.
Contents
Orbax checkpoint: params/, train_state/, assets/, _CHECKPOINT_METADATA.