SmolVLA-mallisivu AY-Robotsissa näyttäen parametrimäärän, GPU-tason, päätelmän viiveen per toimintavaihe ja jaksojen vähimmäismäärän
SmolVLALeRobotVLA-koulutusHienosäätöSO-100

Miten kouluttaa SmolVLA 24 GB:n GPU:lla (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 minuutin luku

SmolVLA on 450 miljoonan parametrin VLA, joka hienosäätyy yhdellä 24 GB:n kortilla. Todelliset lerobot 0.6.1 -komennot, todelliset oletusarvot, päivän maksaneet sudenkuopat ja mitä ajo maksaa.

SmolVLA yhdellä näytöllä

  • 450 M parametria, joista noin 100 M on virtaussovituksen toiminta-asiantuntija. lerobot kouluttaa vain tämän asiantuntijan ja pitää VLM:n jäädytettynä, minkä vuoksi se mahtuu yhdelle kortille.
  • LeRobotin laskentaopas asettaa smolvla-ryhmän noin 10–16 GB:n huippu-VRAM-kulutukseen eräkoolla 8 AdamW:n kanssa. Tästä syystä 24 GB.
  • Aloituspiste on lerobot-train. Kesäkuun 2025 SmolVLA-blogikirjoitus tulostaa edelleen python lerobot/scripts/train.py, polun, jota ei enää ole olemassa. Kaikki alla oleva on lerobot 0.6.1.
  • Kosiniaikataulu on esiasetettu vaimenemaan 30000 askeleen aikana. lerobot 0.6.1 skaalaa sen alas lyhyempää ajoa varten ja kirjaa sen, mutta ei koskaan ylös: vakiomuotoinen 100000 askeleen ajo päättyy 2.5e-6-tasolle 70000 askeleen ajaksi.
  • Kolmekymmentä jaksoa on AY-Robotsin minimi 24 GB:n tasolla, maksaen 1–3 USD per ajo verrattuna 4–12 USD 80 GB:n malleille.

Useimmat ihmiset, jotka haluavat näkö-kieli-toimintamallin todelliseen robottikäteen, pysähtyvät laitteistovaatimuksiin. GR00T N1.7 ja Pi0.5 ovat kumpikin noin kolmen miljardin parametrin kokoisia ja vaativat A100 80 GB:n tai H100:n. Jos omistat pelitietokoneen RTX 4090:llä, se on tien pää. SmolVLA on poikkeus: 450 M parametria, LeRobotin sisällä, rakennettu hienosäätöön yhdellä kuluttajakortilla ja palveluun suorittimelta.

Manuaalinen reitti ensin: asenna lerobot, hae lerobot/smolvla_base tarkistuspiste, suorita todellinen komento, lue ajo sen tapahtuessa. Sitten alustareitti ja missä se ei auta.

Mitä SmolVLA on, tarkistettavissa olevina lukuina

SmolVLA on virtaussovituspolitiikka, joka on kytketty pieneen visuaaliseen kielimalliin. Runkona on SmolVLM2-500M-Video-Instruct; tutkimuspaperi käyttää vain sen kielimallin ensimmäiset 16 kerrosta, rajoittaa jokaisen kamerakehyksen 64 visuaaliseen tunnukseen pikselisekoituksella kuvien laatoituksen sijaan, ja lomittaa ristiin-huomion itsehuomiokerroksen kanssa joka toisessa lohkossa. Päättelyn kustannukset olivat suunnittelurajoite, eivät jälkikäteen mietitty asia.

OminaisuusArvoLähde
Parametreja yhteensäabout 450 Mpaper
Toiminta-asiantuntijaabout 100 M, flow matchingpaper
VLM-runkoHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
Käytetyt VLM-kerroksetfirst 16 of the language modelnum_vlm_layers = 16
Visuaalisia tunnuksia per kehys64, pixel shuffle, no tilingpaper
Esikoulutus481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUspaper

Vertailuarvot ovat syy, miksi ihmiset vaivautuvat 450 miljoonan parametrin mallin kanssa. LIBEROssa sen keskiarvo on 87,3 prosenttia verrattuna OpenVLAn 76,5 prosenttiin (7 miljardia parametria) ja robotiikkaan esikoulutetun Pi0:n 86,0 prosenttiin (3,3 miljardia parametria); Meta-Worldissa 57,3 verrattuna 47,9:ään. Todellisella SO-100-laitteistolla monitehtäväkoulutus antaa 75 prosenttia poiminnassa ja sijoittelussa, 90 pinon rakentamisessa, 70 lajittelussa, keskiarvon ollessa 78,3, kun taas tehtäväkohtaisesti koulutetun ACT:n keskiarvo oli 48,3. Samankaltaiset rivit löytyvät jokaisen julkaistun VLA:n vierestä SmolVLA-areenan merkinnästä ja ACT vs. SmolVLA -vertailusta.

Rehellinen versio kokoväitteestä

SmolVLA ei ole kaikessa parempi kuin 3 miljardin parametrin malli. Tutkimuspaperin oma SO-101-taulukko paljastaa sen: 90 prosentin onnistuminen jakaumassa, 50 prosenttia sen ulkopuolella, alustalla, jolla sitä ei koskaan esikoulutettu. Se, mitä se väittää ja tukee, on, että Pi0:aan verrattuna se kouluttaa noin 40 prosenttia nopeammin kuusi kertaa pienemmällä muistilla.

Miksi 24 GB kortti on oikea ensimmäiseen ajoon

LeRobot toimittaa laskentakoon määritysoppaan, joka on tähän tarkoitukseen hyödyllisin sivu repositoriossa. Se ryhmittelee käytännöt selkärangan koon mukaan ja antaa yhden VRAM-kuoren ryhmää kohti, mitattuna eräkoon 8 ja AdamW:n kanssa, joka on lerobotin oletus. Optimointitila yksinään lisää 30–100 prosenttia pelkän eteen- ja taaksepäin kulun yli, joten nämä eivät ole vain painoihin liittyviä lukuja.

RyhmäKäytännötHuippu-VRAM (eräkoko 8, AdamW)Aloitus-GPU:t
Kevyt BCact, vqbet, tdmpcabout 2 to 6 GBRTX 3060, L4
Diffuusiodiffusion, multi_task_ditabout 8 to 14 GBRTX 4070+, L4
Pieni VLAsmolvlaabout 10 to 16 GBRTX 4080+, L4, A10G
Suuri VLApi0, pi0_fast, pi05, xvla, wall_xabout 24 to 40 GBA100 40 GB+
Monimodaalinengroot, eo1about 24 to 40 GBA100 40 GB+

Kymmenestä kuuteentoista gigatavua eräkoon 8 kanssa on argumentti: 24 GB kortti sopii siihen ja datalataajaan. AY-Robots asentaa SmolVLA:n RTX 4090:lle tai mille tahansa 24 GB kortille, vähintään 30 jaksoa, LeRobot v3.0 dataa, 245 ms per toimintavaihe. Vuokrattuna se on 2–5 tuntia hintaan 0.30–0.60 USD tunnissa, noin 1–3 USD per hienosäätö ajo, verrattuna 4–12 USD:hen 80 GB luokassa, jonka GR00T ja Pi0.5 tarvitsevat (hinnoittelu). Epäonnistunut SmolVLA-ajo on kahvi; epäonnistunut GR00T-ajo, lounas.

AY-Robots kustannustaulukko: kortti per käytäntö, ajoaika, hinta per ajo, tarvittavat episodit
SmolVLA ja ACT sijaitsevat 24 GB rivillä, kolme 3 B mallia 80 GB rivillä.
Aloittaminen SmolVLA:lla 3 B -mallin sijaan
Mitä saat
  • Sopii laitteistoon, joka sinulla saattaa jo olla: noin 10–16 GB erällä 8.
  • Hukkaan mennyt ajo maksaa tunteja ja yksinumeroisia dollareita, joten sinulla on varaa olla väärässä tietojoukon suhteen.
  • Esikoulutettu yhteisön tietojoukoilla, jotka on jaettu lerobot-tunnisteen alla, todellisilla SO-100- ja SO-101-tuloksilla.
  • Se elää itse lerobotissa: ei toimittajan repo-tietovarastoa, eikä smolvla_base ole rajoitettu.
Mistä luovut
  • 450 M on edelleen 450 M: jakautuman ulkopuolinen onnistuminen laskee 90 prosentista 50 prosenttiin artikkelin SO-101-taulukossa.
  • Se haluaa LeRobot v3.0 -dataa; v2.1-tallenne on muunnettava (dataset rejected v3).
  • 245 ms per toimintavaihe on pätevä poiminta- ja sijoitussäädin, ei reaktiivinen.
  • Dokumentaation esimerkki ajaa erän 64 A100:lla; 24 GB:lla vaihdat erän seinäkelloaikaan.

Vaihe 0: tietojoukko päättää ajon, ei liput

Mikään alla oleva ei ole merkityksellistä, jos tallenne on huono. LeRobot SmolVLA -sivu on suorasanainen: viitetietojoukko oli 50 episodin laajuinen viidessä kuution asennossa, 10 per asento, ja sama tehtävä 25 episodilla suoriutui huonosti. Toisto per variaatio yleistää, raaka episodimäärä ei. Etkö ole koskaan tallentanut sellaista? Aloita tallenna ensimmäinen tietojoukkosi käyttäen työpöytäasiakasohjelmaa, joka kirjoittaa LeRobot-muotoa teleoperaatio -istunnosta, tai lainaa sellainen tietojoukkohakemistosta.

  • Vähintään 30 jaksoa AY-Robotsilla, noin 50 LeRobot-viitereseptille.
  • Jokainen käyttöönotossa odottamasi variaatio, toistettuna useita kertoja.
  • Yksi tehtävämerkkijono, kirjoitettuna identtisesti tallennus- ja käyttöönottohetkellä. Malli on ehdollistettu tällä tekstillä.
  • Kiinteät kamerat. Tallennuksen ja käyttöönoton välillä siirretty kamera on yleisin syy siihen, että puhdas häviökäyrä tuottaa liikkumattoman käden.
  • Pois jätetty variaatio, jota et ole koskaan kouluttanut, jotta sinulla on jotain rehellistä testattavaa vasten.
Päivän maksava aineistoloukku

SmolVLA, Pi0.5 ja ACT haluavat LeRobot v3.0:n. GR00T N1.7 ja N1.5 haluavat v2.0 tai v2.1, ja niiden lataaja kaatuu v3.0:ssa. Tallenna kerran, suunnittele mallien vertailua myöhemmin, ja muunnat tavalla tai toisella: 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
Muunnin toimitetaan lerobotin mukana, joten mitään ylimääräistä ei tarvitse asentaa. Paketissa ei ole muunninta toiseen suuntaan.

Lisää tästä kohdassa kuinka kerätä korkealaatuista VLA-koulutusdataa robottimanipulaatioon. Lyhyt versio: 30–50 puhdasta jaksoa yhdestä tehtävästä harkitulla variaatiolla voittaa 200 huolimatonta jaksoa kolmesta, marginaalilla jota mikään hyperparametri ei pysty kuromaan umpeen.

Asenna 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-polku. Korjataksesi kouluttajan, kloonaa repo ja käytä sen sijaan pip install -e ".[smolvla,training]".

Perus lerobot asennus on kevyt ja piilottaa raskaat riippuvuudet lisäosien taakse: smolvla lisää transformerit, num2wordsin ja acceleraten, training datasettipinon ja wandb:n, core_scripts laitteisto- ja visualisointiriippuvuudet. Linuxissa asennuspolku määrää myös CUDA-pyöräsi: PyPI:n oletus on cu130-pyörä, jonka ajurin alaraja on 580.65, joten vanhemmalla ajurilla asenna torch cu128-indeksistä ensin, sitten lerobot.

policy.path ja policy.type eivät ole sama lippu

--policy.path=lerobot/smolvla_base lataa esikoulutetun 450 M tarkistuspisteen ja hienosäätää sen. --policy.type=smolvla rakentaa uuden SmolVLA:n, ja konfiguraation oletus load_vlm_weights = False tarkoittaa, että se ei edes hae SmolVLM2-runkoverkon painoja, ellet pyydä. Jos teet virheen, ajo kouluttaa iloisesti, maksaa saman verran, eikä opi mitään siirrettävää.

Koulutusajo, komento komennolta

  1. 1
    Todennus Hubiin

    Perustarkistuspiste tulee Hubista, ja todennäköisesti myös tietokantasi.

    bash
    hf auth login
  2. 2
    Lue asetukset kerran

    Jokainen putkilinjan ja käytännön konfiguraation kenttä on lippu. Selaa se läpi ennen kuin kaivaudut lähdekoodiin.

    bash
    lerobot-train --help
  3. 3
    Aloita hienosäätö

    Dokumentaation esimerkki ajaa erän 64 yhdellä A100:lla; laskentaohjeen oma A100 40 GB ankkuri on erä 16, ja 8 on 24 GB vastaava. Ei ajoituslippua tässä tarkoituksella, katso alta.

    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
    Lue lokirivi, älä vain häviötä

    Joka --log_freq askeleen välein lerobot tulostaa loss, grdn, lr, updt_s, data_s, smp/s ja, CUDA:lla, mem_gb. mem_gb kertoo, mahtuuko erä, lr kertoo, heikkeneekö aikataulu, ja data_s:n lähestyessä updt_s:ää tarkoittaa, että datalaturi on pullonkaula, ei GPU.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    Kerää vertailukelpoisia tarkistuspisteitä

    save_freq oletusarvo on 20000, joten 20000 askeleen ajo jättää yhden tarkistuspisteen eikä mitään, mihin sitä voisi verrata. Aseta 2000. Hubiin työntäminen vaatii --policy.repo_id:n.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    Jatka, jos kone sammuu

    Osoita --config_path train_config.json-tiedostoon tarkistuspisteen vieressä. lerobot kieltäytyy käynnistymästä olemassa olevaan output_dir-hakemistoon, ellet jatka, joten et voi vahingossa ylikirjoittaa ajoa.

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

Liput, jotka todella muuttavat lopputulosta

LippuMitä se tekee24 GB:lla
--batch_sizeNäytteitä per askel, karkeasti lineaarinen VRAM:issa4–8
--stepsOptimointiaskeleiden kokonaismäärä20000 ensimmäisellä kierroksella
--policy.scheduler_decay_stepsKosinivaimennuksen pituus, esiasetettu 30000Vaikuttaa vain yli 30000:n
--policy.use_ampSekatarkkuus; SmolVLA:ssa ei ole dtype-kenttäätrue, kun muisti on vähissä
--num_workersDatalaturiprosessit, oletus 4Nosta, kunnes data_s lakkaa nousemasta
--dataset.eval_splitOsuus jaksoista, jotka pidetään erillään tehtävää kohden0.1, --eval_steps:n kanssa
--policy.freeze_vision_encoderPitää näköjärjestelmän jäädytettynätrue 24 GB:lla
--policy.train_expert_onlyVain ~100 M asiantuntija saa gradientittrue ensin
Aikataulu: mitä 0.6.1 käsittelee ja mitä ei

SmolVLA esiasettaa kosini-aikataulun: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Vanhempi ohjeistus sanoo, että 20000 askeleen ajo pysähtyy siksi keskellä vaimennusta. Versiossa 0.6.1 näin ei tapahdu: `CosineDecayWithWarmupSchedulerConfig.build()` saa `--steps`-arvon, ja `num_decay_steps`-arvon alapuolella se skaalaa molemmat uudelleen, lämmityksen 1000:sta 666:een ja vaimennuksen 30000:sta 20000:een, tulostaen Automaattisesti skaalautuva LR-aikatauluttaja tehdessään niin. Se ei koskaan skaalaa ylöspäin: vaimennus on rajoitettu `min(current_step, decay_steps)`-arvolla, joten oletusarvoinen `--steps=100000` pysyy pohjalla askeleesta 30000 loppuun asti, 70 prosenttia ajosta. Vain tämä pitkä puoli tarvitsee edelleen `--policy.scheduler_decay_steps`. `lr`-sarake on paikka, josta tarkistat.

Oletusarvot, jotka perit, jos et koske mihinkään

Lerobotin käytäntö-konfiguraatio sisältää oman optimoijan ja aikatauluttajan esiasetuksen, ja ellet aseta use_policy_training_preset=false, nämä esiasetukset voittavat. Puolet SmolVLA-koulutuksesta esitetyistä kysymyksistä vastaa oletusarvo, jonka olemassaolosta he eivät tienneet.

AsetusOletusarvo lerobotissa 0.6.1Määritelty
chunk_size / n_action_steps50 / 50SmolVLAConfig
num_steps (virtauksen sovituksen kohinanpoisto)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

Kaksi riviä, jotka yllättävät ihmisiä, ovat freeze_vision_encoder ja train_expert_only, molemmat totta. Oletuksena koulutat noin 100 miljoonaa parametria, et 450 miljoonaa, minkä vuoksi se mahtuu 24 GB:iin. LeRobotin oma vertailuajo neljän GPU:n H100-klusterilla kääntää molemmat epätosiksi; yhdellä 24 GB:n kortilla se muuttaa toimivan ajon .

Muistin säädin, jota ei ole

Oppaan neuvo, kun muisti on rajallinen, on pienentää eräkokoa ja käyttää gradienttikertymää tehokkaan erän palauttamiseksi. Lerobot 0.6.1:ssä ei ole gradienttikertymää: TrainPipelineConfig-kenttää ei ole, eikä merkkijonoa löydy julkaistusta paketista. AY-Robots-lomake näyttää gradienttikertymän arvoksi 8 SmolVLA:lle, eikä se sovella sitä myöskään. 24 GB:n kortilla käytettävissäsi olevat vivut ovat --batch_size, kaksi oletusarvoista jäädytystä ja --policy.use_amp.

Kuinka kauan ajo kestää ja kuinka monta askelta riittää

LeRobot julkaisee todellisen ajan ankkureita viidelle epookille noin 50 jakson datasettiin, noin 45000 kuvaa 30 fps:llä. Suuruusluokan lukuja, dokumentaatio sanoo, mutta ne ovat ero tunnin ja päivän odottamisen välillä.

AsetuksetPolitiikkaEräKokonaisaika
Yksi L4 / A10G (24 GB)smolvla4noin 3–6 h
Yksi A100 40 GBsmolvla16noin 1–2 h
4 x H100 80 GB accelerate-kiihdytykselläsmolvla32noin 1–2 h
Yksi RTX 4090 / RTX 3090 (24 GB)act8noin 30–60 min
Laske epokkien määrä ennen kuin valitset --steps

Sääntö on 5–10 epokkia aineiston yli, ei kiinteä askelmäärä: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Viiteaineistossa, johon dokumentaatio viittaa, lerobot/svla_so100_pickplace, metatiedot ilmoittavat 50 jaksoa ja 19631 kehystä: eräkoko 8 antaa noin 2454 askelta per epokki, joten 20000 askelta on karkeasti 8 epokkia. Puolita eräkoko ja sama budjetti ostaa puolet epokeista, joten toista tämä aina kun muutat --batch_size-arvoa.

Hienosäädetyn politiikan ajaminen takaisin robottikädessä

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
Tehtävämerkkijonon on vastattava sitä, jolla tallensit. Malli on ehdollistettu tähän tekstiin, joten parafraasi on eri ohje.

245 ms toimintavaihetta kohden on helppo lukea väärin: toimintaperiaate lähettää chunk_size = 50 toimintoa eteenpäinajossa ja suorittaa niistä n_action_steps = 50, joten kustannuksen maksamisen tiheys määräytyy näiden säätimien, ei servojen komentojen saamisen tiheyden mukaan. Tämän toimintojen ryhmittely mahdollistaa, ja siksi 245 ms malli voi ohjata 30 Hz kättä. Jäljelle jää päätelmän viive ryhmän lopussa.

Mittaus (SmolVLA, todellinen SO-100)SynkroninenAsynkroninen
Valmistumisaika, poiminta ja sijoitus, 10 koetta13.75 s9.70 s
Poiminta- ja sijoitussyklien määrä kiinteässä aikaikkunassa919
Onnistumisprosentti keskimäärin kolmessa tehtävässä78.3 %73.3 %

Tuo kolmas rivi on se, jonka useimmat kirjoitukset jättävät väliin. Asynkroninen päättely on noin 30 prosenttia nopeampaa ja kaksinkertaistaa läpimenon kiinteässä aikaikkunassa, ja paperi kutsuu onnistumisprosentteja vertailukelpoisiksi, mitä ne keskimäärin ovatkin. Sen alla lajittelu laski 70 prosentista 50 prosenttiin, kun taas poiminta ja sijoitus nousi 5 prosenttia. lerobot 0.6.1 sisältää toisen vivun samassa binääritiedostossa: --inference.type=rtc vaihtaa käyttöönoton reaaliaikaiseen ryhmittelyyn, jota skriptin oma käyttölohko suosittelee hitaille VLA-malleille, Pi0:lle, Pi0.5:lle ja SmolVLA:lle.

Päättelyn on oltava servojen vieressä

Ohjaussilmukka on 20–485 ms toimintavaihetta kohden mallista riippuen, ja julkisen internetin edestakaiset matkat muuttavat toimivan toimintaperiaatteen epäröiväksi. Etäpäättely on käyttökelpoista hitaaseen poimintaan ja sijoitukseen, ei nopeaan reaktiiviseen liikkeeseen: jos tehtävä vaatii nopeita korjauksia, GPU kuuluu samaan lähiverkkoon kuin robottikäsi.

7.4 V, ei 12 V

Vaikka tämä ei liity harjoitusajoon, se päättää enemmän SO-100-projekteja kuin mikään hyperparametri. Feetech STS3215 -servot SO-100- ja SO-101-roboteissa toimivat 7.4 V jännitteellä; 12 V tuhoaa ne. LeKiwi yhdistää 7.4 V varren 12 V alustaan, mikä on syy siihen, miksi väärä virtaliitin löytää väärän pistorasian.

Kaksi reittiä samaan tarkistuspisteeseen

Omistat koneen, ympäristön ja virheenkorjauksen. Ainoa pilviriippuvuus on Hubista ladattava perus-tarkistuspiste. Tämä on oikea reitti, jos haluat muokata toimintaperiaatetta, jos data ei voi poistua verkostostasi tai jos kortti on käyttämättömänä.

  • Hallitset CUDA-pyörää, ajuria, ffmpeg-rakennusta ja datalaturia.
  • Voit korjata configuration_smolvla.py-tiedoston ja kouluttaa uudelleen samana iltapäivänä.
  • Maksat sähköstä ja ajasta, et ajokohtaisesti, ja korjaat TorchCodecin itse.
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
Koko manuaalinen reitti yhdessä lohkossa, lerobot 0.6.1.

Kun SmolVLA on väärä valinta

Testi sille, oliko SmolVLA oikea ensimmäinen ajo, ei ole se, toimiko se, vaan se, kertooko epäonnistuminen sinulle jotain. Saavuta 60 tai 70 prosenttia, ja suurempi malli on kohtuullinen seuraava investointi: data sisältää signaalin. Saavuta 10 prosenttia, ja 3 B -malli saavuttaa todennäköisesti myös 10 prosenttia, minkä opit juuri kolmella dollarilla kahdentoista sijaan.

AY-Robotsin harjoitusmatriisi: viisi käytäntöä riveinä, neljä robottivartta sarakkeina
Jokainen solu on oma oppaansa. SmolVLA:lla on yksi jokaiselle neljästä varresta.

Kannattaa lukea ennen kuin kulutat lisää: Pi0.5 vs. SmolVLA saadaksesi lisää kapasiteettia samalla idealla, ja GR00T N1.7 vs. SmolVLA NVIDIA-reittiä varten, molemmat 80 GB luokassa hintaan 4–12 USD per ajo. Toinen tapa, ACT on halvempi peruslinja: 80 M parametria, 20 ms per toimintavaihe, ei kielikonditionointia. Kaikki viisi löytyvät käytäntösivulta; areenalta löytyy 85 mallia ja 332 vertailutulosta.

AY-Robotsin käytäntöjen vertailu: parametrit, GPU-taso, latenssi, vähimmäisjaksot
Neljä lukua, jotka päättävät ajon.

Tarkistuslista ennen skaalausta

  1. Saavuttiko lr 2.5e-6 alarajansa? Alle 30000 askeleen lerobot skaalaa vaimennuksen uudelleen ja ilmoittaa siitä käynnistyksen yhteydessä; sen yläpuolella aseta --policy.scheduler_decay_steps itse.
  2. Useampi tarkistuspiste ja jaksoja pidetty erillään --dataset.eval_split-asetuksella, jotta arviointihäviöllä on merkitystä.
  3. Liikkuuko toimintamalli lainkaan? Laskevalla häviöllä ja liikkumattomalla varrella on erityisiä syitä: häviö laskee, toimintamalli ei tee mitään.
  4. Selviääkö se kohtauksen muutoksesta? Jos ei: toimintamalli toimii vain yhdessä asetelmassa.
  5. Kirjasitko siemenluvun muistiin? lerobotin oletusarvo on 1000, joten kaksi koskematonta ajoa pysyvät vertailukelpoisina.
  6. Vasta sitten: lisää jaksoja, enemmän vaihtelua tai suurempi malli. Tässä järjestyksessä.

Miksi nämä mallit ovat olemassa ja mitä ne tekevät kielisyötteellä, on taustaa; käy läpi kokoonpanon ensimmäiseen ajoon. Valmiin tarkistuspisteen osalta, ; jos varsi ei koskaan ilmesty, .

Kouluta SmolVLA omalla varrellasi

Valitse malli ja varsi, niin opas antaa tarkat oletusarvot, aineiston muodon ja ajon kustannukset. SmolVLA sijaitsee 24 GB:n tasolla hintaan 1–3 USD per ajo.

Avaa koulutusoppaat
Voinko todella hienosäätää SmolVLA:ta RTX 4090:llä?

Kyllä. LeRobotin laskentaopas arvioi SmolVLA:n vaativan noin 10–16 Gt VRAM-muistia huippukuormituksessa eräkoolla 8 AdamW:n kanssa ja mainitsee 24 Gt:n kuluttajakortit riittäviksi. Dokumentaation esimerkissä eräkoko 64 on yhdistetty yhteen A100-korttiin. Muisti skaalautuu suunnilleen lineaarisesti eräkoon kanssa, joten käytä 4 tai 8 ja tarkkaile mem_gb-arvoa.

Kuinka monta jaksoa todella tarvitsen?

AY-Robots asettaa minimiksi 30. LeRobotin dokumentaatio suosittelee noin 50:tä ja raportoi, että 25 jaksoa samaa tehtävää suoriutui huonosti. Rakenne voittaa määrän: vertailujoukko oli 5 kuution sijaintia, joista jokaisesta 10 jaksoa, ja tämä toisto on se, mikä yleistyy.

Dokumentaatio sanoo eräkoko 64, alusta lähettää eräkoko 2. Kumpi on oikein?

Molemmat, eri laitteistoille. Dokumentaation esimerkki käyttää eräkokoa 64 ja mainitsee noin 4 tuntia 20000 askeleelle yhdellä A100:lla; laskentaoppaan A100 40 Gt:n ankkuri on eräkoko 16. Eräkoko 2 on se, mitä AY-Robots lähettää 24 Gt:n tasolla. Paikallisesti 4–8 on keskitie, ja epookkiaritmetiikka muuttuu sen mukana.

SmolVLA vai ACT ensimmäiseen ajoon SO-100:lla?

ACT, jos tehtävä on yksi toistuva liike ja haluat nopeimman silmukan: 20 ms per toimintoaskel, 80 M parametria, ei kieliehdollistusta. SmolVLA, jos haluat kieliehdollistusta, useita tehtäväjonoja yhdessä tarkistuspisteessä ja esikoulutetun perustan. Molemmat toimivat 24 Gt:n tasolla, joten valinta on tehtävä, ei budjetti.

Pitääkö minun asettaa --policy.scheduler_decay_steps?

Vain kun --steps on yli 30000. SmolVLA esiasettaa kosinivaimennuksen 30000 askeleelle, ja lerobot 0.6.1 skaalaa sen itse alas lyhyempää ajoa varten, kirjaten "Auto-scaling LR scheduler" tehdessään niin. Se ei koskaan skaalaa ylöspäin, joten oletusarvo --steps=100000 jättää viimeiset 70000 askelta 2.5e-6-tasolle.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started