Instructions to use kimy0420/smolvla_v10 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use kimy0420/smolvla_v10 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=kimy0420/smolvla_v10 \ --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=kimy0420/smolvla_v10 - Notebooks
- Google Colab
- Kaggle
smolvla_v10 — 목표를 언어 대신 관측으로 준 SmolVLA
섞여 있는 알약 중 지정한 색 하나만 집어 약통에 담습니다.
lerobot/smolvla_base 를 224 에피소드로 미세조정했습니다.
실기 결과: 색을 구분해 집는 데 성공 — SmolVLA 계열로는 처음 (2026-08-22)
왜 언어를 안 쓰는가
"pick red pill" 이라는 문장으로 목표를 준 판을 아홉 번 만들었고
전부 실패했습니다 (자기색 대비 0.89 ~ 2.02, 기준선 1.02).
원인을 모델 내부에서 직접 쟀습니다.
| 토큰 수 | 값 크기 | |
|---|---|---|
| 이미지 임베딩 | 64 | 123.5 |
| 언어 임베딩 | 48 | 1.43 |
86배 작습니다. 지시문을 바꿔도 prefix 가 0.017% 밖에 안 변합니다. 무시해도 손실이 오르지 않으니 실제로 무시합니다.
신호를 86배 증폭하고 FiLM 을 붙여 79배(0.017% → 1.335%) 로 키운 판도 1.09 였습니다. 신호 크기만으로는 안 됩니다 — 사전학습된 언어 경로가 이미 무시하도록 굳어 있습니다.
그래서 경로를 바꿨습니다
SmolVLA 의 상태는 32차원까지 채워지는데 로봇 관절은 6개뿐이라 26칸이 비어 있습니다. 그 자리에 목표 좌표를 넣었습니다.
observation.state = [관절 6] + [goal_u, goal_v] × 13
이 경로는 train_state_proj=True 인 학습되는 선형층을 지납니다.
초기 신호는 오히려 더 약했지만(0.013% 대 언어 0.079%), 그래디언트가
직접 키우므로 초기값이 아니라 학습 가능성이 관건입니다.
학습량은 목표 추종을 바꾸지 못했습니다
2.0 → 9.8 에폭까지 22시간을 돌려 확인했습니다.
| 에폭 | 자유 좌표 상관 |
|---|---|
| 2.0 | +0.310 |
| 5.9 | +0.314 |
| 7.8 | +0.310 |
| 9.8 | +0.312 |
| ACT (8.1) | +0.484 |
5배를 더 돌려 +0.002 입니다. 같은 8~10 에폭에서 ACT 는 0.484 이므로 학습 부족이 아니라 구조의 차이입니다. 기울기는 +0.30 대 +0.29 로 같아 "요구한 만큼 움직이는 정도"는 같고, 상관이 낮은 것은 흔들림이 크다는 뜻입니다.
체크포인트를 080000 으로 고른 이유
실기로 하나씩 확인해 골랐습니다. 오프라인으로는 고를 수 없었습니다.
| 체크포인트 | 오프라인 | 실기 |
|---|---|---|
| 020000 | +0.310 | 움직임이 거침 |
| 070000 | +0.322 (1위) | 알약을 떨어뜨림 |
| 080000 | +0.310 | 가장 나음 |
오프라인 1위가 실기에서 실패했습니다. 회복 시연 7개가 "실패하면 재시도"를 가르친 영향으로 보입니다.
쓰는 법
from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("kimy0420/smolvla_v10")
observation.state 의 6번 칸부터 목표 좌표를 (u,v) × 13 으로 채워야 합니다.
데이터셋: kimy0420/pill_v3_uvstate
사양
| 항목 | 값 |
|---|---|
| 기반 | lerobot/smolvla_base (SmolVLM2-500M + Action Expert) |
| 구조 | flow matching, chunk 50 |
| 학습 | 80,000 스텝 · 배치 24 · 7.8 에폭 |
| 관측 | top·wrist 카메라, 관절 6 + 목표 좌표 26 |
| 체크포인트 | 080000 |
알아둘 것
- 색 판별은 정책이 아니라 HSV 검출기가 합니다. 언어로 색을 이해하는 SmolVLA 는 이 데이터 규모(224 에피소드)에서는 만들지 못했습니다. 검출기 없이 색을 구분하는 것은 act_film_224 를 보십시오.
- temporal ensembling 은 쓸 수 없습니다 (ACT 전용 설정입니다).
- ACT 대비 목표 추종이 덜 정밀합니다 (+0.31 대 +0.48).
- Downloads last month
- 14
Model tree for kimy0420/smolvla_v10
Base model
lerobot/smolvla_base