Instructions to use Frobotics/smolvla-eval1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use Frobotics/smolvla-eval1 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=Frobotics/smolvla-eval1 \ --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=Frobotics/smolvla-eval1 - Notebooks
- Google Colab
- Kaggle
| 2026-05-12 17:06:40,605 INFO MainThread:50 [wandb_setup.py:_flush():81] Current SDK version is 0.24.2 | |
| 2026-05-12 17:06:40,605 INFO MainThread:50 [wandb_setup.py:_flush():81] Configure stats pid to 50 | |
| 2026-05-12 17:06:40,605 INFO MainThread:50 [wandb_setup.py:_flush():81] Loading settings from environment variables | |
| 2026-05-12 17:06:40,605 INFO MainThread:50 [wandb_init.py:setup_run_log_directory():717] Logging user logs to /home/user_lerobot/checkpoints/smolvla_smoketest/wandb/run-20260512_170640-t96p1nle/logs/debug.log | |
| 2026-05-12 17:06:40,605 INFO MainThread:50 [wandb_init.py:setup_run_log_directory():718] Logging internal logs to /home/user_lerobot/checkpoints/smolvla_smoketest/wandb/run-20260512_170640-t96p1nle/logs/debug-internal.log | |
| 2026-05-12 17:06:40,605 INFO MainThread:50 [wandb_init.py:init():844] calling init triggers | |
| 2026-05-12 17:06:40,606 INFO MainThread:50 [wandb_init.py:init():849] wandb.init called with sweep_config: {} | |
| config: {'dataset': {'repo_id': 'Frobotics/banana_bowl_expert', 'root': None, 'episodes': None, 'image_transforms': {'enable': False, 'max_num_transforms': 3, 'random_order': False, 'tfs': {'brightness': {'weight': 1.0, 'type': 'ColorJitter', 'kwargs': {'brightness': [0.8, 1.2]}}, 'contrast': {'weight': 1.0, 'type': 'ColorJitter', 'kwargs': {'contrast': [0.8, 1.2]}}, 'saturation': {'weight': 1.0, 'type': 'ColorJitter', 'kwargs': {'saturation': [0.5, 1.5]}}, 'hue': {'weight': 1.0, 'type': 'ColorJitter', 'kwargs': {'hue': [-0.05, 0.05]}}, 'sharpness': {'weight': 1.0, 'type': 'SharpnessJitter', 'kwargs': {'sharpness': [0.5, 1.5]}}, 'affine': {'weight': 1.0, 'type': 'RandomAffine', 'kwargs': {'degrees': [-5.0, 5.0], 'translate': [0.05, 0.05]}}}}, 'revision': None, 'use_imagenet_stats': True, 'video_backend': 'torchcodec', 'return_uint8': False, 'streaming': False}, 'env': None, 'policy': {'type': 'smolvla', 'n_obs_steps': 1, 'input_features': {}, 'output_features': {}, 'device': 'cuda', 'use_amp': False, 'use_peft': False, 'push_to_hub': True, 'repo_id': 'Frobotics/smolvla-eval1', 'private': None, 'tags': None, 'license': None, 'pretrained_path': 'lerobot/smolvla_base', 'chunk_size': 50, 'n_action_steps': 50, 'normalization_mapping': {'VISUAL': <NormalizationMode.IDENTITY: 'IDENTITY'>, 'STATE': <NormalizationMode.MEAN_STD: 'MEAN_STD'>, 'ACTION': <NormalizationMode.MEAN_STD: 'MEAN_STD'>}, 'max_state_dim': 32, 'max_action_dim': 32, 'resize_imgs_with_padding': [512, 512], 'empty_cameras': 0, 'adapt_to_pi_aloha': False, 'use_delta_joint_actions_aloha': False, 'tokenizer_max_length': 48, 'num_steps': 10, 'use_cache': True, 'freeze_vision_encoder': True, 'train_expert_only': True, 'train_state_proj': True, 'optimizer_lr': 0.0001, 'optimizer_betas': [0.9, 0.95], 'optimizer_eps': 1e-08, 'optimizer_weight_decay': 1e-10, 'optimizer_grad_clip_norm': 10, 'scheduler_warmup_steps': 1000, 'scheduler_decay_steps': 30000, 'scheduler_decay_lr': 2.5e-06, 'vlm_model_name': 'HuggingFaceTB/SmolVLM2-500M-Video-Instruct', 'load_vlm_weights': False, 'add_image_special_tokens': False, 'attention_mode': 'cross_attn', 'prefix_length': -1, 'pad_language_to': 'longest', 'num_expert_layers': -1, 'num_vlm_layers': 16, 'self_attn_every_n_layers': 2, 'expert_width_multiplier': 0.75, 'min_period': 0.004, 'max_period': 4.0, 'rtc_config': None, 'compile_model': False, 'compile_mode': 'max-autotune'}, 'reward_model': None, 'output_dir': '/home/user_lerobot/checkpoints/smolvla_smoketest', 'job_name': 'smolvla_eval1', 'resume': False, 'seed': 1000, 'cudnn_deterministic': False, 'num_workers': 4, 'batch_size': 32, 'prefetch_factor': 4, 'persistent_workers': True, 'steps': 15000, 'eval_freq': 20000, 'log_freq': 200, 'tolerance_s': 0.0001, 'save_checkpoint': True, 'save_freq': 3000, 'use_policy_training_preset': True, 'optimizer': {'type': 'adamw', 'lr': 0.0001, 'weight_decay': 1e-10, 'grad_clip_norm': 10, 'betas': [0.9, 0.95], 'eps': 1e-08}, 'scheduler': {'type': 'cosine_decay_with_warmup', 'num_warmup_steps': 1000, 'num_decay_steps': 30000, 'peak_lr': 0.0001, 'decay_lr': 2.5e-06}, 'eval': {'n_episodes': 50, 'batch_size': 8, 'use_async_envs': True}, 'wandb': {'enable': True, 'disable_artifact': False, 'project': 'lerobot', 'entity': 'rob-picks-bananas', 'notes': None, 'run_id': None, 'mode': None, 'add_tags': True}, 'peft': None, 'sample_weighting': None, 'rename_map': {}, 'checkpoint_path': None, '_wandb': {}} | |
| 2026-05-12 17:06:40,606 INFO MainThread:50 [wandb_init.py:init():892] starting backend | |
| 2026-05-12 17:06:40,922 INFO MainThread:50 [wandb_init.py:init():895] sending inform_init request | |
| 2026-05-12 17:06:40,931 INFO MainThread:50 [wandb_init.py:init():903] backend started and connected | |
| 2026-05-12 17:06:40,937 INFO MainThread:50 [wandb_init.py:init():973] updated telemetry | |
| 2026-05-12 17:06:40,938 INFO MainThread:50 [wandb_init.py:init():997] communicating run to backend with 90.0 second timeout | |
| 2026-05-12 17:06:42,576 INFO MainThread:50 [wandb_init.py:init():1042] starting run threads in backend | |
| 2026-05-12 17:06:42,771 INFO MainThread:50 [wandb_run.py:_console_start():2529] atexit reg | |
| 2026-05-12 17:06:42,771 INFO MainThread:50 [wandb_run.py:_redirect():2377] redirect: wrap_raw | |
| 2026-05-12 17:06:42,771 INFO MainThread:50 [wandb_run.py:_redirect():2446] Wrapping output streams. | |
| 2026-05-12 17:06:42,771 INFO MainThread:50 [wandb_run.py:_redirect():2469] Redirects installed. | |
| 2026-05-12 17:06:42,782 INFO MainThread:50 [wandb_init.py:init():1082] run started, returning control to user process | |
| 2026-05-12 19:01:26,247 INFO wandb-AsyncioManager-main:50 [service_client.py:_forward_responses():94] Reached EOF. | |
| 2026-05-12 19:01:26,247 INFO wandb-AsyncioManager-main:50 [mailbox.py:close():154] Closing mailbox, abandoning 2 handles. | |