
Trénujte Action Chunking Transformer od základov na SO-100 s lerobot: konfigurácia act, chunk_size a n_action_steps, plán 100000 krokov, inferencia 20 ms.
ACT je výnimkou spomedzi politík SO-100. GR00T N1.7 a N1.5 začínajú od nvidia/GR00T-N1.7-3B a nvidia/GR00T-N1.5-3B, Pi0.5 od lerobot/pi05_base. ACT začína od nuly: neexistuje žiadny základný kontrolný bod, pretože to nie je základný model. Je to transformátor s približne 80 miliónmi parametrov, ktorý trénujete od začiatku na jednej úlohe, na vašom ramene, pod vaším osvetlením.
To je tiež dôvod, prečo vykoná riadiaci krok za 20 ms, zatiaľ čo 3-miliardový parameter VLA potrebuje 152 až 485 ms a stojí 1 až 3 USD za spustenie namiesto 4 až 12. Táto príručka popisuje manuálnu cestu s lerobot na SO-100: záznam, konfigurácia act, čo chunk_size a n_action_steps riadia, plán 100000 krokov, rollout. Potom rovnaká úloha na AY-Robots, vrátane toho, kde platforma nepomáha.
Čo potrebujete vedieť
- •ACT sa trénuje od začiatku: žiadny základný model, žiadne pretrénovanie, žiadny jazykový vstup. Jeden kontrolný bod, jedna úloha.
- •Článok: približne 80 M parametrov, okolo 5 hodín na 11 GB RTX 2080 Ti, 0.01 s inferencie.
- •Predvolené hodnoty lerobot: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 steps, seed 1000.
- •Na AY-Robots: 20 ms na krok, najrýchlejší z piatich. Minimálne 50 epizód, LeRobot v3.0, 24 GB karta, 1 až 3 USD za spustenie.
- •Vyhráva na úlohe, ktorú už videl, a prehráva v momente, keď chcete jazykové podmieňovanie.
Skontrolované 23. augusta 2026 oproti lerobot 0.6.x: pyproject.toml na main číta version = "0.6.2", najnovší tag v0.6.1, 3. augusta 2026. Návod začínajúci s python lerobot/scripts/train.py predchádza vstupným bodom konzoly lerobot-train, lerobot-record a lerobot-rollout.
Čo je ACT v skutočnosti
Action Chunking with Transformers pochádza z článku ALOHA, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, od Zhao, Kumar, Levine a Finn, arXiv, 23. apríl 2023. Zariadenie nahráva pri 50 Hz so štyrmi webkamerami streamujúcimi 480x640 pri 30 fps: dve na uchopovačoch, jedna zhora, jedna spredu. Abstrakt tvrdí šesť zručností s 80 až 90 percentnou úspešnosťou, medzi nimi otvorenie priesvitnej nádobky na korenie a vloženie batérie, z 10 minút demonštrácií.
Telo je užitočnejšie pri plánovaní nahrávacej relácie: 50 demonštrácií na úlohu, okrem Thread Velcro pri 100, čo je 10 až 20 minút dát a 30 až 60 minút reálneho času po započítaní resetov. Úspešnosť tiež nie je rovnomerná: Thread Velcro končí na 20 percentách, Put On Shoe na 92, Cup Open 84, Prep Tape 64.
| Hyperparameter | Článok ALOHA, Tabuľka III | lerobot na main |
|---|---|---|
| rýchlosť učenia | 1e-5 | optimizer_lr = 1e-5 |
| veľkosť dávky | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| vrstvy enkodéra / dekodéra | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| veľkosť bloku k | 100 | chunk_size = 100 |
| latentná dimenzia z | chýba; Obr. 11 ukazuje projekciu 32 na 512 | latent_dim = 32 |
| časové zoskupovanie | chýba; --temporal_agg v referenčnom kóde | temporal_ensemble_coeff = None |
Článok uvádza 7 dekódovacích vrstiev, lerobot dodáva 1, zámerne. Komentár v configuration_act.py uvádza, že pôvodná implementácia má chybu, čo znamená, že sa používa iba prvá vrstva, pričom odkazuje na problém 25 v tonyzhaozh/act: hlava akcie číta hs[0], takže všetkých sedem vrstiev beží, ale k predikcii sa dostane iba prvý výstup. Tento problém je otvorený a nezodpovedaný od 23. apríla 2024. lerobot zodpovedá správaniu, ktoré viedlo k publikovaným výsledkom, nie vytlačenému číslu. Zvýšte --policy.n_decoder_layers a budete trénovať model, ktorý článok nikdy nehodnotil.
Chunking akcií je celá myšlienka
Obyčajné klonovanie správania mapuje jedno pozorovanie na jednu akciu a chyby sa kumulujú: odchýlka posunie rameno mimo distribúcie, čo vedie k horšej akcii, a o tridsať krokov neskôr je chápadlo ďaleko od objektu. Chunking akcií predpovedá k akcií naraz a vykonáva ich, čím znižuje efektívny horizont o faktor k. Tiež rieši nepríjemnosť špecifickú pre ľudské dáta: teleoperátori sa pozastavujú a jednokroková Markovovská politika nedokáže modelovať pauzu, ktorá závisí od toho, čo predchádzalo.
Článok ablatuje k namiesto toho, aby ho tvrdil. Pri vypnutom časovom zoskupovaní, spriemerovanom cez štyri nastavenia, úspešnosť stúpa z 1 percenta pri k = 1 na 44 percent pri k = 100, potom sa znižuje pri 200 a 400, keď sa politika blíži k riadeniu s otvorenou slučkou. Táto krivka je dôvodom, prečo je predvolená hodnota 100.
- chunk_size: koľko budúcich akcií dekodér predpovedá na jeden dopredný prechod. Predvolené 100.
- n_action_steps: koľko z nich vykonáte pred opätovným dopytovaním. Predvolené 100, takže lerobot vykoná celý blok v otvorenej slučke.
- lerobot overí, či
n_action_steps <= chunk_size, a ak je to naopak, vyvoláValueError.
Z prevádzkového hľadiska záleží na chunk_size delenom snímkovou frekvenciou. Pri 30 fps, ktoré používajú príklady SO-100 od lerobot, blok 100 akcií predstavuje približne 3,3 sekundy od jedného pozorovania. Ak úloha vyžaduje korekciu v rámci tohto okna, znížte n_action_steps, nie chunk_size: zachováte si dlhú predikciu a častejšie opätovne pozorujete.
# 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=cudaNastavte --policy.temporal_ensemble_coeff a lerobot vyžaduje n_action_steps = 1, inak vyvolá NotImplementedError. Ensemblovanie dopytuje politiku v každom časovom kroku a spája prekrývajúce sa predikcie pre daný časový krok s váhami w_i = exp(-m * i), pričom najstaršia dostane w_0. Práca uvádza 3,3 percenta pre ACT: reálne, ale skromné, a násobí počet inferencií dĺžkou bloku. Cenovo dostupné pri 20 ms na krok, nie pri 485 ms. Pozri latencia inferencie.
Keď ACT prekoná základný model
Päť trénovateľných politík vedľa seba, s číslami, ktoré AY-Robots meria a používa na dimenzovanie GPU, ktoré si prenajíma.
| Politika | Rodina | Parametre | Na krok | Úroveň GPU | Min. epizód | Dátová sada |
|---|---|---|---|---|---|---|
| ACT | Chunking transformátor, od základu | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | Kompaktný VLA | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | Základ VLA, difúzna hlava | ~3 B (~40 M trained) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | Základ VLA, predchodca | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | VLA s priraďovaním toku, pozri priraďovanie toku | ~3 B, PaliGemma backbone | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- 20 ms na akčný krok, najrýchlejší z piatich, na 24 GB karte, nie A100.
- 1 až 3 USD za spustenie oproti 4 až 12 za triedu 3 B.
- Presné pri práci bohatej na kontakt, ktorú videl: 88 a 96 percent na Slide Ziploc a Slot Battery, kde predchádzajúce metódy nikdy neprešli prvou fázou.
- Žiadne jazykové podmienky: reťazec úlohy sa ignoruje, takže jeden kontrolný bod je jedna úloha.
- Žiadne sémantické priority: všetko, čo vie, pochádza z vašich 50 epizód.
- Úzka generalizácia: posuňte kameru a preškoľujete.
- Zlyháva potichu: strata klesá, rameno nič nerobí, protokoly nič nehovoria.
- Výhoda rýchlosti pomáha len vtedy, ak sa inferencia nachádza vedľa servomotorov.
Vyberte ACT, keď sú úloha a scéna pevné a pohyb musí byť rýchly a presný. Vyberte keď jeden kontrolný bod musí pokrývať niekoľko inštrukcií. Dve stránky porovnávajú rozhodnutie priamo: a . Pre publikované benchmarky, odkazuje každé číslo na jeho zdroj.
Čo potrebujete, než začnete
Jedno sledovacie rameno, jedno vodiace rameno pre , aspoň jednu kameru, 24 GB GPU. ACT číta iba obrázky a pozície kĺbov. Dve kamery sú ideálne: pevný predný pohľad na to, kde sa veci nachádzajú, kamera na zápästí na to, čo sa chystá dotknúť , ako na ALOHA.
| Rameno | Servá | Napätie | Cena dielov | Stav |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 to 150 EUR | Plná podpora, referenčné rameno |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 to 170 EUR | Plná podpora |
| Koch v1.1 | Dynamixel XL330 / XL430 | 5 V a 12 V napájacie lišty | ~250 to 350 EUR | Kompatibilné |
| LeKiwi | Feetech STS3215 (arm) | 7.4 V rameno, 12 V základňa | ~400 to 500 EUR | Kompatibilné |
SO-100 a SO-101 používajú servá Feetech STS3215 na 7.4 V napájacej lište. Napájanie 12 V ich zničí, dostatočne ticho na to, aby ľudia najprv obviňovali softvér, a 12 V napájanie Koch fyzicky pasuje na dosku SO-100. Skontrolujte štítok. Príznaky: servo nereaguje, rameno sa trhá a potom klesá. Tiež SO-100 vs SO-101.
Od holého ramena po zaznamenaný dátový súbor
Nižšie uvedený postup je pre lerobot 0.6.x. Preskočte ho, ak máte kalibrované rameno a dátový súbor. V opačnom prípade príručka pre začiatok s SO-100 pokrýva montáž, návod na nahrávanie pokrýva zachytávanie a dokumentácia k dátovým súborom formát.
- 1Nainštalujte lerobot so správnymi doplnkami
Nahrávanie vyžaduje
core_scripts, trénovanietraining, servá Feetechfeetech. 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 - 2Nájdite USB port každého ramena
Spustite ho s oboma ramenami zapojenými, jedno odpojte, keď budete vyzvaní. Na Linuxe možno budete musieť otvoriť povolenia uzla.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Nastavte ID motorov a prenosovú rýchlosť
Na SO-100 sa to deje pred montážou: na rozdiel od SO-101 sú konektory po zostavení nedosiahnuteľné. Skript prechádza zbernicou motor po motore od chápadla a zapisuje ID do EEPROM.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4Kalibrujte obe ramená
Nastavte každý kĺb do stredu jeho rozsahu, stlačte Enter a potom každý prejdite celým jeho rozsahom. Kalibrácia umožňuje spustiť politiku trénovanú na jednom ramene na inom. Znovu použite rovnaké
id.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 - 5Teleoperujte raz so zapnutými kamerami
Pravidlo lerobot: mali by ste byť schopní vykonať úlohu len pri pohľade na obrázky z kamery. Ak to nedokážete, ani ACT to nedokáže. Týmto sa zachytí viac zlých dátových sád ako neskorším ladením.
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 - 6Nahrajte 50 epizód
50 je minimum AY-Robots a to, čo ALOHA používala na úlohu. lerobot odporúča 10 na umiestnenie objektu, kamery pevné, uchopenie konzistentné.
nukončí epizódu,rznova nahrá,qzastaví a zakóduje.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 nemá žiadne predchádzajúce znalosti, na ktoré by sa mohol spoľahnúť, takže každá nekonzistentnosť sa stáva trvalou. Tri najnákladnejšie: kamera posunutá medzi epizódou 20 a 21, svetlo, ktoré sa zmenilo, pretože ste nahrali polovicu sady popoludní, uchopenie vykonané dvoma spôsobmi. Každé z nich poskytuje dokonale vyzerajúcu krivku straty a rameno, ktoré ide na nesprávne miesto. Pozrite si strata klesá, politika nič nerobí, politika funguje len v jednom nastavení a zber vysoko kvalitných tréningových dát.
Pred trénovaním prehrajte aspoň päť epizód. ukladá streamy z kamier, stavy kĺbov a akcie na , a prehrávanie tieto akcie posiela späť na rameno. Ak prehrávanie úlohu nevykoná, dáta ju neobsahujú a trénovanie ju nevymyslí.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0Trénovanie politiky ACT
Toto je celý príkaz. Všetko špecifické pre ACT je už predvolené, preto stránka lerobot ACT odporúča začať s nimi.
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 načíta ACTConfig, ktorý sa prispôsobí počtu motorov a kamier zaznamenaných vo vašom datasete, takže nikdy nemusíte deklarovať tvar pozorovania. --wandb.enable=true je voliteľný a stojí za to: krivka straty je jediný lacný signál v behu so 100000 krokmi. Rozvrh pochádza z tréningovej konfigurácie lerobot, nie z ACTConfig: 100000 krokov, dávka 8, seed 1000, kontrolný bod každých 20000 krokov, logovanie každých 200.
Úplné spustenie zanechá päť adresárov kontrolných bodov, 020000 až 100000, plus posledný symbolický odkaz. Uchovajte ich všetky: najlepšia politika často nie je tá posledná.
| Nastavenie | Predvolené pre lerobot | Formulár AY-Robots ACT | Komentár |
|---|---|---|---|
| veľkosť dávky | 8 | 8 | Znížte ju najprv, ak narazíte na limity VRAM. |
| rýchlosť učenia | 1e-5 | 1e-5 | Rovnaké ako v článku ALOHA. |
| max. krokov | 100000 | 100000 | Približne tam, kde sa súbor 50 epizód prestane zlepšovať. |
| akumulácia gradientu | 1 | 1, nepoužije sa | Namiesto toho zmeňte veľkosť dávky. |
| seed | 1000 | exponované | Vstupný bod tyro GR00T nemá seed; spustenia ACT sú tie reprodukovateľné. |
| chunk_size / n_action_steps | 100 / 100 | 100 / 100, editovateľné | Horizont predikcie a vykonávania. Znížte druhý, nie prvý. |
| frekvencia kontrolných bodov | 20000 | neexponované | saveSteps je tu ovládač GR00T. |
ACT s veľkosťou dávky 8 a dvoma kamerami 640x480 sa pohodlne zmestí na 24 GB. Prestane sa zmestiť, keď ľudia zvýšia veľkosť dávky pre rýchlosť, alebo mu dodajú snímky 1920x1080, ktoré ukazuje jeden príklad nahrávania lerobot. Dva backbony ResNet-18 pri 1080p majú veľmi odlišný pamäťový profil. Znížte --batch_size na 4 pred prenajatím väčšej karty. Pozri nedostatok pamäte pri tréningu.
Trvanie: približne 5 hodín na 11 GB RTX 2080 Ti v článku, niekoľko hodín pre 100k krokov podľa stránky ACT lerobot, 2 až 5 hodín na úrovni 24 GB AY-Robots. Neskracujte to. Súbor README referenčného repozitára uvádza, že trhavá alebo prerušovaná politika zvyčajne potrebuje len viac tréningu, pretože úspech a plynulosť sa neustále zlepšujú aj po stabilizácii straty: pre reálne dáta potrebuje aspoň 5000 epoch, alebo 3 až 4-násobok dĺžky po stabilizácii.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueSpustenie natrénovanej politiky na ramene
Nasadenie používa lerobot-rollout. Kľúče kamier sa musia zhodovať s nahranými: politika trénovaná na front a wrist nebude akceptovať cam0 a cam1, a rename_map nepomôže, pretože potrebuje predtrénovaný kontrolný bod. Reťazec úlohy môže byť vynechaný; vlastný príklad lerobot ho označuje ako voliteľný pre ACT.
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=60Hodnotenie sa predtým spúšťalo pomocou lerobot-record --policy.path=.... Vo verzii 0.6.x je to lerobot-rollout s voličom --strategy.type: base, sentry (nahrávanie s automatickým nahrávaním), highlight (kruhový buffer uložený stlačením klávesu), dagger (človek v slučke) a episodic. K 23. augustu 2026 stránka dokumentácie ACT stále uvádza „použitie príkazu lerobot-record“ priamo nad blokom, ktorý spúšťa lerobot-rollout. Riaďte sa príkazom, nie vetou.
Ak chcete pripnúť kontrolný bod namiesto finálneho modelu, pridajte --policy.pretrained_revision. To si vyžaduje, aby sa spustenie začalo s --save_checkpoint_to_hub=true, predvolene vypnuté: bez neho lerobot nahrá iba finálny model a nič iné. S ním je každý kontrolný bod označený krokom s nulovou výplňou, takže --policy.pretrained_revision=060000 obnoví ten s 60000 krokmi. Porovnanie s 100000 na skutočnom ramene je najlacnejší dostupný experiment.
Dve cesty k rovnakému kontrolnému bodu
Všetko vyššie uvedené je manuálna cesta a funguje. Cesta cez platformu vymieňa kontrolu za to, že nemusíte vlastniť GPU ani prostredie Python.
- Nainštalujte lerobot 0.6.x s
core_scripts,training,feetech, ffmpeg. - Nájdite porty, nastavte ID motorov, kalibrujte obe ramená, nahrajte 50 epizód.
- Prehrajte niekoľko epizód, aby ste potvrdili, že dáta obsahujú úlohu.
- Prenajmite si alebo vlastnite 24 GB GPU, zlaďte CUDA a PyTorch, spustite
lerobot-train --policy.type=act. - Počkajte niekoľko hodín, potom spustite
lerobot-rolloutna stroji pri ramene.
# 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=cudaÚplná kontrola: upravte configuration_act.py, pridajte kameru, forknite trénera. Pre výskum, a nie pre dodanie úlohy, je platforma rozptýlením.
- Nahrávajte pomocou desktopového klienta, alebo prineste Hugging Face repo id či lokálny dataset.
- Otvorte sprievodcu ACT na SO-100 a vyberte model a dataset. Predvolené hodnoty sú tie z lerobot; chunkSize, nActionSteps, seed a logFreq sú editovateľné.
- Backend prenajíma GPU dimenzované podľa VRAM a zapisuje checkpointy do objektového úložiska.
/api/inference/podpotom obsluhuje politiku lokálnemu robotickému klientovi. Nečinný watchdog zničí pod, takže sa nič neúčtuje potichu.- Rovnaké operácie existujú v CLI, MCP serveri a v dokumentácii k trénovaniu.
Neopravuje to vaše dáta: dataset s posunutou kamerou sa tu trénuje rovnako zle a formulár to nedokáže detekovať. Ani to neodstraňuje problém s latenciou. Riadiaca slučka je 20 až 485 ms na akčný krok, s verejnými internetovými okruhmi navyše, a ACT je najviac postihnutý, pretože jeho krok je najkratší: 60 ms je 12-percentné spomalenie pri 485 ms Pi0.5, ale štyrikrát dlhší krok pri 20 ms ACT. Vzdialená inferencia sa hodí pre pomalé uchopenie a umiestnenie, nie pre rýchly reaktívny pohyb.

Čo sa v skutočnosti pokazí
Takmer žiadna z ťažkostí nie je v trénovacom príkaze. Je v veciach okolo neho, zoradených podľa toho, ako často sa objavia prvýkrát.
| Symptóm | Obvyklá príčina | Stránka |
|---|---|---|
| lerobot-find-port nič nezobrazuje | Ovládač, kábel alebo oprávnenia uzla | rameno nerozpoznané |
| Kamera chýba v čase nahrávania | Index sa zmenil po reštarte, alebo dve kamery na jednom USB kontroléri | kamera nerozpoznaná |
| Trénovanie odmieta dátovú sadu | ACT vyžaduje v3.0, GR00T potrebuje v2.1 | dátová sada odmietnutá ako v3 |
| CUDA nedostatok pamäte | Veľkosť dávky zvýšená, alebo 1080p snímky namiesto 480p | nedostatok pamäte pri trénovaní |
| Strata vyzerá skvele, rameno nič nerobí | Dáta postrádajú úlohu, alebo sa kamera pohla | strata klesá, politika nič nerobí |
| Trhavý pohyb alebo pauza uprostred epizódy | Nedostatočne trénované, zastavenie na hranici bloku, alebo vypršaný inferenčný hovor | politika zamrzne uprostred pohybu |
Dva riadky si zaslúžia zdôraznenie. ACT trénuje na LeRobot v3.0, zatiaľ čo loader GR00T na ňom padá a potrebuje v2.1, takže dátová sada, ktorá trénuje ACT, môže zlyhať pri spustení GR00T. A posledný riadok má dve riešenia: autori ACT reagujú na trhavý pohyb ďalším trénovaním, zatiaľ čo s n_action_steps pri 100 sa skutočné zastavenie objaví na hranici bloku, viditeľná pauza každých 3.3 sekundy pri 30 fps. Ďalšie dve veci, ktoré treba vedieť: jeden mŕtvy kĺb je zvyčajne id serva, ktoré nebolo nikdy zapísané, a uchopovač, ktorý sa priblíži, ale nikdy sa nezatvorí znamená príliš malý rozsah uchopovača v demonštráciách. Úplný index: stránky režimov zlyhania.
Čo stojí spustenie
| Úroveň | Modely | Doba behu | Cena za hodinu | Cena za spustenie |
|---|---|---|---|---|
| RTX 4090 / 24 GB | ACT, SmolVLA | 2 až 5 hodín | 0.30 to 0.60 USD | približne 1 až 3 USD |
| A100 80 GB / H100 | GR00T N1.7, GR00T N1.5, Pi0.5 | 3 až 6 hodín | 1.20 to 2.00 USD | približne 4 až 12 USD |
Toto je argument pre začatie s ACT, aj keď neskôr chcete VLA.Neúspešné spustenie ACT stojí cenu kávy a v priebehu hodín vám povie, či váš dataset obsahuje danú úlohu.Neúspešné spustenie GR00T stojí štyrikrát toľko za rovnakú lekciu.Prechod na GR00T N1.7 alebo SmolVLA potom je zmena formy, nie prestavba.Pozadie: modely videnia, jazyka a akcie, kompletný sprievodca SO-100, natrénujte svoju prvú politiku a učenie napodobňovaním. Žiadne rameno? Živá stránka streamuje skutočné SO-100, ktoré môžete ovládať bez registrácie.
Trénujte ACT na vašom SO-100
Sprievodca pre túto presnú kombináciu: predvolené nastavenia, úroveň GPU a náklady na spustenie. Vyberte dataset, backend si prenajme kartu a zapíše kontrolné body.
Otvoriť sprievodcu tréningomExistuje predtrénovaný model ACT, ktorý môžem namiesto toho doladiť?▾
Nie. ACT nemá žiadny základný model; existuje len potom, čo ho natrénujete. To nie je medzera v nástrojoch, to je to, čo ACT je: článok trénuje politiku od nuly pre každú úlohu. Pre kontrolný bod od dodávateľa použite GR00T N1.7 alebo Pi0.5.
Koľko epizód skutočne potrebujem?▾
50: to, čo ALOHA zaznamenala pre každú úlohu (100 pre Thread Velcro, jej najťažšiu) a minimum AY-Robots. lerobot odporúča približne 10 na umiestnenie objektu, s pevnými kamerami a konzistentným uchopením. Päťdesiat čistých epizód prekoná sto, kde sa kamera pohybovala.
Mám zmeniť chunk_size zo 100?▾
Zvyčajne nie. Ablácia stúpa z 1 percenta pri k = 1 na 44 percent pri k = 100 a potom sa zužuje, takže 100 je blízko vrcholu. Ak rameno príliš dlho vykonáva akciu, znížte radšej n_action_steps: pri 30 fps, 25 opätovných dopytov každých 0.8 sekundy.
Ako dlho trvá tréning a môžem ho zastaviť skôr?▾
Dve až päť hodín na 24 GB karte pre 100000 krokov. Kontrolné body sa ukladajú každých 20000 krokov a --resume=true obnoví spustenie, takže predčasné zastavenie je bezpečné. Len nie pri prvom plochom úseku: plynulosť sa zlepšuje po stabilizácii straty.
Strata klesla a rameno stále zlyháva. Čo teraz?▾
Takmer vždy dataset. Prehrajte zaznamenané epizódy na ramene: ak prehrávanie nevykoná úlohu, dáta ju neobsahujú. Potom skontrolujte, či sa niečo nepohlo, najmä kamera. ACT nemá žiadne apriórne znalosti, takže posun v epizóde 21 je trvalý.
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