
Kouluta Action Chunking Transformer alusta alkaen SO-100:lla lerobotin avulla: act config, chunk_size ja n_action_steps, 100000 askeleen aikataulu, 20 ms päättely.
ACT on poikkeus SO-100-käytäntöjen joukossa. GR00T N1.7 ja N1.5 alkavat nvidia/GR00T-N1.7-3B ja nvidia/GR00T-N1.5-3B, Pi0.5 lerobot/pi05_base. ACT aloittaa tyhjästä: perusmuistipistettä ei ole, koska se ei ole perusmalli. Se on noin 80 miljoonan parametrin muuntaja, jonka koulutat alusta alkaen yhteen tehtävään, omalla robotillasi, omassa valaistuksessasi.
Siksi se suorittaa ohjausaskeleen 20 ms:ssa, kun 3 miljardin parametrin VLA tarvitsee 152–485 ms, ja maksaa 1–3 USD per ajo 4–12 USD:n sijaan. Tämä opas käy läpi manuaalisen reitin lerobot SO-100: tallennus, act -konfiguraatio, mitä chunk_size ja n_action_steps ohjaavat, 100000 askeleen aikataulu, käyttöönotto. Sitten sama työ AY-Robotsilla, mukaan lukien kohdat, joissa alusta ei auta.
Mitä sinun tulee tietää
- •ACT kouluttaa alusta alkaen: ei perusmallia, ei esikoulutusta, ei kielisyötettä. Yksi tarkistuspiste, yksi tehtävä.
- •Julkaisu: noin 80 M parametria, noin 5 tuntia 11 GB RTX 2080 Ti:llä, 0.01 s päättely.
- •lerobot-oletukset: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 askelta, seed 1000.
- •AY-Robotsilla: 20 ms per askel, nopein viidestä. Vähintään 50 jaksoa, LeRobot v3.0, 24 GB kortti, 1–3 USD per ajo.
- •Se voittaa tehtävässä, jonka se on nähnyt, ja häviää heti, kun haluat kieliehdotuksen.
Tarkistettu 23. elokuuta 2026 lerobot-versiota vastaan 0.6.x: pyproject.toml main lukee version = "0.6.2", uusin tagi v0.6.1, 3. elokuuta 2026. Opetusohjelma, joka alkaa python lerobot/scripts/train.py edeltää konsolin sisääntulopisteitä lerobot-train, lerobot-record ja lerobot-rollout.
Mitä ACT todella on
Action Chunking with Transformers tulee ALOHA-paperista, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, kirjoittaneet Zhao, Kumar, Levine ja Finn, arXiv, 23. huhtikuuta 2023. Laite tallentaa 50 Hz:n taajuudella neljällä verkkokameralla, jotka suoratoistavat 480x640-resoluutiota 30 kuvaa sekunnissa: kaksi tarttujissa, yksi ylhäällä, yksi edessä. Tiivistelmä väittää kuusi taitoa 80–90 prosentin onnistumisella, mukaan lukien läpikuultavan maustekupin avaaminen ja akun asettaminen paikalleen, 10 minuutin demonstraatioista.
Teksti on hyödyllisempi tallennussession suunnittelussa: 50 demonstraatiota per tehtävä, paitsi Thread Velcro -tehtävässä 100, mikä tarkoittaa 10–20 minuuttia dataa ja 30–60 minuuttia todellista aikaa, kun nollaukset on laskettu. Onnistuminen ei myöskään ole tasaista: Thread Velcro päättyy 20 prosenttiin, Put On Shoe 92:een, Cup Open 84:ään, Prep Tape 64:ään.
| Hyperparametri | ALOHA-paperi, Taulukko III | lerobot on main |
|---|---|---|
| oppimisnopeus | 1e-5 | optimizer_lr = 1e-5 |
| eräkoko | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| enkooderi- / dekooderikerrokset | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| lohkon koko k | 100 | chunk_size = 100 |
| z:n latentti dimensio | puuttuu; Kuva 11 näyttää 32–512 projektion | latent_dim = 32 |
| ajallinen yhdistäminen | puuttuu; --temporal_agg viitekoodissa | temporal_ensemble_coeff = None |
Artikkeli luettelee 7 dekooderikerrosta, lerobot toimittaa 1, tarkoituksella. Kommentti tiedostossa configuration_act.py sanoo, että alkuperäisessä toteutuksessa on virhe, mikä tarkoittaa, että vain ensimmäistä kerrosta käytetään, viitaten ongelmaan 25 tonyzhaozh/actissa: toimintapää lukee hs[0], joten kaikki seitsemän kerrosta ajetaan, mutta vain ensimmäinen ulostulo saavuttaa ennustuksen. Tämä ongelma on ollut avoin ja vastaamaton 23. huhtikuuta 2024 lähtien. lerobot vastaa julkaistut tulokset tuottanutta käyttäytymistä, ei painettua numeroa. Nosta --policy.n_decoder_layers ja koulutat mallin, jota artikkeli ei koskaan arvioinut.
Toimintojen paloittelu on koko ajatus
Tavallinen käyttäytymisen kloonaus yhdistää yhden havainnon yhteen toimintoon, ja virheet kasaantuvat: poikkeama siirtää käsivarren pois jakaumasta, tuottaen huonomman toiminnon, ja kolmenkymmenen askeleen jälkeen tarttuja ei ole lähelläkään kohdetta. Toimintojen paloittelu ennustaa k toimintoa kerralla ja suorittaa ne, pudottaen tehollisen horisontin k-kertaisesti. Se käsittelee myös ihmisdataan liittyvän haitan: teleoperaattorit pitävät taukoja, ja yksivaiheinen Markovilainen politiikka ei voi mallintaa taukoa, joka riippuu siitä, mitä edeltänyt.
Artikkeli ablaatioi k:ta sen sijaan, että väittäisi sitä. Kun ajallinen yhdistäminen on pois päältä, neljän asetuksen keskiarvona, menestys nousee 1 prosentista k = 1:llä 44 prosenttiin k = 100:lla, sitten tasaantuu 200:ssa ja 400:ssa, kun politiikka lähestyy avoimen silmukan ohjausta. Tämä käyrä on syy siihen, miksi oletusarvo on 100.
- chunk_size: kuinka monta tulevaa toimintoa dekooderi ennustaa yhdellä eteenpäinsyötöllä. Oletusarvo 100.
- n_action_steps: kuinka monta niistä suoritat ennen uudelleenkyselyä. Oletusarvo 100, joten lerobot suorittaa koko palan avoimessa silmukassa.
- lerobot validoi
n_action_steps <= chunk_sizeja antaaValueError-virheen, jos syötät sen väärin päin.
Toiminnallisesti tärkeää on chunk_size jaettuna kuvataajuudella. lerobotin SO-100-esimerkkien käyttämällä 30 kuvaa sekunnissa kuvataajuudella 100 toiminnon pala sitoo noin 3,3 sekuntia yhdestä havainnosta. Jos tehtävä vaatii korjauksen tuon ikkunan sisällä, pienennä n_action_steps, älä chunk_size: säilytät pitkän ennusteen ja havainnoit uudelleen useammin.
# predict 100 actions, re-query after 25 of them (about 0.8 s at 30 fps)
lerobot-train \
--dataset.repo_id=${HF_USER}/so100_cube \
--policy.type=act \
--policy.chunk_size=100 \
--policy.n_action_steps=25 \
--policy.device=cudaAseta --policy.temporal_ensemble_coeff ja lerobot vaatii n_action_steps = 1, antaen NotImplementedError-virheen muuten. Ensembling kysyy politiikkaa joka aikavaiheessa ja yhdistää päällekkäiset ennusteet kyseiselle aikavaiheelle painoilla w_i = exp(-m * i), vanhimman saadessa w_0. Artikkelissa se on 3,3 prosenttia ACT:lle: todellinen mutta vaatimaton, ja se kertoo päättelykertojen määrän palan pituudella. Edullinen 20 ms per askel, ei 485 ms. Katso päättelyn latenssi.
Kun ACT voittaa perusmallin
Viisi koulutettavaa toimintamallia rinnakkain, AY-Robotsin mittaamilla ja käyttämillä luvuilla vuokraamansa GPU:n mitoittamiseen.
| Käytäntö | Perhe | Parametrit | Per askel | GPU-taso | Minimijaksot | Tietoaineisto |
|---|---|---|---|---|---|---|
| ACT | Chunking-muuntaja, alusta alkaen | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | Kompakti VLA | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | VLA-perusta, diffuusiopää | ~3 B (~40 M trained) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | VLA-perusta, edeltäjä | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | Virtaussovitus-VLA, katso virtaussovitus | ~3 B, PaliGemma backbone | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- 20 ms per toimintavaihe, nopein viidestä, 24 GB kortilla, ei A100:lla.
- 1–3 USD per ajo verrattuna 4–12 USD:hen 3 B -luokassa.
- Tarkka kosketusrikkaassa työssä, jonka se on nähnyt: 88 ja 96 prosenttia Slide Ziploc- ja Slot Battery -tehtävissä, joissa aiemmat menetelmät eivät koskaan läpäisseet ensimmäistä vaihetta.
- Ei kielikonditionointia: tehtävämerkkijono ohitetaan, joten yksi tarkistuspiste on yksi tehtävä.
- Ei semanttisia ennakkotietoja: kaikki, mitä se tietää, on peräisin 50 jaksostasi.
- Kapea yleistyskyky: siirrä kameraa ja joudut kouluttamaan uudelleen.
- Se epäonnistuu hiljaa: häviö laskee, käsivarsi ei tee mitään, lokit eivät kerro mitään.
- Nopeusetu auttaa vain, jos päättely tapahtuu servojen vieressä.
Valitse ACT, kun tehtävä ja kohtaus ovat kiinteitä ja liikkeen on oltava nopeaa ja tarkkaa. Valitse , kun yksi tarkistuspisteen on katettava useita ohjeita. Kaksi sivua käsittelee päätöstä rinnakkain: ja . Julkaistujen vertailuarvojen osalta linkittää jokaisen luvun lähteeseensä.
Mitä tarvitset ennen aloittamista
Yksi seuraajakäsivarsi, yksi johtajakäsivarsi , vähintään yksi kamera, 24 GB GPU. ACT lukee vain kuvia ja nivelten asentoja. Kaksi kameraa on ihanteellinen: kiinteä etunäkymä asioiden sijainnille, rannetason kamera sille, mitä on juuri koskettamassa, kuten ALOHA:ssa.
| Varsi | Servot | Jännite | Osien hinta | Tila |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 to 150 EUR | Täysi tuki, referenssivarsi |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 to 170 EUR | Täysi tuki |
| Koch v1.1 | Dynamixel XL330 / XL430 | 5 V and 12 V rails | ~250 to 350 EUR | Yhteensopiva |
| LeKiwi | Feetech STS3215 (varsi) | 7.4 V varsi, 12 V alusta | ~400 to 500 EUR | Yhteensopiva |
SO-100 ja SO-101 käyttävät Feetech STS3215 -servoja 7.4 V jännitteellä. Niiden syöttäminen 12 V jännitteellä tuhoaa ne, tarpeeksi hiljaa, jotta ihmiset syyttävät ensin ohjelmistoa, ja Kochin 12 V virtalähde sopii fyysisesti SO-100-korttiin. Tarkista etiketti. Oireet: servo ei vastaa, varsi nykii ja vajoaa sitten. Katso myös SO-100 vs SO-101.
Paljaasta varresta tallennettuun datajoukkoon
Alla oleva työnkulku on lerobot 0.6.x. Ohita tämä, jos sinulla on kalibroitu varsi ja datajoukko. Muussa tapauksessa SO-100 aloitusopas käsittelee kokoonpanoa, tallennuksen läpikäynti käsittelee tallennusta ja datajoukon dokumentaatio muotoa.
- 1Asenna lerobot oikeilla lisäosilla
Tallennus vaatii
core_scripts, koulutustraining, Feetech-servotfeetech. Python 3.12+.bashconda create -y -n lerobot python=3.12 conda activate lerobot conda install ffmpeg -c conda-forge pip install 'lerobot[core_scripts,training,feetech]' lerobot-info - 2Etsi kunkin käden USB-portti
Suorita se molemmat kädet kytkettyinä, irrota toinen pyydettäessä. Linuxissa saatat joutua avaamaan solmun käyttöoikeudet.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Aseta moottorin tunnukset ja siirtonopeus
SO-100:ssa tämä tapahtuu ennen kokoamista: toisin kuin SO-101:ssä, liittimiin ei pääse käsiksi, kun robotti on rakennettu. Skripti käy läpi väylän moottori kerrallaan tarttujasta alkaen ja kirjoittaa tunnukset EEPROM-muistiin.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4Kalibroi molemmat kädet
Aseta jokainen nivel alueensa keskelle, paina Enter ja pyyhkäise sitten jokainen läpi koko alueensa. Kalibrointi antaa yhdellä kädellä koulutetun toimintamallin toimia toisella. Käytä samaa
id:tä uudelleen.bashlerobot-calibrate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_follower lerobot-calibrate \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader - 5Teleoperointi kerran kamerat päällä
Lerobotin nyrkkisääntö: sinun pitäisi pystyä suorittamaan tehtävä katsomalla vain kamerakuvia. Jos et pysty, ei myöskään ACT pysty. Tämä havaitsee enemmän huonoja tietokokonaisuuksia kuin myöhempi virheenkorjaus.
bashlerobot-teleoperate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_follower \ --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader \ --display_data=true - 6Tallenna 50 jaksoa
50 on AY-Robotsin minimi ja se, mitä ALOHA käytti tehtävää kohden. lerobot suosittelee 10 per objektin sijainti, kamerat kiinteinä, tarttuminen johdonmukaista.
nlopettaa jakson,rtallentaa uudelleen,qpysäyttää ja koodaa.bashHF_USER=$(NO_COLOR=1 hf auth whoami | awk -F': *' 'NR==1 {print $2}') lerobot-record \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_follower \ --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader \ --dataset.repo_id=${HF_USER}/so100_cube \ --dataset.num_episodes=50 \ --dataset.single_task="Grab the black cube and put it in the bin" \ --display_data=true

ACT:lla ei ole ennakkotietoja, joihin turvautua, joten jokaisesta epäjohdonmukaisuudesta tulee pysyvä. Kolme kalleinta: kameraa tönäistiin jaksojen 20 ja 21 välillä, valaistus muuttui, koska tallensit puolet sarjasta iltapäivällä, tarttuminen tehtiin kahdella tavalla. Jokainen antaa täydellisen näköisen häviökäyrän ja käden, joka menee väärään paikkaan. Katso häviö laskee, toimintamalli ei tee mitään, toimintamalli toimii vain yhdessä asetelmassa ja korkealaatuisen koulutusdatan kerääminen.
Ennen koulutusta toista vähintään viisi jaksoa. tallentaa kameravirrat, nivelten tilat ja toiminnot per , ja toisto palauttaa nämä toiminnot takaisin käteen. Jos toisto ei suorita tehtävää, data ei sisällä sitä, eikä koulutus keksi sitä.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0ACT-politiikan koulutus
Tämä on koko komento. Kaikki ACT-spesifinen on jo oletuksena, minkä vuoksi lerobot ACT -sivu kehottaa aloittamaan niillä.
lerobot-train \
--dataset.repo_id=${HF_USER}/so100_cube \
--policy.type=act \
--output_dir=outputs/train/act_so100_cube \
--job_name=act_so100_cube \
--policy.device=cuda \
--wandb.enable=true \
--policy.repo_id=${HF_USER}/act_so100_cube--policy.type=act lataa ACTConfigin, joka mukautuu siihen, kuinka monta moottoria ja kameraa tietokokonaisuutesi tallensi, joten et koskaan määrittele havainnon muotoa. --wandb.enable=true on valinnainen ja kannattava: häviökäyrä on ainoa edullinen signaali 100000 askeleen ajossa. Aikataulu tulee lerobotin koulutuskokoonpanosta, ei ACTConfigista: 100000 askelta, erä 8, siemen 1000, tarkistuspiste joka 20000 askeleen välein, lokitus joka 200. askeleen välein.
Täysi ajo jättää viisi tarkistuspistekansiota, 020000:sta 100000:een, sekä viimeinen symbolisen linkin. Säilytä ne kaikki: paras käytäntö ei usein ole viimeinen.
| Asetus | lerobotin oletus | AY-Robots ACT -lomake | Kommentti |
|---|---|---|---|
| eräkoko | 8 | 8 | Laske sitä ensin, jos saavutat VRAM-rajat. |
| oppimisnopeus | 1e-5 | 1e-5 | Sama kuin ALOHA-paperissa. |
| maksimiaskeleet | 100000 | 100000 | Suunnilleen kohta, jossa 50 jakson sarja lakkaa paranemasta. |
| gradientin kumulaatio | 1 | 1, ei sovelleta | Muuta sen sijaan eräkokoa. |
| siemen | 1000 | paljastettu | GR00T:n tyro-sisääntulopisteessä ei ole siementä; ACT-ajot ovat toistettavissa olevia. |
| chunk_size / n_action_steps | 100 / 100 | 100 / 100, muokattavissa | Ennustus- ja suoritushorisontti. Laske toista, älä ensimmäistä. |
| tarkistuspisteen tiheys | 20000 | ei paljastettu | saveSteps on tässä GR00T:n säädin. |
ACT eräkoolla 8 ja kahdella 640x480 kameralla mahtuu mukavasti 24 GB:iin. Se lakkaa mahtumasta, kun ihmiset nostavat eräkokoa nopeuden vuoksi tai syöttävät sille 1920x1080 kuvia, kuten yksi lerobotin tallennusesimerkki näyttää. Kaksi ResNet-18-taustaverkkoa 1080p:llä on hyvin erilainen muistiprofiili. Laske --batch_size arvoon 4 ennen kuin vuokraat isomman kortin. Katso muistin loppuminen koulutuksessa.
Kesto: noin 5 tuntia 11 GB RTX 2080 Ti:llä artikkelissa, muutama tunti 100k askeleelle lerobotin ACT-sivun mukaan, 2–5 tuntia AY-Robotsin 24 GB tasolla. Älä keskeytä sitä liian aikaisin. Viitevaraston README sanoo, että nykivä tai pysähtelevä toimintamalli tarvitsee yleensä vain lisää , koska menestys ja sujuvuus paranevat edelleen häviön tasaantumisen jälkeen: todellisen maailman datalle se vaatii vähintään 5000 epookkia, tai 3–4 kertaa pitemmän ajan tasaantumisen jälkeen.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueKoulutetun toimintamallin ajaminen varressa
Käyttöönotto käyttää lerobot-rollout-komentoa. Kameran avainten on vastattava tallennettuja: toimintamalli, joka on koulutettu front- ja wrist-kameroille, ei hyväksy cam0- ja cam1-kameroita, eikä rename_map auta, koska se tarvitsee esikoulutetun tarkistuspisteen. Tehtävämerkkijonon voi jättää pois; lerobotin oma esimerkki merkitsee sen ohitettavaksi ACT:lle.
lerobot-rollout \
--strategy.type=base \
--policy.path=${HF_USER}/act_so100_cube \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
--display_data=true \
--duration=60Arviointi suoritettiin aiemmin komennolla lerobot-record --policy.path=.... Versiossa 0.6.x se on lerobot-rollout ja --strategy.type-valitsin: base, sentry (tallennus automaattisella latauksella), highlight (näppäinpainalluksella tallennettu rengaspuskuri), dagger (ihminen silmukassa) ja episodic. 23. elokuuta 2026 alkaen ACT-dokumentaatiosivu sanoo edelleen "käyttäen lerobot-record-komentoa" suoraan sen lohkon yläpuolella, joka suorittaa lerobot-rollout-komennon. Noudata komentoa, älä lausetta.
Kiinnittääksesi tarkistuspisteen lopullisen mallin sijaan, lisää --policy.pretrained_revision. Tämä edellyttää, että ajo on aloitettu komennolla --save_checkpoint_to_hub=true, oletuksena pois päältä: ilman sitä lerobot työntää vain lopullisen mallin eikä mitään muuta. Sen kanssa jokainen tarkistuspiste merkitään nollatäytteisellä askeleellaan, joten --policy.pretrained_revision=060000 palauttaa 60000 askeleen version. Sen vertaaminen 100000 askeleen versioon todellisessa varressa on halvin saatavilla oleva koe.
Kaksi reittiä samaan tarkistuspisteeseen
Kaikki yllä oleva on manuaalinen reitti ja se toimii. Alustareitti vaihtaa hallinnan siihen, ettei tarvitse omistaa GPU:ta tai Python-ympäristöä.
- Asenna lerobot 0.6.x `core_scripts`, `training`, `feetech`, ffmpeg -komponenttien kanssa.
- Etsi portit, aseta moottori-ID:t, kalibroi molemmat varret, tallenna 50 jaksoa.
- Toista muutama jakso varmistaaksesi, että data sisältää tehtävän.
- Vuokraa tai omista 24 GB:n GPU, yhdistä CUDA ja PyTorch, suorita `lerobot-train --policy.type=act`.
- Odota muutama tunti, sitten suorita `lerobot-rollout` koneella varren luona.
# the two commands that matter, end to end
lerobot-record --robot.type=so100_follower --robot.port=/dev/ttyACM0 \
--teleop.type=so100_leader --teleop.port=/dev/ttyACM1 \
--dataset.repo_id=${HF_USER}/so100_cube --dataset.num_episodes=50 \
--dataset.single_task="Grab the black cube"
lerobot-train --dataset.repo_id=${HF_USER}/so100_cube --policy.type=act \
--output_dir=outputs/train/act_so100_cube --policy.device=cudaTäysi hallinta: muokkaa `configuration_act.py`-tiedostoa, lisää kamera, forkaa kouluttaja. Tutkimukseen tehtävän toimittamisen sijaan alusta on häiriötekijä.
- Tallenna työpöytäsovelluksella tai tuo Hugging Face -repo-ID tai paikallinen datasetti.
- Avaa ACT on SO-100 -opas ja valitse malli ja datasetti. Oletukset ovat lerobotin omia; chunkSize, nActionSteps, seed ja logFreq ovat muokattavissa.
- Taustaohjelma vuokraa VRAMin mukaan mitoitetun GPU:n ja kirjoittaa tarkistuspisteet objektitallennustilaan.
- `/api/inference/pod` tarjoaa sitten käytännön paikalliselle robottiohjelmalle. Joutilas valvontaohjelma tuhoaa podin, joten mitään ei laskuteta hiljaa.
- Samat toiminnot ovat saatavilla CLI:ssä, MCP-palvelimella ja koulutusdokumentaatiossa.
Se ei korjaa dataasi: datasetti, jossa kameraa on siirretty, kouluttaa täällä aivan yhtä huonosti, eikä lomake voi havaita sitä. Se ei myöskään poista viiveongelmaa. Ohjaussykli on 20–485 ms per toimintavaihe, julkisen internetin edestakaisinmatkojen lisäksi, ja ACT kärsii eniten, koska sen vaihe on lyhin: 60 ms on 12 prosentin hidastus Pi0.5:n 485 ms:iin verrattuna, mutta neljä kertaa ACT:n 20 ms:n vaihe. Etäpäättely sopii hitaille poiminta- ja sijoitustehtäville, ei nopealle reaktiiviselle liikkeelle.

Mikä oikeasti menee pieleen
Lähes mikään vaikeus ei ole koulutuskäskyssä. Se on sitä ympäröivissä asioissa, järjestettynä sen mukaan, kuinka usein ne aiheuttavat ongelmia ensimmäisellä kerralla.
| Oire | Yleinen syy | Sivu |
|---|---|---|
| lerobot-find-port shows nothing | Ajuri, kaapeli tai solmun oikeudet | käsivartaloa ei tunnistettu |
| Kamera puuttuu tallennushetkellä | Indeksi muuttui uudelleenkäynnistyksen yhteydessä, tai kaksi kameraa yhdessä USB-ohjaimessa | kameraa ei tunnistettu |
| Koulutus hylkää aineiston | ACT wants v3.0, GR00T needs v2.1 | aineisto hylättiin v3:na |
| CUDA-muisti loppui | Eräkokoa nostettu, tai 1080p-kuvia 480p:n sijaan | muisti loppui koulutuksessa |
| Häviö näyttää hyvältä, käsivarsi ei tee mitään | Tiedoista puuttuu tehtävä, tai kamera liikkui | häviö laskee, toimintamalli ei tee mitään |
| Nykiminen tai tauko jakson puolivälissä | Alikoulutettu, lohkon rajan pysähdys tai aikakatkaistu päättelykutsu | toimintamalli jumiutuu liikkeen puolivälissä |
Kaksi riviä ansaitsee korostuksen. ACT kouluttaa LeRobot v3.0:lla, kun taas GR00T:n lataaja kaatuu siihen ja tarvitsee v2.1:n, joten ACT:tä kouluttava aineisto voi epäonnistua GR00T-ajossa. Ja viimeisellä rivillä on kaksi korjausta: ACT:n tekijät vastaavat nykivään liikkeeseen lisäkoulutuksella, kun taas n_action_steps arvolla 100 todellinen pysähdys osuu lohkon rajalle, näkyvä tauko joka 3.3 sekunnin välein 30 fps:llä. Kaksi muuta tiedettävää: yksi kuollut nivel on yleensä servon tunnus, jota ei koskaan kirjoitettu, ja tarttuja, joka lähestyy mutta ei koskaan sulkeudu tarkoittaa liian pientä tarttujan liikerataa demonstraatioissa. Koko hakemisto: vianmäärityssivut.
Mitä ajo maksaa
| Taso | Mallit | Ajoaika | Hinta tunnilta | Kustannus ajokertaa kohti |
|---|---|---|---|---|
| RTX 4090 / 24 GB | ACT, SmolVLA | 2 to 5 hours | 0.30 to 0.60 USD | about 1 to 3 USD |
| A100 80 GB / H100 | GR00T N1.7, GR00T N1.5, Pi0.5 | 3 to 6 hours | 1.20 to 2.00 USD | about 4 to 12 USD |
Tämä on perustelu ACT:llä aloittamiselle, vaikka haluaisitkin VLA:n myöhemmin. Epäonnistunut ACT-ajo maksaa kahvin hinnan ja kertoo muutamassa tunnissa, sisältääkö tietokantasi tehtävän. Epäonnistunut GR00T-ajo maksaa neljä kertaa enemmän samasta opista. Siirtyminen GR00T N1.7 tai SmolVLA jälkeen on muodonmuutos, ei uudelleenrakennus. Taustaa: näkö-, kieli- ja toimintamallit, täydellinen SO-100-opas, kouluta ensimmäinen toimintamallisi ja jäljittelyoppiminen. Ei robottikättä? Live-sivu striimaa oikeaa SO-100:aa ajettavaksi ilman rekisteröitymistä.
Kouluta ACT SO-100-robotillasi
Opas tälle tarkalle yhdistelmälle: oletusarvot, GPU-taso ja mitä ajokerta maksaa. Valitse tietokanta, taustaohjelma vuokraa kortin ja kirjoittaa tarkistuspisteet.
Avaa koulutusopasOnko olemassa esikoulutettua ACT-mallia, jota voin hienosäätää sen sijaan?▾
Ei. ACT:llä ei ole perusmallia; se on olemassa vasta, kun olet kouluttanut sen. Tämä ei ole puute työkaluissa, vaan se on ACT:n luonne: julkaisu kouluttaa toimintamallin alusta alkaen tehtäväkohtaisesti. Myyjän tarkistuspistettä varten käytä GR00T N1.7:ää tai Pi0.5:tä.
Kuinka monta jaksoa todella tarvitsen?▾
50: sen verran ALOHA tallensi tehtävää kohti (100 Thread Velcro -tehtävään, joka on sen vaikein) ja AY-Robotsin minimi. lerobot suosittelee noin 10:tä objektin sijaintia kohti, kamerat kiinteinä, tarttuminen johdonmukaista. Viisikymmentä puhdasta jaksoa voittaa sata jaksoa, joissa kamera liikkui.
Pitäisikö minun muuttaa chunk_size-arvoa 100:sta?▾
Yleensä ei. Ablation nousee 1 prosentista k = 1:llä 44 prosenttiin k = 100:lla ja tasaantuu sen jälkeen, joten 100 on lähellä huippua. Jos robottikäsi sitoutuu liian pitkään, laske sen sijaan n_action_steps-arvoa: 30 fps:llä 25 uudelleenkyselyä 0,8 sekunnin välein.
Kuinka kauan koulutusajo kestää, ja voinko pysäyttää sen aikaisin?▾
Kaksi tai viisi tuntia 24 GB:n kortilla 100000 askelta varten. Tarkistuspisteet tallentuvat 20000 askeleen välein, ja --resume=true jatkaa ajoa, joten aikainen pysäyttäminen on turvallista. Älä kuitenkaan pysäytä ensimmäisellä tasaisella osuudella: tasaisuus paranee, kun häviö tasaantuu.
Häviö laski, mutta robottikäsi epäonnistuu edelleen. Mitä nyt?▾
Lähes aina tietokanta. Toista tallennetut jaksot robotilla: jos toisto ei suorita tehtävää, tiedot eivät sisällä sitä. Tarkista sitten, onko jokin liikkunut, erityisesti kamera. ACT:llä ei ole ennakko-oletuksia, joten nykäisy jaksossa 21 on pysyvä.
Sources
- Zhao, Kumar, Levine, Finn: Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ACT), arXiv 2304.13705
- ALOHA / ACT project page
- tonyzhaozh/act, the reference implementation and its training-length advice
- tonyzhaozh/act issue 25: the action head reads only the first decoder layer
- huggingface/lerobot
- lerobot ACTConfig: chunk_size, n_action_steps, n_decoder_layers and the rest of the defaults
- lerobot TrainPipelineConfig: steps, batch_size, seed, save_freq, log_freq, save_checkpoint_to_hub
- lerobot train_utils: zero-padded checkpoint dirs, the last symlink and checkpoint push tagging
- lerobot v0.6.1 release, 3 August 2026
- LeRobot docs: ACT
- LeRobot docs: imitation learning on real robots (record, replay, train, rollout)
- LeRobot docs: SO-100 setup, motor ids and calibration
- LeRobot docs: installation and the optional extras
- Hugging Face blog: LeRobot Community Datasets, the ImageNet of Robotics, When and How?
- TheRobotStudio/SO-ARM100: Standard Open Arm 100
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started