MolmoBot-Pi0 — DROID-toys, absolute joint, r64 LoRA (merged)

Whole-model rank-64 LoRA fine-tune of MolmoBot-Pi0-DROID on shrg7/droid-toys, with absolute joint-position action targets.

The LoRA has already been merged into the base weights. The uploaded model.safetensors is flat (777 tensors, identical key set to the full-FT counterpart) and loads directly into a plain PI0Pytorch — no PEFT, no adapter folding needed at load time.

Checkpoint

  • Step 3500, val_action_loss = 0.0274
  • Merged with scripts/merge_pi0_lora.py (folds lora_B @ lora_A * alpha/r, α/r = 128/64 = 2.0; 333 modules folded)
  • assets/ holds the norm stats; metadata.pt the run metadata
  • Optimizer state is not included (inference/eval only, no resume)

Training

Config molmobot_pi0_lerobot_droid_absjoint
Dataset shrg7/droid-toys (LeRobot v3.0) — 31 episodes / 6,952 frames @15fps
Action repr joint_absolute — targets are future absolute joint positions q[t+1], 8-dim (7 arm + gripper)
Action horizon 16
Cameras exterior_1_left (exo) + wrist_left, 224×224 resize-with-pad
LoRA r=64, α=128, dropout 0.05, targets q/k/v/o/gate/up/down_proj across the VLM + action expert
Trainable 118,112,256 params (3.26% of 3.62B); vision_tower frozen
Batch 32, 1× NVIDIA L40
LR 5e-5 constant (300-step warmup; peak_lr == decay_lr, so the cosine is flat)
Steps 3,500 of a planned 8,000

Validation curve

step val_action_loss
2000 0.0331
2500 0.0313
3000 0.0273
3500 0.0274

Caveats

This checkpoint is under-trained: the run was cut short by a wall-clock limit at 3,500 of 8,000 steps, with the loss curve still descending steeply.

Do not read the gap against the full-FT checkpoint (MolmoBot-Pi0-DROID-toys-absjoint-fullft, val 0.0079) as a LoRA-vs-full-FT result. That run completed its full schedule at 4× the effective batch; the two are not comparable at this point in training.

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
4B params
Tensor type
F32
·
BF16
·
Video Preview
loading