jcapmeil/cupflow-lerobot
Franka Panda • Updated • 150 episodes • 710
How to use jcapmeil/smolvla-cupflow with LeRobot:
# See https://github.com/huggingface/lerobot?tab=readme-ov-file#installation for more details git clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e .[smolvla]
# Launch finetuning on your dataset python lerobot/scripts/train.py \ --policy.path=jcapmeil/smolvla-cupflow \ --dataset.repo_id=lerobot/svla_so101_pickplace \ --batch_size=64 \ --steps=20000 \ --output_dir=outputs/train/my_smolvla \ --job_name=my_smolvla_training \ --policy.device=cuda \ --wandb.enable=true
# Run the policy using the record function
python -m lerobot.record \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \ # <- Use your port
--robot.id=my_blue_follower_arm \ # <- Use your robot id
--robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \ # <- Use your cameras
--dataset.single_task="Grasp a lego block and put it in the bin." \ # <- Use the same task description you used in your dataset recording
--dataset.repo_id=HF_USER/dataset_name \ # <- This will be the dataset name on HF Hub
--dataset.episode_time_s=50 \
--dataset.num_episodes=10 \
--policy.path=jcapmeil/smolvla-cupflowSmolVLA (lerobot/smolvla_base) fine-tuned on jcapmeil/cupflow-lerobot (150 episodes, 604k frames).
| LeRobot | 0.4.4 |
| Steps | 20,000 (batch 64, ~2.1 epochs) |
| Final loss | 0.012 (step 100: 0.439, 10k: 0.016) |
| LR schedule | warmup 666 → cosine decay to 2.5e-06 |
| Hardware | 1× L40S, ~4 h |
| Trainable params | 100M of 450M |
Checkpoint: step 20,000 (final).
The model was trained with the dataset's cameras renamed:
| dataset key | policy key |
|---|---|
observation.images.top |
observation.images.camera1 |
observation.images.wrist |
observation.images.camera2 |
At inference, either name the robot's cameras camera1 and camera2, or apply the same rename map. Otherwise the policy will either fail or receive the wrong images. The config also lists camera3, inherited from smolvla_base; it was not present in training.
--policy.path=jcapmeil/smolvla-cupflow
Training flags: --rename_map='{"observation.images.top": "observation.images.camera1", "observation.images.wrist": "observation.images.camera2"}' --tolerance_s=1e-3
Base model
HuggingFaceTB/SmolLM2-360M