π₀.₅ MolmoAct2 BimanualYAM
Fine-tuned π₀.₅ on the MolmoAct2-BimanualYAM-Dataset (3 cameras: top → left → right).
main holds the final 200,000-step checkpoint. The earlier 100k checkpoint that previously occupied main is still available at the step-100000 tag.
Checkpoint details
| Setting | Value |
|---|---|
| Training step | 200000 (final) |
| Cameras | top, left, right |
| Action dim | 14 (absolute joints + grippers) |
| Chunk size | 30 (@ 30 Hz) |
| VLM | unfrozen (freeze_vision_encoder=false, train_expert_only=false) |
| Base model | lerobot/pi05_base |
| Gripper range | [0, 1] (continuous) |
Training
Full fine-tune (~4.1B trainable), bf16, gradient checkpointing, normalization by quantiles.
| Hardware | 16×H100 (2 nodes × 8) |
| Batch size | 16/GPU → global 256 |
| Schedule | peak LR 2.5e-5, 1k warmup, cosine decay to 2.5e-6 over 200k steps |
| Samples seen | 51.2M (≈0.67 epochs) |
| Final train loss | ≈0.028 |
Run in two phases: 0→100k, then resumed 100k→200k.
Available revisions
| Revision | Step |
|---|---|
main | 200000 |
step-100000 | 100000 |
Usage (LeRobot)
from lerobot.policies.pi05.modeling_pi05 import PI05Policy
from lerobot.policies.factory import make_pre_post_processors
ckpt = "helen9975/pi05-molmoact-yam"
policy = PI05Policy.from_pretrained(ckpt)
preprocessor, postprocessor = make_pre_post_processors(policy.config, pretrained_path=ckpt)
# earlier checkpoint:
# policy = PI05Policy.from_pretrained(ckpt, revision="step-100000")
Evaluation
No evaluation has been run on this 200k checkpoint yet.
The open-loop numbers previously reported here (MSE 0.00140, MAE 0.0211) were measured on the 100k checkpoint (step-100000), on 2 held-out episodes with stride 30 and reset-each-step — a smoke test, not a benchmark.