
SmolVLA нь нэг 24 ГБ карт дээр нарийвчлан тааруулагддаг 450 сая параметртэй VLA юм. Бодит lerobot 0.6.1 командуудыг, жинхэнэ анхдагч тохиргоог, нэг өдөр алдсан алдаануудыг болон нэг ажиллагааны зардлыг эндээс үзнэ үү.
SmolVLA нэг дэлгэцэн дээр
- •450 сая параметр, үүнээс 100 сая орчим нь урсгалыг тааруулах үйлдлийн эксперт. lerobot зөвхөн тэр экспертийг сургаж, VLM-ийг хөлдөөсөн байлгадаг тул нэг карт дээр багтдаг.
- •LeRobot-ын тооцооллын гарын авлагад smolvla бүлгийг AdamW-тэй 8 багц дээр оргил VRAM-ийн хэмжээг ойролцоогоор 10-16 ГБ гэж заасан. Иймээс 24 ГБ шаардлагатай.
- •Нэвтрэх цэг нь lerobot-train. 2025 оны 6-р сарын SmolVLA блог нийтлэлд одоо ч python lerobot/scripts/train.py гэж хэвлэсэн байдаг ч энэ зам одоо байхгүй болсон. Доорх бүх зүйл нь lerobot 0.6.1.
- •Косинус хуваарь нь 30000 алхамд задрахаар урьдчилан тохируулагдсан. lerobot 0.6.1 үүнийг богино хугацааны ажиллагаанд зориулж багасгаж бүртгэдэг боловч хэзээ ч нэмэгдүүлдэггүй: стандарт 100000 алхамтай ажиллагаа нь 70000 алхамд 2.5e-6 шалан дээр дуусдаг.
- •Гучин анги нь AY-Robots-ын хамгийн бага хэмжээ бөгөөд 24 ГБ-ын түвшинд нэг ажиллагаа нь 1-3 ам.доллар, харин 80 ГБ-ын загварууд 4-12 ам.доллар байдаг.
Ихэнх хүмүүс харааны хэлний үйлдлийн загвар бодит гар дээр ашиглахыг хүсвэл техник хангамжийн хязгаарт тулгардаг. GR00T N1.7 болон Pi0.5 тус бүр гурван тэрбум орчим параметр бөгөөд A100 80 ГБ эсвэл H100 шаарддаг. Хэрэв танд RTX 4090-тэй тоглоомын компьютер байгаа бол энэ нь замын төгсгөл юм. SmolVLA бол үл хамаарах зүйл: 450 сая параметр, LeRobot дотор, нэг хэрэглээний карт дээр нарийн тааруулах, мөн CPU-ээс үйлчлэх зорилгоор бүтээгдсэн.
Эхлээд гарын авлагын арга: lerobot суулгах, lerobot/smolvla_base шалгах цэгийг татах, бодит командыг ажиллуулах, ажиллаж байх үед нь унших. Дараа нь платформын арга, мөн энэ нь хаана тус болохгүй вэ.
SmolVLA гэж юу вэ, таны шалгаж болох тоогоор
SmolVLA нь урсгалын тааруулалт бодлогыг жижиг харааны хэлний загварт нэгтгэсэн загвар юм. Үндсэн бүтэц нь SmolVLM2-500M-Video-Instruct бөгөөд уг баримт бичигт түүний хэлний загварын эхний 16 давхаргыг л ашиглаж, камерын хүрээ бүрийг зураг хавтанцарлахын оронд пикселийн холигчоор 64 харааны токен болгон хязгаарлаж, хоёр дахь блок бүрт хөндлөн анхаарлыг өөрийн анхаарлын давхаргатай ээлжлүүлэн ашигласан байна. Таамаглалын зардал нь дизайны хязгаарлалт байсан бөгөөд хожим бодож олсон зүйл биш байв.
| Шинж чанар | Утга | Эх сурвалж |
|---|---|---|
| Нийт параметр | about 450 M | paper |
| Үйлдлийн мэргэжилтэн | about 100 M, flow matching | paper |
| VLM үндсэн бүтэц | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| Ашигласан VLM давхаргууд | first 16 of the language model | num_vlm_layers = 16 |
| Хүрээ тутамд харааны токен | 64, pixel shuffle, no tiling | paper |
| Урьдчилсан сургалт | 481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUs | paper |
450 сая параметртэй загварыг хүмүүс яагаад сонирхож байгаагийн шалтгаан нь гүйцэтгэлийн үнэлгээ юм. LIBERO дээр энэ нь 7B OpenVLA-ийн 76.5 хувь, 3.3B робот техникээр урьдчилан сургасан Pi0-ийн 86.0 хувьтай харьцуулахад дунджаар 87.3 хувьтай байна; Meta-World дээр 47.9 хувьтай харьцуулахад 57.3 хувьтай байна. Бодит SO-100 техник хангамж дээр олон үүрэгт сургалт нь сонгож байрлуулахад 75 хувь, давхарлахад 90 хувь, ангилахад 70 хувь, дунджаар 78.3 хувийн үр дүнг өгсөн бөгөөд үүнд ACT үүрэг тус бүрээр сургасан нь дунджаар 48.3 хувьтай байв. Эдгээр ижил мөрүүд нь нийтлэгдсэн VLA бүрийн хажууд SmolVLA талбайн бичилт болон ACT болон SmolVLA-ийн харьцуулалт.
SmolVLA нь 3B загвараас бүх зүйлд илүү сайн биш. Уг баримт бичгийн SO-101 хүснэгт нь үүнийг харуулж байна: тархалтад 90 хувийн амжилт, харин урьдчилан сургагдаагүй платформ дээр 50 хувийн амжилт. Гэсэн хэдий ч, Pi0-тэй харьцуулахад 6 дахин бага санах ой ашиглан 40 хувиар хурдан сургагддаг гэдгийг баримт бичигт дурдаж, баталсан.
Яагаад 24 ГБ карт нь эхний ажилд тохиромжтой вэ
LeRobot нь тооцооллын хэмжээг тодорхойлох гарын авлагыг нийлүүлдэг бөгөөд энэ нь репо дахь хамгийн хэрэгтэй хуудас юм. Энэ нь бодлогуудыг үндсэн бүтцийн хэмжээгээр бүлэглэж, бүлэг тус бүрд нэг VRAM-ийн хязгаарыг өгдөг бөгөөд энэ нь AdamW-тэй 8 багц хэмжээгээр хэмжигдсэн, lerobot-ийн анхдагч тохиргоо юм. Оптимизаторын төлөв нь зөвхөн урагш болон хойш дамжуулалтын үед 30-аас 100 хувиар нэмэгддэг тул эдгээр нь зөвхөн жингийн тоо биш юм.
| Бүлэг | Бодлогууд | Оргил VRAM (8 багц, AdamW) | Эхлэх GPU-ууд |
|---|---|---|---|
| Хөнгөн BC | act, vqbet, tdmpc | ойролцоогоор 2-оос 6 ГБ | RTX 3060, L4 |
| Диффузи | diffusion, multi_task_dit | ойролцоогоор 8-аас 14 ГБ | RTX 4070+, L4 |
| Жижиг VLA | smolvla | ойролцоогоор 10-аас 16 ГБ | RTX 4080+, L4, A10G |
| Том VLA | pi0, pi0_fast, pi05, xvla, wall_x | ойролцоогоор 24-өөс 40 ГБ | A100 40 GB+ |
| Олон модаль | groot, eo1 | ойролцоогоор 24-өөс 40 ГБ | A100 40 GB+ |
8 багц дээр аравнаас арван зургаан гигабайт нь гол үндэслэл юм: 24 ГБ карт нь үүнд нэмээд өгөгдөл ачаалагчийг багтаана. AY-Robots нь SmolVLA-г RTX 4090 эсвэл ямар ч 24 ГБ карт дээр суулгадаг бөгөөд хамгийн багадаа 30 эпизод, LeRobot v3.0 өгөгдөл, үйлдлийн алхам тутамд 245 мс. Түрээслэхэд, энэ нь цагт 0.30-аас 0.60 ам.доллараар 2-оос 5 цаг, ойролцоогоор 1-ээс 3 ам.доллар нарийн тааруулалт ажиллуулахад, 80 ГБ-ын GR00T болон Pi0.5-д шаардлагатай түвшинд 4-өөс 12 ам.доллартай харьцуулахад (үнэ). Амжилтгүй болсон SmolVLA ажиллуулалт нь кофе; амжилтгүй болсон GR00T ажиллуулалт нь үдийн хоолтой тэнцэнэ.

- Таны аль хэдийн эзэмшиж буй техник хангамжид тохирно: 8 багц дээр ойролцоогоор 10-аас 16 ГБ.
- Үр ашиггүй ажиллагаа нь олон цаг, нэг оронтой тооны долларын үнэтэй тул та өгөгдлийн багцын талаар буруу байсан ч хамаагүй.
- Lerobot шошго дор хуваалцсан олон нийтийн өгөгдлийн багцууд дээр урьдчилан сургагдсан бөгөөд бодит SO-100 болон SO-101 үр дүнтэй.
- Энэ нь lerobot дотор өөрөө байрладаг: ханган нийлүүлэгчийн репо байхгүй, мөн smolvla_base нь хаалттай биш.
- 450 M нь хэвээрээ 450 M: тархалтын гаднах амжилт нь тухайн баримт бичгийн SO-101 хүснэгтэд 90-ээс 50 хувь хүртэл буурсан.
- Энэ нь LeRobot v3.0 өгөгдөл шаарддаг; v2.1 бичлэгийг хөрвүүлэх шаардлагатай (dataset rejected v3).
- Үйлдлийн алхам тутамд 245 мс нь урвалд орох бус, харин чадварлаг сонгох, байрлуулах хянагч юм.
- Баримт бичгийн жишээ нь A100 дээр 64 багц ажиллуулдаг; 24 ГБ дээр та багцыг бодит цагийн хугацаагаар солино.
Алхам 0: өгөгдлийн багц нь ажиллагааг шийддэг, тугуудыг биш
Бичлэг муу байвал доорх зүйлс хамаагүй. LeRobot SmolVLA хуудас нь шулуухан хэлдэг: лавлах өгөгдлийн багц нь 5 шоо байрлалд нийт 50 анги, байрлал тутамд 10 анги байсан бөгөөд 25 анги дээрх ижил даалгавар муу гүйцэтгэгдсэн. Хувилбар тутамд давталт нь ерөнхийлөн дүгнэдэг, харин түүхий ангийн тоо биш. Хэзээ ч бичиж байгаагүй юу? Эхлэхдээ анхны өгөгдлийн багцаа бичих -ийг ашиглан ширээний компьютер клиент, энэ нь телеоперацийн сессээс LeRobot форматыг бичдэг, эсвэл өгөгдлийн багцын лавлах-аас нэгийг нь зээлж авна уу.
- AY-Robots дээр дор хаяж 30 анги, LeRobot-ийн лавлах жорд 50 орчим анги.
- Хэрэгжүүлэх үед таны хүлээж буй хувилбар бүрийг хэд хэдэн удаа давтана.
- Нэг даалгаврын мөрийг бичих болон хэрэгжүүлэх үед ижилхэн бичнэ. Загвар нь уг текстээс хамаарна.
- Тогтмол камерууд. Бичлэг хийх болон хэрэгжүүлэх үед камер хөдөлсөн нь цэвэр алдагдлын муруй хөдөлгөөнгүй гар өгөх хамгийн түгээмэл шалтгаан юм.
- Таны хэзээ ч сургаагүй, хадгалсан хувилбар, ингэснээр танд үнэн зөв турших зүйл байна.
SmolVLA, Pi0.5 болон ACT нь LeRobot v3.0-ийг хүсдэг. GR00T N1.7 болон N1.5 нь v2.0 эсвэл v2.1-ийг хүсдэг бөгөөд тэдний ачаалагч v3.0 дээр унадаг. Нэг удаа бичлэг хийж, дараа нь загваруудыг харьцуулахаар төлөвлө, тэгвэл та нэг аргаар эсвэл нөгөө аргаар хөрвүүлэх болно: dataset rejected v3.
# v2.1 -> v3.0: aggregates per-episode files into shards and writes the episode offsets
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=${HF_USER}/so100_pick_placeЭнэ тухай дэлгэрэнгүйг өндөр чанартай VLA сургалтын өгөгдлийг хэрхэн цуглуулах вэ. Товчхондоо: нэг даалгаврын 30-50 цэвэр анги, зориудаар өөрчлөлттэйгээр, гурван даалгаврын 200 хайнга ангийг ямар ч хэт параметр хааж чадахгүйгээр давна.
lerobot 0.6.1 суулгах
# LeRobot needs Python 3.12 or newer as of 0.6.x
conda create -y -n lerobot python=3.12
conda activate lerobot
# TorchCodec decodes the dataset videos and wants ffmpeg
conda install ffmpeg -c conda-forge
# Base package is deliberately thin; extras pull the rest
pip install 'lerobot[smolvla,training,core_scripts]'
# Sanity check: prints the lerobot version, the GPU torch sees, and the console scripts you got
lerobot-infoҮндсэн lerobot суулгац нь нимгэн бөгөөд нэмэлтүүдийн ард хүнд хамаарлуудыг хязгаарладаг: smolvla нь transformers, num2words болон accelerate-ийг нэмдэг, training нь өгөгдлийн багц болон wandb-ийг, core_scripts нь техник хангамж болон дүрслэлийн хамаарлуудыг нэмдэг. Линукс дээр суулгах зам нь таны CUDA wheel-ийг мөн тодорхойлдог: PyPI-ийн анхдагч нь 580.65-аас доошгүй драйвертай cu130 wheel байдаг тул хуучин драйвер дээр эхлээд cu128 индексээс torch-ийг суулгаад дараа нь lerobot-ийг суулгана.
--policy.path=lerobot/smolvla_base нь урьдчилан сургасан 450 M шалгалтын цэгийг ачаалж, нарийн тааруулдаг. --policy.type=smolvla нь шинэ SmolVLA-г үүсгэдэг бөгөөд тохиргооны анхдагч утга load_vlm_weights = False нь таныг хүсэхгүй бол SmolVLM2-ийн үндсэн жинг татахгүй гэсэн үг юм. Үүнийг буруу хийвэл ажиллагаа хэвийн явагдаж, ижил зардалтай байх боловч шилжүүлж болох юу ч сурахгүй.
Сургалтын ажиллагаа, тушаал тушаалаар
- 1Hub-д нэвтрэх
Суурь шалгах цэг Hub-аас ирдэг бөгөөд таны өгөгдлийн багц ч мөн адил байх магадлалтай.
bashhf auth login - 2Сонголтуудыг нэг удаа унших
Дамжуулах хоолой болон бодлогын тохиргооны талбар бүр нь туг юм. Эх кодыг судлахаасаа өмнө гүйлгэж харна уу.
bashlerobot-train --help - 3Нарийвчилсан тохируулгыг эхлүүлэх
Баримт бичгийн жишээ нь нэг A100 дээр 64 багц ажиллуулдаг; тооцооллын гарын авлагын A100 40 ГБ зангуу нь 16 багц, харин 8 нь 24 ГБ-тай тэнцүү юм. Энд зориудаар хуваарьт туг байхгүй, доороос харна уу.
bashlerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=${HF_USER}/so100_pick_place \ --batch_size=8 \ --steps=20000 \ --save_freq=2000 \ --log_freq=200 \ --seed=1000 \ --output_dir=outputs/train/smolvla_pick_place \ --job_name=smolvla_pick_place \ --policy.device=cuda \ --wandb.enable=true - 4Зөвхөн алдагдлыг биш, бүртгэлийн мөрийг унших
Lerobot нь --log_freq алхам тутамд loss, grdn, lr, updt_s, data_s, smp/s болон CUDA дээр mem_gb-г хэвлэдэг. mem_gb нь багц багтаж байгаа эсэх, lr нь хуваарь буурч байгаа эсэх, мөн data_s нь updt_s-д ойртож байгаа нь өгөгдөл ачаалагч нь саад болж байгааг илтгэдэг, GPU биш.
bash# if data_s creeps toward updt_s lerobot-train ... --num_workers=8 - 5Харьцуулах боломжтой шалгах цэгүүдийг цуглуулах
save_freq нь анхдагчаар 20000 байдаг тул 20000 алхамтай ажиллагаа нь нэг шалгах цэг үлдээж, харьцуулах зүйлгүй болгодог. 2000-г тохируулна уу. Hub руу түлхэхийн тулд --policy.repo_id шаардлагатай.
bash--save_freq=2000 \ --policy.repo_id=${HF_USER}/smolvla_pick_place \ --save_checkpoint_to_hub=true - 6Машин унтарвал үргэлжлүүлэх
--config_path-г шалгах цэгийн хажууд байрлах train_config.json руу чиглүүлнэ үү. lerobot нь таныг үргэлжлүүлж байгаагаас бусад тохиолдолд одоо байгаа output_dir руу эхлэхээс татгалздаг тул та санамсаргүйгээр ажиллагааг дарж бичих боломжгүй.
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
Үр дүнг бодитоор өөрчилдөг тугууд
| Туг | Юу хийдэг | 24 ГБ дээр |
|---|---|---|
| --batch_size | Алхам тутамд дээж авах, VRAM-д ойролцоогоор шугаман | 4 to 8 |
| --steps | Нийт оновчлогчийн алхамууд | 20000 first pass |
| --policy.scheduler_decay_steps | Косинус задралын урт, урьдчилан тохируулсан 30000 | Зөвхөн 30000-аас дээш үед нөлөөлнө |
| --policy.use_amp | Холимог нарийвчлал; SmolVLA нь dtype талбаргүй | Санах ой хомс үед true |
| --num_workers | Өгөгдөл ачаалагчийн процессууд, анхдагч 4 | data_s өсөхөө болих хүртэл нэмэгдүүлэх |
| --dataset.eval_split | Даалгавар тутамд хадгалсан ангиллын хэсэг | 0.1, with --eval_steps |
| --policy.freeze_vision_encoder | Харааны цамхагийг хөлдөөсөн хэвээр байлгана | true on 24 GB |
| --policy.train_expert_only | Зөвхөн ~100 сая мэргэжилтэн градиент авна | true first |
SmolVLA нь косинус хуваарийг урьдчилан тохируулдаг: scheduler_warmup_steps = 1000, scheduler_decay_steps = 30000, scheduler_decay_lr = 2.5e-6. Хуучин зөвлөгөөгөөр бол 20000 алхамтай ажил дунд хугацаандаа зогсдог байсан. 0.6.1 хувилбарт тийм биш: CosineDecayWithWarmupSchedulerConfig.build() нь --steps-ийг хүлээн авч, num_decay_steps-ээс доош байхад хоёуланг нь дахин масштабчилдаг, тухайлбал, 1000-аас 666 болгон халаалтыг, 30000-аас 20000 болгон бууралтыг, ингэхдээ Auto-scaling LR scheduler гэж хэвлэдэг. Дээшээ хэзээ ч дахин масштабчлахгүй: бууралт нь min(current_step, decay_steps)-ээр хязгаарлагддаг тул стандарт --steps=100000 нь 30000-р алхамаас эхлэн төгсгөл хүртэл, өөрөөр хэлбэл ажиллагааны 70 хувьд доод хязгаарт байрлана. Зөвхөн энэ урт тал нь --policy.scheduler_decay_steps-ийг шаарддаг хэвээр байна. lr баганаас та шалгаж болно.
Та юунд ч хүрэхгүй бол өвлөн авах анхдагч тохиргоонууд
Нэг бодлого тохиргоо нь lerobot-д өөрийн оновчлогч болон хуваарийн урьдчилсан тохиргоог агуулдаг бөгөөд хэрэв та use_policy_training_preset=false гэж тохируулаагүй бол эдгээр урьдчилсан тохиргоонууд давамгайлна. SmolVLA сургалтын талаар хүмүүсийн асуудаг асуултуудын тал хувь нь тэдний мэдэхгүй байсан анхдагч тохиргоогоор хариулагддаг.
| Тохиргоо | lerobot 0.6.1 дэх анхдагч утга | Тодорхойлсон газар |
|---|---|---|
| chunk_size / n_action_steps | 50 / 50 | SmolVLAConfig |
| num_steps (flow matching denoise) | 10 | SmolVLAConfig |
| optimizer_lr | 1e-4 | SmolVLAConfig |
| scheduler_warmup_steps | 1000 | SmolVLAConfig |
| scheduler_decay_steps | 30000 | SmolVLAConfig |
| scheduler_decay_lr | 2.5e-6 | SmolVLAConfig |
| freeze_vision_encoder | true | SmolVLAConfig |
| train_expert_only | true | SmolVLAConfig |
| batch_size / steps | 8 / 100000 | TrainPipelineConfig |
| seed / save_freq / num_workers | 1000 / 20000 / 4 | TrainPipelineConfig |
Хүмүүсийг гайхшруулдаг хоёр мөр бол freeze_vision_encoder болон train_expert_only, хоёулаа үнэн. Анхдагч тохиргоогоор та 450 M биш, ойролцоогоор 100 M параметрийг сургадаг бөгөөд энэ нь 24 GB-д багтах шалтгаан юм. LeRobot-ийн дөрвөн GPU H100 кластер дээрх өөрийн жишиг ажиллагаа нь хоёуланг нь худал болгодог; нэг 24 GB карт дээр энэ нь ажиллаж буй ажиллагааг .
Санах ойн хязгаарлалттай үед гарын авлагын зөвлөгөө бол багцын хэмжээг багасгаж, градиент хуримтлалыг ашиглан үр дүнтэй багцыг сэргээх явдал юм. lerobot 0.6.1-д градиент хуримтлал байхгүй: TrainPipelineConfig нь ийм талбаргүй бөгөөд энэ мөр нь гаргасан багцад хаана ч байхгүй. AY-Robots форм нь SmolVLA-д 8-ын градиент хуримтлалын утгыг харуулдаг боловч үүнийг мөн ашигладаггүй. 24 GB дээрх таны хөшүүргүүд бол --batch_size, хоёр хөлдөөх анхдагч утга, болон --policy.use_amp юм.
Ажиллагаа хэр удаан үргэлжлэх, хэдэн алхам хангалттай вэ
LeRobot нь ойролцоогоор 50 ангит өгөгдлийн багц дээр таван эпохын хувьд бодит цагийн хэмжүүрийг нийтэлдэг, энэ нь 30 fps хурдтай 45000 орчим фрэйм юм. Эдгээр нь хэмжээний дарааллын тоо баримт гэж баримт бичигт дурдсан байдаг ч, нэг цаг эсвэл нэг өдөр хүлээх хоорондын ялгааг харуулдаг.
| Тохиргоо | Бодлого | Багц | Бодит хугацаа |
|---|---|---|---|
| Single L4 / A10G (24 GB) | smolvla | 4 | about 3 to 6 h |
| Single A100 40 GB | smolvla | 16 | about 1 to 2 h |
| 4 x H100 80 GB with accelerate | smolvla | 32 | about 1 to 2 h |
| Single RTX 4090 / RTX 3090 (24 GB) | act | 8 | about 30 to 60 min |
Дүрмээр бол тогтсон алхамын тоо биш, харин өгөгдлийн багц дээр 5-аас 10 эпох байна: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)) . Баримт бичигт заасан лавлагаа өгөгдлийн багц болох lerobot/svla_so100_pickplace дээр мета өгөгдөл нь 50 анги, 19631 фрэймтэй гэж мэдээлсэн: багц 8 нь эпох тутамд ойролцоогоор 2454 алхам өгдөг тул 20000 алхам нь ойролцоогоор 8 эпох юм. Багцыг тал болговол ижил төсөв нь тал эпохийг худалдаж авна, тиймээс та --batch_size-г өөрчлөх бүрдээ үүнийг дахин хийгээрэй.
Нарийвчилсан тохируулга хийсэн бодлогыг роботын гарт буцаан ажиллуулах
lerobot-rollout \
--strategy.type=base \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_arm \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
--task="Grasp the cube and put it in the box." \
--policy.path=${HF_USER}/smolvla_pick_placeҮйлдэл тутамд 245 мс гэдэг нь буруу ойлгоход амархан: учир нь бодлого нь chunk_size = 50 үйлдлийг нэг урагш дамжуулалтаар ялгаруулж, тэдгээрийн n_action_steps = 50-ийг гүйцэтгэдэг, тиймээс та энэ зардлыг хэр олон удаа төлөх нь серво хэр олон удаа тушаал авахтай бус, харин эдгээр тохиргооноос хамаарна. Энэ бол үйлдлийн хуваарилалт-ийн үр дүн, мөн яагаад 245 мс загвар нь 30 Гц гарыг удирдаж чаддагийн шалтгаан юм. Үлдсэн нь chunk-ийн төгсгөлд үүсэх таамаглалын хоцрогдол юм.
| Хэмжилт (SmolVLA, бодит SO-100) | Синхрон | Асинхрон |
|---|---|---|
| Гүйцэтгэх хугацаа, сонгох ба байрлуулах, 10 туршилт | 13.75 s | 9.70 s |
| Тогтмол хугацааны цонхон дахь сонгох ба байрлуулах үйлдлийн давтамж | 9 | 19 |
| Гурван даалгаврын дундаж амжилтын хувь | 78.3 % | 73.3 % |
Энэ гурав дахь мөрийг ихэнх тайлбарт орхигдуулдаг. Асинхрон таамаглал нь ойролцоогоор 30 хувиар хурдан бөгөөд тогтмол хугацааны цонхонд гүйцэтгэлийг бараг хоёр дахин нэмэгдүүлдэг, мөн уг судалгаанд амжилтын хувийг харьцуулах боломжтой гэж үзсэн бөгөөд дунджаар тийм байдаг. Үүний дор эрэмбэлэх нь 70-аас 50 хувь хүртэл буурсан бол сонгох ба байрлуулах нь 5-аар нэмэгдсэн. lerobot 0.6.1 нь ижил бинари дотор өөр нэг хөшүүргийг агуулдаг: --inference.type=rtc нь гүйцэтгэлийг бодит цагийн хуваарилалт руу шилжүүлдэг, үүнийг скриптийн өөрийн хэрэглээний хэсэг нь удаан VLA-ууд болох Pi0, Pi0.5 болон SmolVLA-д санал болгодог.
Удирдлагын давталт нь загвараас хамаарч үйлдэл тутамд 20-оос 485 мс байдаг, мөн нэмэлтээр олон нийтийн интернетийн эргэлтийн хугацаа нь ажиллаж буй бодлогыг эргэлзээтэй болгодог. Алсын таамаглал нь удаан сонгох ба байрлуулах үйлдлийн хувьд боломжтой боловч хурдан хариу үйлдэл үзүүлэх хөдөлгөөнд тохиромжгүй: хэрэв даалгавар хурдан залруулга шаардвал, GPU нь гартай ижил LAN дээр байрлах ёстой.
Сургалтын ажилд хамааралгүй ч энэ нь бусад гиперпараметрүүдээс илүү олон SO-100 төслийг зогсоодог. SO-100 болон SO-101-д суурилуулсан Feetech STS3215 серво нь 7.4 В-оор ажилладаг; 12 В нь тэдгээрийг гэмтээдэг. LeKiwi нь 7.4 В-ын гар болон 12 В-ын суурийг хослуулдаг бөгөөд ингэснээр буруу залгуур буруу үүрэнд ордог.
Нэг цэгт хүрэх хоёр зам
Та машин, орчин, алдааг олж засварлах ажлыг өөрөө хариуцна. Үүлэн дэх цорын ганц хамаарал нь суурь шалгалтын цэгийг Hub-аас татаж авах явдал юм. Хэрэв та бодлогыг өөрчлөх, өгөгдөл таны сүлжээнээс гарах боломжгүй, эсвэл карт ашиглагдахгүй байгаа бол энэ нь зөв зам юм.
- Та CUDA-ийн дугуй, драйвер, ffmpeg-ийн угсралт болон өгөгдөл ачаалагчийг хянана.
- Та configuration_smolvla.py файлыг засварлаж, тэр өдрийн үдээс хойш дахин сургах боломжтой.
- Та ажиллуулсан тоогоор биш, харин цахилгаан болон цаг хугацаагаар төлбөр хийж, TorchCodec-ийг өөрөө алдааг олж засварлана.
pip install 'lerobot[smolvla,training,core_scripts]'
hf auth login
lerobot-train \
--policy.path=lerobot/smolvla_base \
--dataset.repo_id=${HF_USER}/so100_pick_place \
--batch_size=8 --steps=20000 \
--save_freq=2000 --seed=1000 \
--output_dir=outputs/train/smolvla_pick_place \
--job_name=smolvla_pick_place \
--policy.device=cuda --wandb.enable=trueНэг л ажиллагааг маягтын цаанаас: та загвар болон өгөгдлийн багцыг сонгоно, бэкэнд нь шаардлагатай VRAM-аар GPU түрээсэлж, сургагчийг ажиллуулж, шалгалтын цэгүүдийг объектын санд бичнэ. Өгөгдлийн багц нь Hugging Face-ийн репо ID, олон нийтийн жагсаалтаас, эсвэл таны машинаас ирж болно. SO-100 дээрх SmolVLA, эсвэл сургалтын хуудас-ын матрицаас эхэлнэ үү.
| Талбар | Платформоос SmolVLA-д илгээх анхдагч утга | Тэмдэглэл |
|---|---|---|
| багцын хэмжээ | 2 | 24 ГБ-ын түвшинд консерватив |
| сургалтын хурд | 1e-4 | Lerobot-ийн урьдчилсан тохиргоо |
| хамгийн их алхам | 20000 | LeRobot баримт бичигт дурдсан жишиг ажиллагаа |
| градиент хуримтлал | 8 | Маягтанд харагдаж байгаа боловч хэрэглэгдээгүй |
| нэмэлт тохиргоо | seed, logFreq | Seed нь ажиллагааг давтагдах боломжтой болгодог |
- 24 ГБ-ын түвшинд 2-оос 5 цаг, нэг ажиллагаанд ойролцоогоор 1-ээс 3 ам.доллар.
- /cli хаяг дахь терминалаас болон /mcp хаяг дахь хиймэл оюун ухааны агентуудаас ижил үйлдлүүд.
- Дүгнэлт хийх подууд нь ашиглагдахгүй үед хянах системтэй байдаг тул мартсан под нь чимээгүй төлбөр тооцохын оронд өөрийгөө устгадаг.
- Гар хараахан байхгүй юу? /live нь таныг бүртгүүлэхгүйгээр удирдах боломжтой физик SO-100-г шууд дамжуулдаг.
Дараалалд гацсан ажил нь алдаа биш, харин спот зах зээлийн шинж тэмдэг юм: сургалтын ажил дараалалд гацсан. Алхам алхмаар: анхны бодлогоо сургах болон сургалтын баримт бичиг.
SmolVLA буруу сонголт байх үед
SmolVLA-г анхны зөв ажиллагаа байсан эсэхийг шалгах нь тэр ажилласан эсэхээс бус, харин алдаа нь танд ямар нэгэн зүйл хэлсэн эсэхээс хамаарна. 60 эсвэл 70 хувьд хүрэхэд илүү том загвар нь дараагийн боломжит зардал болно: өгөгдөл нь дохиог агуулдаг. 10 хувьд хүрэхэд 3B загвар нь ихэнх тохиолдолд мөн 10 хувьд хүрэх бөгөөд үүнийг та арван хоёр долларын оронд гурван доллараар сурсан болно.

Илүү их зардал гаргахаасаа өмнө унших нь зүйтэй: Pi0.5-ыг SmolVLA-тай харьцуулах ижил санаан дээр илүү их хүчин чадал авахын тулд, мөн GR00T N1.7-ыг SmolVLA-тай харьцуулах NVIDIA-ийн замыг сонгохын тулд, хоёулаа 80 GB-ын түвшинд нэг ажиллагаа нь 4-12 USD. Нөгөө талаар, ACT нь хямд суурь юм: 80 M параметр, үйлдлийн алхам тутамд 20 ms, хэлний нөхцөлгүй. Бүх тав нь дараах хуудсанд байрладаг: бодлогын хуудас; талбар нь 85 загвар болон 332 бенчмарк үр дүнтэй.

Юуг ч өргөжүүлэхийн өмнөх шалгах хуудас
- `lr` нь 2.5e-6 хязгаарт хүрсэн үү? 30000 алхамаас доош бол lerobot нь бууралтыг дахин масштабчилж, эхлүүлэх үед мэдэгддэг; түүнээс дээш бол `--policy.scheduler_decay_steps`-ийг өөрөө тохируулна уу.
- Нэгээс олон чекпойнт, мөн `--dataset.eval_split`-ээр хадгалсан эпизодууд байгаа эсэх, ингэснээр үнэлгээний алдагдал нь утга учиртай болно.
- Бодлого огт хөдөлж байна уу? Хөдөлгөөнгүй гар дээр алдагдал буурах нь тодорхой шалтгаантай: алдагдал буурч, бодлого юу ч хийхгүй байна.
- Энэ нь орчны өөрчлөлтийг даван туулж байна уу? Хэрэв үгүй бол: бодлого зөвхөн нэг тохиргоонд ажилладаг.
- Та seed-ийг тэмдэглэж авсан уу? lerobot нь анхдагчаар 1000-г ашигладаг тул хоёр өөрчлөгдөөгүй ажиллагаа харьцуулагдахуйц хэвээр байна.
- Зөвхөн дараа нь: илүү олон эпизод, илүү олон хувилбар, эсвэл илүү том загвар. Энэ дарааллаар.
Эдгээр загварууд яагаад оршин тогтнодог, мөн хэлний оролтоор юу хийдэг талаар, нь үндэс суурь юм; нь угсралтыг -аас эхний ажиллагаа хүртэл явуулдаг. Дууссан чекпойнтын хувьд, ; хэрэв гар хэзээ ч харагдахгүй бол, .
SmolVLA-г өөрийн гар дээр сургах
Загвар болон гарыг сонгоход гарын авлага нь танд яг таг анхдагч утгууд, өгөгдлийн багцын формат, мөн ажиллагааны зардлыг өгнө. SmolVLA нь 24 ГБ-ын түвшинд нэг ажиллагаанд 1-3 ам.долларын үнэтэй байдаг.
Сургалтын гарын авлагыг нээнэ үүБи SmolVLA-г RTX 4090 дээр үнэхээр нарийн тааруулж чадах уу?▾
Тийм ээ. LeRobot-ын тооцооллын гарын авлагад SmolVLA-г AdamW-тэй batch 8 үед оргил VRAM нь ойролцоогоор 10-аас 16 ГБ байдаг гэж заасан бөгөөд 24 ГБ-ын хэрэглээний картууд нь үүнд тохиромжтой гэж жагсаасан байна. Баримт бичгийн жишээн дэх batch 64 нь нэг A100-тай хосолсон байдаг. Санах ой нь batch-тай ойролцоогоор шугаман байдлаар нэмэгддэг тул 4 эсвэл 8-ыг ашиглаж, mem_gb-г ажиглаарай.
Надад яг хэдэн эпизод хэрэгтэй вэ?▾
AY-Robots хамгийн багадаа 30 гэж тогтоосон. LeRobot-ын баримт бичигт ойролцоогоор 50-г зөвлөж, ижил даалгаврын 25 эпизод муу гүйцэтгэлтэй байсан гэж мэдээлсэн. Бүтэц нь тооноос илүү чухал: лавлах багц нь тус бүр 10 эпизодтой 5 шоо байрлал байсан бөгөөд энэ давталт нь ерөнхийлөн хэрэглэгдэх чадварыг өгдөг.
Баримт бичигт batch 64 гэсэн байхад, платформ batch 2-г илгээж байна. Аль нь зөв бэ?▾
Хоёулаа, өөр өөр техник хангамжид зориулагдсан. Баримт бичгийн жишээнд batch 64-г ашигласан бөгөөд нэг A100 дээр 20000 алхам хийхэд ойролцоогоор 4 цаг зарцуулна гэж дурдсан; тооцооллын гарын авлагын A100 40 ГБ-ын үндсэн тохиргоо нь batch 16 юм. Batch 2 нь AY-Robots-ын 24 ГБ-ын түвшинд илгээдэг тохиргоо юм. Орон нутагт 4-ээс 8 нь дундаж бөгөөд үүнтэй хамт эпохын арифметик өөрчлөгддөг.
SO-100 дээр анхны ажиллуулалтад SmolVLA эсвэл ACT аль нь вэ?▾
Хэрэв даалгавар нь нэг давтагдах хөдөлгөөн бөгөөд та хамгийн хурдан давталтыг хүсвэл ACT: үйлдлийн алхам тутамд 20 мс, 80 сая параметр, хэлний нөхцөл байхгүй. Хэрэв та хэлний нөхцөл, нэг чекпоинт доторх хэд хэдэн даалгаврын мөр, болон урьдчилан сургасан суурийг хүсвэл SmolVLA. Хоёулаа 24 ГБ-ын түвшинд байдаг тул сонголт нь төсөв биш, даалгавар юм.
Би --policy.scheduler_decay_steps-г тохируулах ёстой юу?▾
Зөвхөн --steps нь 30000-аас дээш байх үед. SmolVLA нь 30000 алхам дээр косинус задралыг урьдчилан тохируулдаг бөгөөд lerobot 0.6.1 нь богино хугацааны ажиллуулалтад зориулж өөрөө хэмжээг нь багасгаж, үүнийг хийхдээ "Auto-scaling LR scheduler" гэж бүртгэдэг. Энэ нь хэзээ ч хэмжээгээ нэмэгдүүлдэггүй тул --steps=100000 гэсэн анхны тохиргоо нь сүүлийн 70000 алхамыг 2.5e-6 хязгаарт үлдээдэг.
Sources
- SmolVLA: Хямд бөгөөд үр ашигтай робот техникт зориулсан хараа-хэл-үйлдэл загвар
- SmolVLA: Үр ашигтай хараа-хэл-үйлдэл загвар (Hugging Face блог)
- lerobot/smolvla_base загварын карт
- LeRobot баримт бичиг: SmolVLA
- LeRobot баримт бичиг: LeRobot сургалтад зориулсан тооцооллын техник хангамжийн гарын авлага
- LeRobot баримт бичиг: Суулгалт
- LeRobot баримт бичиг: LeRobotDataset v3.0 болон v2.1 хувиргагч
- LeRobot баримт бичиг: Асинхрон дүгнэлт
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (стратегиуд болон RTC дүгнэлт)
- lerobot v0.6.1: pyproject.toml (нэмэлтүүд болон консолын нэвтрэх цэгүүд)
- PyPI дээрх lerobot
- lerobot/svla_so100_pickplace өгөгдлийн багц (50 эпизод, 19631 фрэйм, v3.0)
Sources
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot/smolvla_base model card
- LeRobot docs: SmolVLA
- LeRobot docs: Compute HW Guide for LeRobot Training
- LeRobot docs: Installation
- LeRobot docs: LeRobotDataset v3.0 and the v2.1 converter
- LeRobot docs: Asynchronous Inference
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategies and RTC inference)
- lerobot v0.6.1: pyproject.toml (extras and console entry points)
- lerobot on PyPI
- lerobot/svla_so100_pickplace dataset (50 episodes, 19631 frames, v3.0)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started