SmolVLA fine-tuned on ArmnetBench v0.1 (8 single-arm SO-101 tasks)

Fine-tuned from lerobot/smolvla_base on the human-teleoperated reference demonstrations of armnet/armnetbench_v01_lerobot_so101 (revision v1.0).

Data

Only the 400 policy_type == "teleoperated" episodes were used (50 per task × 8 tasks, 120,735 frames, 20 fps) — the other ~2,099 episodes in that dataset are policy rollouts (ACT/Diffusion/SmolVLA/π0/π0.5/GR00T-N1.7/MolmoAct2), including failures and suboptimal trajectories, and were excluded to avoid training on incorrect/noisy actions.

Tasks: block_stack, cable_clip, cable_unclip, eye_drops_to_basket, eye_drops_to_shelf, ring_insert, tool_insert, tool_removal.

Cameras: front (576×1024), top (576×1024), wrist (720×1280), renamed to observation.images.camera{1,2,3} respectively to match the smolvla_base checkpoint's expected input keys — pass the same --rename_map at inference/eval time.

Training

  • 4× NVIDIA H200, accelerate DDP (--multi_gpu --num_processes=4, bf16)
  • Full fine-tune: freeze_vision_encoder=false, train_expert_only=false
  • batch_size=64 per GPU × 4 = 256 effective
  • steps=20000 (cosine decay, scheduler_warmup_steps=1000, scheduler_decay_steps=20000)
  • ~42 epochs over the 400-episode set
  • Final train loss: 0.65 → 0.013, grad norm stabilized ~0.2
  • Wall-clock: ~4h07m

Usage

from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy

policy = SmolVLAPolicy.from_pretrained("<repo_id>")

Trained with LeRobot.

Downloads last month
18
Safetensors
Model size
0.5B params
Tensor type
F32
·
BF16
·
Video Preview
loading

Model tree for pythonsong/smolvla-armnetbench-8task

Finetuned
(8018)
this model