lerobot/svla_so101_pickplace
Viewer • Updated • 11.9k • 2.56k • 42
How to use Kaminoikari/smolvla-so101-pickplace-ft 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=Kaminoikari/smolvla-so101-pickplace-ft \ --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=Kaminoikari/smolvla-so101-pickplace-ft# Launch finetuning on your dataset
python lerobot/scripts/train.py \
--policy.path=Kaminoikari/smolvla-so101-pickplace-ft \
--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=Kaminoikari/smolvla-so101-pickplace-ftFine-tune of lerobot/smolvla_base (450M VLA)
on the real-robot SO-101 dataset
lerobot/svla_so101_pickplace
(50 teleoperated episodes, 2 cameras up/side, 6-DoF state).
lerobot/svla_so101_pickplace
lerobot/svla_so101_pickplace
lerobot/svla_so101_pickplace
(50 teleoperated episodes, 2 cameras up/side, 6-DoF state).
| Base | lerobot/smolvla_base |
| Dataset | lerobot/svla_so101_pickplace (50 ep / 11,939 frames) |
| Steps | 2,000 (batch size 8) |
| GPU | single T4 (~78 min) |
| Camera mapping | up to camera1, side to camera2 via --rename_map |
| Loss | 0.410 to 0.141 (monotonic) |
This is a pipeline-validation / learning run, not a production policy.
lerobot-record) was not run (no hardware). Reported signal is training-loss
convergence only, which proves the model is learning, not real-world task success.from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("Kaminoikari/smolvla-so101-pickplace-ft")
Base model
lerobot/smolvla_base
# 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]