Faqja e modelit SmolVLA në AY-Robots që tregon numrin e parametrave, nivelin e GPU-së, vonesën e inferencës për hap veprimi dhe numrin minimal të episodeve
SmolVLALeRobotTrajnim VLAPërshtatje e imëtSO-100

Si të Trajnosh SmolVLA në një GPU 24 GB (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 minuta lexim

SmolVLA është një VLA me 450 M parametra që përshtatet imët në një kartë të vetme 24 GB. Komanda reale të lerobot 0.6.1, parametrat e paracaktuar aktualë, kurthet që kushtojnë një ditë, dhe sa kushton një ekzekutim.

SmolVLA në një ekran

  • 450 M parametra, rreth 100 M prej tyre një ekspert veprimi i përputhjes së fluksit. lerobot trajnon vetëm atë ekspert dhe e mban VLM-në të ngrirë, prandaj ai përshtatet në një kartë.
  • Udhëzuesi i llogaritjes i LeRobot e vendos grupin smolvla në rreth 10 deri në 16 GB VRAM kulmi në batch 8 me AdamW. Prandaj 24 GB.
  • Pika hyrëse është lerobot-train. Postimi në blog i SmolVLA i qershorit 2025 ende printon python lerobot/scripts/train.py, një shteg që nuk ekziston më. Gjithçka më poshtë është lerobot 0.6.1.
  • Orari i kosinusit është paracaktuar të bjerë gjatë 30000 hapave. lerobot 0.6.1 e shkallëzon atë poshtë për një ekzekutim më të shkurtër dhe e regjistron, por kurrë lart: ekzekutimi standard prej 100000 hapash përfundon në dyshemenë 2.5e-6 për 70000 hapa.
  • Tridhjetë episode është minimumi i AY-Robots, në një nivel 24 GB që kushton 1 deri në 3 USD për ekzekutim kundrejt 4 deri në 12 për modelet 80 GB.

Shumica e njerëzve që duan një model veprimi gjuhe vizioni në një krah real ndalen te linja e harduerit. GR00T N1.7 dhe Pi0.5 janë rreth tre miliardë parametra secili dhe duan një A100 80 GB ose një H100. Nëse ajo që zotëroni është një PC lojërash me një RTX 4090, ky është fundi i rrugës. SmolVLA është përjashtimi: 450 M parametra, brenda LeRobot, i ndërtuar për t'u akorduar në një kartë konsumatore dhe për të shërbyer nga një CPU.

Rruga manuale së pari: instaloni lerobot, tërhiqni lerobot/smolvla_base pikë kontrolli, ekzekutoni komandën reale, lexoni ekzekutimin ndërsa ndodh. Pastaj rruga e platformës, dhe ku ajo nuk ndihmon.

Çfarë është SmolVLA, në numra që mund t'i kontrolloni

SmolVLA është një përputhje fluksi politikë e bashkangjitur në një model të vogël gjuhësor vizual. Shtylla kurrizore është SmolVLM2-500M-Video-Instruct; punimi mban vetëm 16 shtresat e para të modelit të tij gjuhësor, kufizon çdo kornizë kamere në 64 shenja vizuale me një shpërndarje pikselësh në vend të ndarjes së imazhit, dhe ndërthur vëmendjen kryq me një shtresë vetë-vëmendjeje çdo bllok të dytë. Kostoja e inferencës ishte një kufizim dizajni, jo një mendim i dytë.

VetiaVleraBurimi
Parametrat totalëabout 450 Mpaper
Ekspert i veprimitabout 100 M, flow matchingpaper
Shtylla kurrizore VLMHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
Shtresat VLM të përdorurafirst 16 of the language modelnum_vlm_layers = 16
Shenja vizuale për kornizë64, pixel shuffle, no tilingpaper
Paratrajnimi481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUspaper

Standardet janë arsyeja pse njerëzit merren me një model 450 M. Në LIBERO ai mesatarisht arrin 87.3 për qind kundrejt 76.5 për OpenVLA në 7 B dhe 86.0 për një Pi0 të paratrajnuar për robotikë në 3.3 B; në Meta-World, 57.3 kundrejt 47.9. Në harduerin real SO-100, trajnimi me shumë detyra jep 75 për qind në marrje dhe vendosje, 90 në grumbullim, 70 në renditje, me një mesatare prej 78.3, ku ACT i trajnuar për detyrë mesatarisht arriti 48.3. Të njëjtat rreshta qëndrojnë pranë çdo VLA të publikuar në hyrjen në arenën SmolVLA dhe krahasimin ACT kundrejt SmolVLA.

Versioni i ndershëm i pretendimit për madhësinë

SmolVLA nuk është më i mirë se një model 3 B në çdo gjë. Tabela SO-101 e vetë punimit e tregon këtë: 90 për qind sukses në shpërndarje, 50 për qind jashtë saj, në një platformë në të cilën nuk ishte paratrajnuar kurrë. Ajo që pretendon, dhe mbështet, është se kundrejt Pi0 ai trajnohet rreth 40 për qind më shpejt me 6 herë më pak memorie.

Pse një kartë 24 GB është zgjedhja e duhur për fillimin e parë

LeRobot ofron një udhëzues për madhësinë e llogaritjes, faqja më e dobishme në depo për këtë. Ai grupon politikat sipas madhësisë së shtyllës kurrizore dhe jep një zarf VRAM për grup, i matur me madhësinë e grupit 8 me AdamW, parazgjedhjen e lerobot. Vetëm gjendja e optimizuesit shton 30 deri në 100 për qind mbi një kalim të thjeshtë përpara dhe prapa, kështu që këto nuk janë shifra vetëm të peshave.

GrupiPolitikatVRAM maksimale (batch 8, AdamW)GPU-të fillestare
BC i lehtëact, vqbet, tdmpcrreth 2 deri në 6 GBRTX 3060, L4
Difuzionidiffusion, multi_task_ditrreth 8 deri në 14 GBRTX 4070+, L4
VLA i vogëlsmolvlarreth 10 deri në 16 GBRTX 4080+, L4, A10G
VLA i madhpi0, pi0_fast, pi05, xvla, wall_xrreth 24 deri në 40 GBA100 40 GB+
Multimodalgroot, eo1rreth 24 deri në 40 GBA100 40 GB+

Dhjetë deri në gjashtëmbëdhjetë gigabajt në batch 8 është argumenti: një kartë 24 GB përshtatet me këtë plus ngarkuesin e të dhënave. AY-Robots vendos SmolVLA në RTX 4090 ose çdo kartë 24 GB, minimumi 30 episode, LeRobot v3.0 të dhëna, 245 ms për hap veprimi. Me qira, kjo është 2 deri në 5 orë me 0.30 deri në 0.60 USD në orë, rreth 1 deri në 3 USD për një akordim i imët ekzekutim, kundrejt 4 deri në 12 USD në nivelin 80 GB që GR00T dhe Pi0.5 kanë nevojë (çmimet). Një ekzekutim i dështuar i SmolVLA është një kafe; një ekzekutim i dështuar i GR00T, drekë.

Tabela e kostos së AY-Robots: kartë për politikë, kohë ekzekutimi, çmim për ekzekutim, episode të nevojshme
SmolVLA dhe ACT ndodhen në rreshtin 24 GB, tre modelet 3 B në rreshtin 80 GB.
Fillimi me SmolVLA në vend të një modeli 3 B
Çfarë fitoni
  • Përshtatet me harduerin që mund të keni tashmë: afërsisht 10 deri në 16 GB në batch 8.
  • Një ekzekutim i humbur kushton orë dhe disa dollarë, kështu që mund të përballoni të gaboni për grupin e të dhënave.
  • Trajnuar paraprakisht në grupe të dhënash komunitare të shpërndara nën etiketën lerobot, me rezultate reale SO-100 dhe SO-101.
  • Jetojnë në lerobot vetë: pa depo shitësi, dhe smolvla_base nuk është i kufizuar.
Çfarë humbisni
  • 450 M është ende 450 M: suksesi jashtë shpërndarjes bie nga 90 në 50 për qind në tabelën SO-101 të punimit.
  • Kërkon të dhëna LeRobot v3.0; një regjistrim v2.1 duhet të konvertohet (dataset i refuzuar v3).
  • 245 ms për hap veprimi është një kontrollues i aftë për marrje dhe vendosje, jo një reaktiv.
  • Shembulli i dokumentacionit ekzekuton batch 64 në një A100; në 24 GB ju shkëmbeni batch-in me kohën reale.

Hapi 0: grupi i të dhënave vendos ekzekutimin, jo flamujt

Asgjë më poshtë nuk ka rëndësi nëse regjistrimi është i keq. Faqja LeRobot SmolVLA është e drejtpërdrejtë: grupi i të dhënave referencë ishte 50 episode në 5 pozicione kubi, 10 për pozicion, dhe e njëjta detyrë në 25 episode performoi keq. Përsëritja për variacion përgjithëson, numri i papërpunuar i episodeve jo. Nuk keni regjistruar asnjëherë? Filloni te regjistroni grupin tuaj të parë të të dhënave, me klientin desktop, i cili shkruan formatin LeRobot nga një sesion teleoperimi ose merrni një nga drejtoria e grupeve të të dhënave.

  • Të paktën 30 episode në AY-Robots, rreth 50 për recetën referencë të LeRobot.
  • Çdo variacion që prisni në shpërndarje, i përsëritur disa herë.
  • Një varg detyre, i shkruar identikisht në kohën e regjistrimit dhe të shpërndarjes. Modeli kushtëzohet nga ai tekst.
  • Kamera të fiksuara. Një kamerë e lëvizur midis regjistrimit dhe shpërndarjes është arsyeja më e zakonshme pse një kurbë humbjeje e pastër jep një krah të palëvizshëm.
  • Një variacion i mbajtur jashtë, mbi të cilin nuk jeni trajnuar kurrë, në mënyrë që të keni diçka të ndershme për të testuar.
Kurthi i grupit të të dhënave që kushton një ditë

SmolVLA, Pi0.5 dhe ACT kërkojnë LeRobot v3.0. GR00T N1.7 dhe N1.5 kërkojnë v2.0 ose v2.1 dhe ngarkuesi i tyre bllokohet në v3.0. Regjistroni një herë, planifikoni të krahasoni modelet më vonë, dhe do ta konvertoni në një mënyrë ose në tjetrën: 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
Konvertuesi vjen brenda lerobot, kështu që nuk ka asgjë shtesë për të instaluar. Nuk ka konvertues në drejtimin tjetër në paketë.

Më shumë rreth kësaj në si të mblidhni të dhëna trajnimi VLA me cilësi të lartë. Versioni i shkurtër: 30 deri në 50 episode të pastra të një detyre me variacion të qëllimshëm mundin 200 episode të çrregullta të tre detyrave, me një diferencë që asnjë hiperparametër nuk e mbyll.

Instaloni 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
Shtegu PyPI. Për të ndryshuar trajnerin, klononi depozitën dhe përdorni pip install -e ".[smolvla,training]" në vend të kësaj.

Instalimi bazë lerobot është i hollë dhe mban varësitë e rënda pas shtesave: smolvla shton transformatorët, num2words dhe accelerate, training grupin e të dhënave dhe wandb, core_scripts varësitë e harduerit dhe vizualizimit. Në Linux, shtegu i instalimit vendos gjithashtu rrotën tuaj CUDA: parazgjedhja PyPI është një rrotë cu130 me një nivel minimal drejtuesi prej 580.65, kështu që në një drejtues më të vjetër instaloni torch nga indeksi cu128 së pari, pastaj lerobot.

policy.path dhe policy.type nuk janë i njëjti flamur

--policy.path=lerobot/smolvla_base ngarkon pikën e kontrollit të paratrajnuar 450 M dhe e rregullon atë. --policy.type=smolvla ndërton një SmolVLA të freskët, dhe parazgjedhja e konfigurimit load_vlm_weights = False do të thotë se nuk tërheq as peshat e shtyllës kurrizore SmolVLM2 nëse nuk e kërkoni. Gaboni dhe ekzekutimi trajnohet me sukses, kushton njësoj dhe nuk mëson asgjë të transferueshme.

Ekzekutimi i trajnimit, komandë pas komande

  1. 1
    Autentifikohu kundrejt Hub-it

    Pika bazë e kontrollit vjen nga Hub-i, dhe ndoshta edhe grupi juaj i të dhënave.

    bash
    hf auth login
  2. 2
    Lexo opsionet një herë

    Çdo fushë e konfigurimit të pipeline-it dhe politikës është një flamur. Shfletoje para se të gërmosh në burim.

    bash
    lerobot-train --help
  3. 3
    Fillo rregullimin e imët

    Shembulli i dokumentacionit ekzekuton batch 64 në një A100 të vetme; ankori i vetë udhëzuesit të llogaritjes A100 40 GB është batch 16, dhe 8 është ekuivalenti i 24 GB. Nuk ka flamur planifikuesi këtu me qëllim, shih më poshtë.

    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
    Lexo rreshtin e log-ut, jo vetëm humbjen

    Çdo --log_freq hapa lerobot printon loss, grdn, lr, updt_s, data_s, smp/s dhe, në CUDA, mem_gb. mem_gb tregon nëse batch-i përshtatet, lr nëse orari po zvogëlohet, dhe data_s që i afrohet updt_s do të thotë se dataloader-i është pengesa, jo GPU-ja.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    Mblidh pikat e kontrollit që mund t'i krahasosh

    save_freq parazgjedhur është 20000, kështu që një ekzekutim me 20000 hapa lë një pikë kontrolli dhe asgjë për ta krahasuar. Vendos 2000. Për të shtyrë në Hub nevojitet --policy.repo_id.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    Rifillo nëse makina ndalon

    Drejto --config_path te train_config.json pranë pikës së kontrollit. lerobot refuzon të fillojë në një output_dir ekzistues nëse nuk po rifillon, kështu që nuk mund të mbishkruash një ekzekutim aksidentalisht.

    bash
    lerobot-train \
      --config_path=<path to the saved train_config.json> \
      --resume=true

Flamujt që ndryshojnë realisht rezultatin

FlagÇfarë bënNë 24 GB
--batch_sizeMostra për hap, afërsisht lineare në VRAM4 to 8
--stepsHapat totalë të optimizuesit20000 kalim i parë
--policy.scheduler_decay_stepsGjatësia e zbërthimit kosinus, parazgjedhur 30000Vlen vetëm mbi 30000
--policy.use_ampPrecizion i përzier; SmolVLA nuk ka fushë dtypetrue kur memoria është e kufizuar
--num_workersProcese të dataloader-it, parazgjedhur 4Rrit derisa data_s të ndalojë së rrituri
--dataset.eval_splitFraksioni i episodeve të mbajtura mënjanë për detyrë0.1, with --eval_steps
--policy.freeze_vision_encoderMban kullën e vizionit të ngrirëtrue on 24 GB
--policy.train_expert_onlyVetëm eksperti ~100 M merr gradientëtrue fillimisht
Orari: çfarë trajton 0.6.1 dhe çfarë jo

SmolVLA paracakton një orar kosinusi: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Këshillat e vjetra thonë se një ekzekutim me 20000 hapa ngec në mes të zbërthimit. Në 0.6.1 nuk ndodh: `CosineDecayWithWarmupSchedulerConfig.build()` i jepet `--steps`, dhe poshtë `num_decay_steps` ai shkallëzon të dyja, ngrohjen 1000 në 666 dhe zbërthimin 30000 në 20000, duke printuar Planifikuesi i shkallëzimit automatik të LR-së ndërsa e bën këtë. Ai nuk shkallëzohet kurrë lart: zbërthimi është i kufizuar me `min(current_step, decay_steps)`, kështu që `--steps=100000` standard qëndron në minimum nga hapi 30000 deri në fund, 70 për qind e ekzekutimit. Vetëm ajo anë e gjatë ende ka nevojë për `--policy.scheduler_decay_steps`. Kolona `lr` është vendi ku kontrolloni.

Parazgjedhjet që trashëgoni nëse nuk prekni asgjë

Një politikë konfigurim në lerobot mbart optimizuesin dhe parazgjedhjen e tij të planifikuesit, dhe nëse nuk vendosni use_policy_training_preset=false ato parazgjedhje fitojnë. Gjysma e pyetjeve që njerëzit bëjnë rreth trajnimit të SmolVLA-s u përgjigjen nga një parazgjedhje që ata nuk e dinin se ekzistonte.

CilësimiParazgjedhja në lerobot 0.6.1Përcaktuar në
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

Dy rreshtat që i befasojnë njerëzit janë freeze_vision_encoder dhe train_expert_only, të dyja të vërteta. Nga kutia, ju trajnoni afërsisht 100 M parametra, jo 450 M, prandaj përshtatet në 24 GB. Ekzekutimi referencë i LeRobot-it në një grup H100 me katër GPU i kthen të dyja në false; në një kartë 24 GB kjo e kthen një ekzekutim funksional në një bllokim për shkak të mungesës së memories.

Çelësi i memories që nuk është aty

Këshilla e udhëzuesit kur jeni të kufizuar nga memoria është të ulni madhësinë e grupit (batch size) dhe të përdorni akumulimin e gradientit për të rikuperuar grupin efektiv. Nuk ka akumulim gradienti në lerobot 0.6.1: TrainPipelineConfig nuk ka një fushë të tillë dhe vargu nuk shfaqet askund në paketën e lëshuar. Formulari AY-Robots tregon një vlerë akumulimi gradienti prej 8 për SmolVLA dhe nuk e zbaton as atë. Levat tuaja në 24 GB janë --batch_size, dy parazgjedhjet e ngrirjes (freeze defaults), dhe --policy.use_amp.

Sa kohë zgjat ekzekutimi, dhe sa hapa janë të mjaftueshëm

LeRobot publikon ankorime të kohës reale për pesë epoka mbi një grup të dhënash prej rreth 50 episodesh, rreth 45000 korniza me 30 fps. Shifra të rendit të madhësisë, thonë dokumentet, por ato janë ndryshimi midis pritjes së një ore dhe një dite.

KonfigurimiPolitikaGrupKoha reale
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
Bëni llogaritjet e epokave para se të zgjidhni --steps

Rregulli është 5 deri në 10 epoka mbi grupin e të dhënave, jo një numër i fiksuar hapash: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Në grupin e të dhënave referencë ku tregojnë dokumentet, lerobot/svla_so100_pickplace, metadata raporton 50 episode dhe 19631 korniza: grupi 8 jep rreth 2454 hapa për epokë, kështu që 20000 hapa janë afërsisht 8 epoka. Përgjysmoni grupin dhe i njëjti buxhet blen gjysmën e epokave, prandaj ripërsëriteni këtë sa herë që prekni --batch_size.

Ekzekutimi i politikës së rregulluar në krahun robotik

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
Vargu i detyrës duhet të përputhet me atë me të cilin keni regjistruar. Modeli është i kushtëzuar nga ai tekst, kështu që një parafrazim është një udhëzim tjetër.

245 ms për hap veprimi është e lehtë të keqkuptohet: politika lëshon chunk_size = 50 veprime për kalim përpara dhe ekzekuton n_action_steps = 50 prej tyre, kështu që sa shpesh e paguani atë kosto përcaktohet nga ato rregullime, jo nga sa shpesh servot marrin një komandë. Kjo është ajo që copëtimi i veprimeve blen, dhe pse një model 245 ms mund të drejtojë një krah 30 Hz. Ajo që mbetet është vonesa e inferencës në fund të copës.

Matja (SmolVLA, SO-100 real)SinkronAsinkron
Koha e përfundimit, marrje dhe vendosje, 10 prova13.75 s9.70 s
Ciklet e marrjes dhe vendosjes në një dritare kohore fikse919
Shkalla e suksesit mesatarisht mbi tre detyrat78.3 %73.3 %

Rreshti i tretë është ajo që shumica e shkrimeve anashkalojnë. Inference asinkrone është rreth 30 për qind më e shpejtë dhe pothuajse dyfishon prurjen në një dritare fikse, dhe punimi i quan shkallët e suksesit të krahasueshme, gjë që mesatarisht janë. Nën të, renditja ra nga 70 në 50 për qind ndërsa marrja dhe vendosja fitoi 5. lerobot 0.6.1 mbart levën tjetër në të njëjtin binar: --inference.type=rtc kalon shpërndarjen në copëtim në kohë reale, të cilën blloku i përdorimit të vetë skriptit e rekomandon për VLA-të e ngadalta, Pi0, Pi0.5 dhe SmolVLA.

Inference duhet të jetë pranë servove

Cikli i kontrollit është 20 deri në 485 ms për hap veprimi në varësi të modelit, dhe udhëtimet vajtje-ardhje në internetin publik e kthejnë një politikë funksionale në një të hezituar. Inference në distancë është e realizueshme për marrje dhe vendosje të ngadaltë, jo për lëvizje të shpejtë reaktive: nëse detyra kërkon korrigjime të shpejta, GPU-ja duhet të jetë në të njëjtin LAN me krahun.

7.4 V, jo 12 V

Jashtë teme për një ekzekutim trajnimi, por i jep fund më shumë projekteve SO-100 se çdo hiperparametër. Servot Feetech STS3215 në SO-100 dhe SO-101 funksionojnë në 7.4 V; 12 V i shkatërron ato. LeKiwi kombinon një krah 7.4 V me një bazë 12 V, kjo është mënyra se si foleja e gabuar gjen prizën e gabuar.

Dy rrugë drejt të njëjtit pikë kontrolli

Ju zotëroni makinën, mjedisin dhe debugimin. E vetmja varësi nga cloud është shkarkimi i pikës së kontrollit bazë nga Hub. Rruga e duhur nëse dëshironi të modifikoni politikën, nëse të dhënat nuk mund të largohen nga rrjeti juaj, ose nëse karta është e lirë.

  • Ju kontrolloni rrotën CUDA, drajverin, ndërtimin ffmpeg dhe ngarkuesin e të dhënave.
  • Mund të ndryshoni configuration_smolvla.py dhe të ritrajnoni të njëjtën pasdite.
  • Ju paguani në energji elektrike dhe kohë, jo për ekzekutim, dhe debugoni TorchCodec vetë.
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
E gjithë rruga manuale në një bllok, lerobot 0.6.1.

Kur SmolVLA është zgjedhja e gabuar

Testi nëse SmolVLA ishte ekzekutimi i parë i duhur nuk është nëse funksionoi, por nëse dështimi ju tregoi diçka. Arritni 60 ose 70 për qind dhe një model më i madh është një shpenzim i arsyeshëm i radhës: të dhënat mbartin sinjal. Arritni 10 për qind dhe një model 3 B ka shumë të ngjarë të arrijë gjithashtu 10 për qind, të cilën sapo e mësuat për tre dollarë në vend të dymbëdhjetë.

Matrica e trajnimit AY-Robots: pesë politika si rreshta, katër krahë robotikë si kolona
Çdo qelizë është udhëzuesi i saj. SmolVLA ka një për secilën nga katër krahët.

Vlen të lexohet para se të shpenzoni më shumë: Pi0.5 kundër SmolVLA për më shumë kapacitet mbi të njëjtën ide, dhe GR00T N1.7 kundër SmolVLA për rrugën NVIDIA, të dyja në nivelin 80 GB me 4 deri në 12 USD për ekzekutim. Nga ana tjetër, ACT është baza më e lirë: 80 M parametra, 20 ms për hap veprimi, pa kushtëzim gjuhësor. Të pesëta ndodhen në faqen e politikave; arena ka 85 modele dhe 332 rezultate krahasuese.

Krahasimi i politikave AY-Robots: parametra, nivel GPU, vonesë, episode minimale
Katër numrat që vendosin një ekzekutim.

Lista kontrolluese para se të shkallëzoni diçka

  1. A e arriti lr kufirin e tij prej 2.5e-6? Nën 30000 hapa, lerobot rishkallëzon zbërthimin dhe e thotë këtë në fillim; mbi këtë, vendosni vetë --policy.scheduler_decay_steps.
  2. Më shumë se një pikë kontrolli, dhe episode të mbajtura me --dataset.eval_split në mënyrë që humbja e vlerësimit të ketë kuptim.
  3. A lëviz fare politika? Një humbje në rënie me një krah të palëvizshëm ka shkaqe specifike: humbja bie, politika nuk bën asgjë.
  4. A i mbijeton një ndryshimi të skenës? Nëse jo: politika funksionon vetëm në një konfigurim.
  5. A e shënuat farën (seed)? lerobot parazgjedh 1000, kështu që dy ekzekutime të paprekura mbeten të krahasueshme.
  6. Vetëm atëherë: më shumë episode, më shumë variacion, ose një model më i madh. Në atë rend.

Përse ekzistojnë këto modele dhe çfarë bëjnë ato me inputin gjuhësor, është sfondi; ekzekuton montimin përmes deri te ekzekutimi i parë i . Për pikën e kontrollit të përfunduar, ; nëse krahu nuk shfaqet kurrë, .

Trajnoni SmolVLA në krahun tuaj

Zgjidhni modelin dhe krahun dhe udhëzuesi ju jep parazgjedhjet e sakta, formatin e datasetit dhe koston e ekzekutimit. SmolVLA ndodhet në nivelin 24 GB me 1 deri në 3 USD për ekzekutim.

Hapni udhëzuesit e trajnimit
A mund ta rregulloj vërtet SmolVLA-n në një RTX 4090?

Po. Udhëzuesi i llogaritjes i LeRobot e vendos SmolVLA-n në afërsisht 10 deri në 16 GB VRAM kulmore në batch 8 me AdamW dhe liston kartat konsumatore 24 GB si të përshtatshme për të. Batch 64 në shembullin e dokumentacionit është i çiftuar me një A100 të vetme. Memoria shkallëzohet afërsisht linearisht me batch-in, prandaj përdorni 4 ose 8 dhe monitoroni mem_gb.

Sa episode më duhen në të vërtetë?

AY-Robots e vendos minimumin në 30. Dokumentacioni i LeRobot rekomandon rreth 50 dhe raporton se 25 episode të së njëjtës detyrë performuan keq. Struktura është më e rëndësishme se numri: grupi i referencës ishte 5 pozicione kubi me nga 10 episode secila, dhe kjo përsëritje është ajo që përgjithëson.

Dokumentacioni thotë batch 64, platforma dërgon batch 2. Cila është e saktë?

Të dyja, për harduer të ndryshëm. Shembulli i dokumentacionit përdor batch 64 dhe citon rreth 4 orë për 20000 hapa në një A100 të vetme; ankori A100 40 GB i udhëzuesit të llogaritjes është batch 16. Batch 2 është ajo që AY-Robots dërgon në nivelin 24 GB. Lokalisht 4 deri në 8 është mesatarja, dhe aritmetika e epokës ndryshon me të.

SmolVLA apo ACT për një ekzekutim të parë në një SO-100?

ACT nëse detyra është një lëvizje e përsëritur dhe dëshironi lakun më të shpejtë: 20 ms për hap veprimi, 80 M parametra, pa kushtëzim gjuhësor. SmolVLA nëse dëshironi kushtëzim gjuhësor, disa vargje detyrash në një pikë kontrolli, dhe një bazë të paratrajnuar. Të dyja ndodhen në nivelin 24 GB, kështu që zgjedhja është detyra, jo buxheti.

A duhet të vendos --policy.scheduler_decay_steps?

Vetëm kur --steps është mbi 30000. SmolVLA paracakton zbërthimin e kosinusit në 30000 hapa, dhe lerobot 0.6.1 e shkallëzon vetë poshtë për një ekzekutim më të shkurtër, duke regjistruar "Auto-scaling LR scheduler" kur e bën. Nuk shkallëzohet kurrë lart, kështu që --steps=100000 standard lë 70000 hapat e fundit në dyshemenë 2.5e-6.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started