AY-Robots дээрх SmolVLA загварын хуудас нь параметрийн тоо, GPU түвшин, үйлдлийн алхам тутамд таамаглалын хоцрогдол болон хамгийн бага эпизодын тоог харуулсан байна.
SmolVLALeRobotVLA СургалтНарийвчилсан ТааруулалтSO-100

SmolVLA-г 24 ГБ GPU дээр хэрхэн сургах вэ (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 мин унших

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 Mpaper
Үйлдлийн мэргэжилтэнabout 100 M, flow matchingpaper
VLM үндсэн бүтэцHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
Ашигласан VLM давхаргуудfirst 16 of the language modelnum_vlm_layers = 16
Хүрээ тутамд харааны токен64, pixel shuffle, no tilingpaper
Урьдчилсан сургалт481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUspaper

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-ууд
Хөнгөн BCact, vqbet, tdmpcойролцоогоор 2-оос 6 ГБRTX 3060, L4
Диффузиdiffusion, multi_task_ditойролцоогоор 8-аас 14 ГБRTX 4070+, L4
Жижиг VLAsmolvlaойролцоогоор 10-аас 16 ГБRTX 4080+, L4, A10G
Том VLApi0, 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 ажиллуулалт нь үдийн хоолтой тэнцэнэ.

AY-Robots-ийн зардлын хүснэгт: бодлого тутамд карт, ажиллах хугацаа, ажиллуулах үнэ, шаардлагатай ангиуд
SmolVLA болон ACT нь 24 ГБ эгнээнд, гурван 3 B загвар нь 80 ГБ эгнээнд байрладаг.
3 B загварын оронд SmolVLA-аас эхлэх нь
Та юу авах вэ
  • Таны аль хэдийн эзэмшиж буй техник хангамжид тохирно: 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.

bash
# 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
Хөрвүүлэгч нь lerobot дотор байдаг тул нэмэлт суулгах зүйл байхгүй. Багцад эсрэг чиглэлийн хөрвүүлэгч байхгүй.

Энэ тухай дэлгэрэнгүйг өндөр чанартай VLA сургалтын өгөгдлийг хэрхэн цуглуулах вэ. Товчхондоо: нэг даалгаврын 30-50 цэвэр анги, зориудаар өөрчлөлттэйгээр, гурван даалгаврын 200 хайнга ангийг ямар ч хэт параметр хааж чадахгүйгээр давна.

lerobot 0.6.1 суулгах

bash
# 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
PyPI зам. Сургагчийг засварлахын тулд репо-г клондож, оронд нь pip install -e ".[smolvla,training]" командыг ашиглана уу.

Үндсэн lerobot суулгац нь нимгэн бөгөөд нэмэлтүүдийн ард хүнд хамаарлуудыг хязгаарладаг: smolvla нь transformers, num2words болон accelerate-ийг нэмдэг, training нь өгөгдлийн багц болон wandb-ийг, core_scripts нь техник хангамж болон дүрслэлийн хамаарлуудыг нэмдэг. Линукс дээр суулгах зам нь таны CUDA wheel-ийг мөн тодорхойлдог: PyPI-ийн анхдагч нь 580.65-аас доошгүй драйвертай cu130 wheel байдаг тул хуучин драйвер дээр эхлээд cu128 индексээс torch-ийг суулгаад дараа нь lerobot-ийг суулгана.

policy.path болон policy.type нь ижил флаг биш

--policy.path=lerobot/smolvla_base нь урьдчилан сургасан 450 M шалгалтын цэгийг ачаалж, нарийн тааруулдаг. --policy.type=smolvla нь шинэ SmolVLA-г үүсгэдэг бөгөөд тохиргооны анхдагч утга load_vlm_weights = False нь таныг хүсэхгүй бол SmolVLM2-ийн үндсэн жинг татахгүй гэсэн үг юм. Үүнийг буруу хийвэл ажиллагаа хэвийн явагдаж, ижил зардалтай байх боловч шилжүүлж болох юу ч сурахгүй.

Сургалтын ажиллагаа, тушаал тушаалаар

  1. 1
    Hub-д нэвтрэх

    Суурь шалгах цэг Hub-аас ирдэг бөгөөд таны өгөгдлийн багц ч мөн адил байх магадлалтай.

    bash
    hf auth login
  2. 2
    Сонголтуудыг нэг удаа унших

    Дамжуулах хоолой болон бодлогын тохиргооны талбар бүр нь туг юм. Эх кодыг судлахаасаа өмнө гүйлгэж харна уу.

    bash
    lerobot-train --help
  3. 3
    Нарийвчилсан тохируулгыг эхлүүлэх

    Баримт бичгийн жишээ нь нэг A100 дээр 64 багц ажиллуулдаг; тооцооллын гарын авлагын A100 40 ГБ зангуу нь 16 багц, харин 8 нь 24 ГБ-тай тэнцүү юм. Энд зориудаар хуваарьт туг байхгүй, доороос харна уу.

    bash
    lerobot-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. 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. 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. 6
    Машин унтарвал үргэлжлүүлэх

    --config_path-г шалгах цэгийн хажууд байрлах train_config.json руу чиглүүлнэ үү. lerobot нь таныг үргэлжлүүлж байгаагаас бусад тохиолдолд одоо байгаа output_dir руу эхлэхээс татгалздаг тул та санамсаргүйгээр ажиллагааг дарж бичих боломжгүй.

    bash
    lerobot-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Өгөгдөл ачаалагчийн процессууд, анхдагч 4data_s өсөхөө болих хүртэл нэмэгдүүлэх
--dataset.eval_splitДаалгавар тутамд хадгалсан ангиллын хэсэг0.1, with --eval_steps
--policy.freeze_vision_encoderХарааны цамхагийг хөлдөөсөн хэвээр байлганаtrue on 24 GB
--policy.train_expert_onlyЗөвхөн ~100 сая мэргэжилтэн градиент авнаtrue first
Хуваарь: 0.6.1 хувилбар юуг зохицуулдаг, юуг зохицуулдаггүй вэ

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_steps50 / 50SmolVLAConfig
num_steps (flow matching denoise)10SmolVLAConfig
optimizer_lr1e-4SmolVLAConfig
scheduler_warmup_steps1000SmolVLAConfig
scheduler_decay_steps30000SmolVLAConfig
scheduler_decay_lr2.5e-6SmolVLAConfig
freeze_vision_encodertrueSmolVLAConfig
train_expert_onlytrueSmolVLAConfig
batch_size / steps8 / 100000TrainPipelineConfig
seed / save_freq / num_workers1000 / 20000 / 4TrainPipelineConfig

Хүмүүсийг гайхшруулдаг хоёр мөр бол 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)smolvla4about 3 to 6 h
Single A100 40 GBsmolvla16about 1 to 2 h
4 x H100 80 GB with acceleratesmolvla32about 1 to 2 h
Single RTX 4090 / RTX 3090 (24 GB)act8about 30 to 60 min
<code>--steps</code> сонгохоосоо өмнө эпохийн тооцоог хийгээрэй

Дүрмээр бол тогтсон алхамын тоо биш, харин өгөгдлийн багц дээр 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-г өөрчлөх бүрдээ үүнийг дахин хийгээрэй.

Нарийвчилсан тохируулга хийсэн бодлогыг роботын гарт буцаан ажиллуулах

bash
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 s9.70 s
Тогтмол хугацааны цонхон дахь сонгох ба байрлуулах үйлдлийн давтамж919
Гурван даалгаврын дундаж амжилтын хувь78.3 %73.3 %

Энэ гурав дахь мөрийг ихэнх тайлбарт орхигдуулдаг. Асинхрон таамаглал нь ойролцоогоор 30 хувиар хурдан бөгөөд тогтмол хугацааны цонхонд гүйцэтгэлийг бараг хоёр дахин нэмэгдүүлдэг, мөн уг судалгаанд амжилтын хувийг харьцуулах боломжтой гэж үзсэн бөгөөд дунджаар тийм байдаг. Үүний дор эрэмбэлэх нь 70-аас 50 хувь хүртэл буурсан бол сонгох ба байрлуулах нь 5-аар нэмэгдсэн. lerobot 0.6.1 нь ижил бинари дотор өөр нэг хөшүүргийг агуулдаг: --inference.type=rtc нь гүйцэтгэлийг бодит цагийн хуваарилалт руу шилжүүлдэг, үүнийг скриптийн өөрийн хэрэглээний хэсэг нь удаан VLA-ууд болох Pi0, Pi0.5 болон SmolVLA-д санал болгодог.

Таамаглал сервогийн хажууд байрлах ёстой

Удирдлагын давталт нь загвараас хамаарч үйлдэл тутамд 20-оос 485 мс байдаг, мөн нэмэлтээр олон нийтийн интернетийн эргэлтийн хугацаа нь ажиллаж буй бодлогыг эргэлзээтэй болгодог. Алсын таамаглал нь удаан сонгох ба байрлуулах үйлдлийн хувьд боломжтой боловч хурдан хариу үйлдэл үзүүлэх хөдөлгөөнд тохиромжгүй: хэрэв даалгавар хурдан залруулга шаардвал, GPU нь гартай ижил LAN дээр байрлах ёстой.

7.4 В, 12 В биш

Сургалтын ажилд хамааралгүй ч энэ нь бусад гиперпараметрүүдээс илүү олон SO-100 төслийг зогсоодог. SO-100 болон SO-101-д суурилуулсан Feetech STS3215 серво нь 7.4 В-оор ажилладаг; 12 В нь тэдгээрийг гэмтээдэг. LeKiwi нь 7.4 В-ын гар болон 12 В-ын суурийг хослуулдаг бөгөөд ингэснээр буруу залгуур буруу үүрэнд ордог.

Нэг цэгт хүрэх хоёр зам

Та машин, орчин, алдааг олж засварлах ажлыг өөрөө хариуцна. Үүлэн дэх цорын ганц хамаарал нь суурь шалгалтын цэгийг Hub-аас татаж авах явдал юм. Хэрэв та бодлогыг өөрчлөх, өгөгдөл таны сүлжээнээс гарах боломжгүй, эсвэл карт ашиглагдахгүй байгаа бол энэ нь зөв зам юм.

  • Та CUDA-ийн дугуй, драйвер, ffmpeg-ийн угсралт болон өгөгдөл ачаалагчийг хянана.
  • Та configuration_smolvla.py файлыг засварлаж, тэр өдрийн үдээс хойш дахин сургах боломжтой.
  • Та ажиллуулсан тоогоор биш, харин цахилгаан болон цаг хугацаагаар төлбөр хийж, TorchCodec-ийг өөрөө алдааг олж засварлана.
bash
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
Бүх гарын авлагын замыг нэг блокоор, lerobot 0.6.1.

SmolVLA буруу сонголт байх үед

SmolVLA-г анхны зөв ажиллагаа байсан эсэхийг шалгах нь тэр ажилласан эсэхээс бус, харин алдаа нь танд ямар нэгэн зүйл хэлсэн эсэхээс хамаарна. 60 эсвэл 70 хувьд хүрэхэд илүү том загвар нь дараагийн боломжит зардал болно: өгөгдөл нь дохиог агуулдаг. 10 хувьд хүрэхэд 3B загвар нь ихэнх тохиолдолд мөн 10 хувьд хүрэх бөгөөд үүнийг та арван хоёр долларын оронд гурван доллараар сурсан болно.

The AY-Robots training matrix: таван бодлого мөрөөр, дөрвөн роботын гар баганаар
Эс бүр өөрийн гэсэн гарын авлагатай. SmolVLA нь дөрвөн гар тус бүрт нэгтэй.

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

The AY-Robots policies comparison: параметрүүд, GPU түвшин, хоцрогдол, хамгийн бага үе
Ажиллагааг шийддэг дөрвөн тоо.

Юуг ч өргөжүүлэхийн өмнөх шалгах хуудас

  1. `lr` нь 2.5e-6 хязгаарт хүрсэн үү? 30000 алхамаас доош бол lerobot нь бууралтыг дахин масштабчилж, эхлүүлэх үед мэдэгддэг; түүнээс дээш бол `--policy.scheduler_decay_steps`-ийг өөрөө тохируулна уу.
  2. Нэгээс олон чекпойнт, мөн `--dataset.eval_split`-ээр хадгалсан эпизодууд байгаа эсэх, ингэснээр үнэлгээний алдагдал нь утга учиртай болно.
  3. Бодлого огт хөдөлж байна уу? Хөдөлгөөнгүй гар дээр алдагдал буурах нь тодорхой шалтгаантай: алдагдал буурч, бодлого юу ч хийхгүй байна.
  4. Энэ нь орчны өөрчлөлтийг даван туулж байна уу? Хэрэв үгүй бол: бодлого зөвхөн нэг тохиргоонд ажилладаг.
  5. Та seed-ийг тэмдэглэж авсан уу? lerobot нь анхдагчаар 1000-г ашигладаг тул хоёр өөрчлөгдөөгүй ажиллагаа харьцуулагдахуйц хэвээр байна.
  6. Зөвхөн дараа нь: илүү олон эпизод, илүү олон хувилбар, эсвэл илүү том загвар. Энэ дарааллаар.

Эдгээр загварууд яагаад оршин тогтнодог, мөн хэлний оролтоор юу хийдэг талаар, нь үндэс суурь юм; нь угсралтыг -аас эхний ажиллагаа хүртэл явуулдаг. Дууссан чекпойнтын хувьд, ; хэрэв гар хэзээ ч харагдахгүй бол, .

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 хязгаарт үлдээдэг.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started