--- license: apache-2.0 tags: - robotics - vla - pi0 - droid - molmobot - lora --- # MolmoBot-Pi0 — DROID-toys, absolute joint, r64 LoRA (merged) Whole-model rank-64 LoRA fine-tune of [MolmoBot-Pi0-DROID](https://huggingface.co/shrg7/MolmoBot-Pi0-DROID-equad) on [`shrg7/droid-toys`](https://huggingface.co/datasets/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`](https://huggingface.co/shrg7/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.