SmolVLA — so100_black_cube (full fine-tune)
Full fine-tune of lerobot/smolvla_base on
Mehul2112/so100_black_cube_merged
(SO-100, single front camera, 130 episodes).
Recipe
- Mode: full fine-tune — VLM backbone unfrozen (
train_expert_only=false,freeze_vision_encoder=false). - Learnable params: ~403M of ~450M (vision encoder + language model + action expert).
- Batch size: 32 · AMP: bf16 · Optimizer LR: ~1e-4 with decay.
- Hardware: single RTX 4090 (24 GB).
Checkpoint
This repo holds the step-14000 checkpoint.
| Step | Train loss | Eval loss (15% held-out) |
|---|---|---|
| 2000 | 0.186 | 0.314 ← eval minimum |
| 4000 | 0.137 | 0.376 |
| 6000 | 0.105 | 0.414 |
| 8000 | 0.085 | 0.476 |
| 10000 | 0.069 | 0.565 |
| 12000 | 0.055 | 0.643 |
| 14000 | 0.048 | 0.723 |
| 16000 | 0.047 | 0.759 |
| 18000 | ~0.047 | 0.784 |
| 20000 | ~0.047 | 0.787 |
Note: Eval loss reached its minimum at step 2000 and rose monotonically afterward (overfitting on a small 110-episode training split). This step-14000 checkpoint has a very low training loss (0.048) but is well past the generalization optimum. For best real-robot generalization, the step-2000 checkpoint is preferable.
Usage
from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("Mehul2112/smolvla_black_cube_fullft")