
Képezzünk egy Action Chunking Transformert a nulláról egy SO-100-on a lerobot segítségével: az act config, chunk_size és n_action_steps, a 100000 lépéses ütemezés, 20 ms-os következtetés.
Az ACT kilóg a sorból az SO-100 irányelvek között. A GR00T N1.7 és N1.5 innen indul: nvidia/GR00T-N1.7-3B és nvidia/GR00T-N1.5-3B, a Pi0.5 pedig innen: lerobot/pi05_base. Az ACT a nulláról indul: nincs alap ellenőrzőpont, mert nem alapmodell. Ez egy nagyjából 80 millió paraméteres transzformátor, amit egyetlen feladatra, a saját karodon, a saját világításod mellett képzel el a nulláról.
Ezért is futtat egy vezérlési lépést 20 ms alatt, ahol egy 3 milliárd paraméteres VLA-nak 152-485 ms-ra van szüksége, és futtatásonként 1-3 USD-be kerül 4-12 helyett. Ez az útmutató a manuális útvonalat mutatja be a lerobot segítségével egy SO-100-on: a rögzítés, az act konfiguráció, hogy mit vezérel a chunk_size és a n_action_steps paraméter, a 100000 lépéses ütemezés, a rollout. Majd ugyanez a feladat az AY-Robots platformon, beleértve azokat az eseteket is, ahol a platform nem segít.
Amit tudnod kell
- •Az ACT a nulláról tanul: nincs alapmodell, nincs előképzés, nincs nyelvi bemenet. Egy ellenőrzőpont, egy feladat.
- •A tanulmány: körülbelül 80 millió paraméter, nagyjából 5 óra egy 11 GB-os RTX 2080 Ti-n, 0,01 mp-es következtetés.
- •lerobot alapértelmezések: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 lépés, seed 1000.
- •AY-Robots platformon: 20 ms lépésenként, a leggyorsabb az öt közül. Minimum 50 epizód, LeRobot v3.0, egy 24 GB-os kártya, 1-3 USD futtatásonként.
- •Nyert azon a feladaton, amit már látott, és veszít abban a pillanatban, amikor nyelvi kondicionálást szeretnél.
Ellenőrizve 2026. augusztus 23-án a lerobot 0.6.x ellen: pyproject.toml a main ágon a version = "0.6.2" értéket mutatja, a legújabb címke v0.6.1, 2026. augusztus 3. Egy oktatóanyag, ami a python lerobot/scripts/train.py paranccsal kezdődik, megelőzi a konzolos belépési pontokat: lerobot-train, lerobot-record és lerobot-rollout.
Mi is az ACT valójában
Az Action Chunking with Transformers az ALOHA tanulmányból származik, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, Zhao, Kumar, Levine és Finn tollából, arXiv, 2023. április 23. A berendezés 50 Hz-en rögzít négy webkamerával, amelyek 480x640 felbontású videót streamelnek 30 fps sebességgel: kettő a megfogókon, egy felül, egy elöl. Az absztrakt hat készséget állít 80-90 százalékos sikerességgel, köztük egy áttetsző fűszeres pohár kinyitását és egy elem behelyezését, 10 percnyi demonstráció alapján.
A főszöveg hasznosabb a felvételi munkamenet tervezésekor: 50 demonstráció feladatonként, kivéve a Thread Velcro-t 100-nál, ami 10-20 perc adatot és 30-60 perc valós időt jelent, miután a visszaállításokat is beleszámoltuk. A sikeresség sem egységes: A Thread Velcro 20 százalékon, a Put On Shoe 92-n, a Cup Open 84-en, a Prep Tape 64-en végződik.
| Hiperparaméter | ALOHA tanulmány, III. táblázat | lerobot a main ágon |
|---|---|---|
| tanulási ráta | 1e-5 | optimizer_lr = 1e-5 |
| kötegelt méret | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| kódoló / dekódoló rétegek | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| darabméret k | 100 | chunk_size = 100 |
| z látens dimenziója | hiányzik; a 11. ábra 32-től 512-ig terjedő vetítést mutat | latent_dim = 32 |
| temporális együttes | hiányzik; --temporal_agg a referencia kódban | temporal_ensemble_coeff = None |
A tanulmány 7 dekóder réteget sorol fel, a lerobot szándékosan 1-et szállít. A configuration_act.py fájlban lévő megjegyzés szerint az eredeti implementációban van egy hiba, ami azt jelenti, hogy csak az első réteg kerül felhasználásra, hivatkozva a tonyzhaozh/act 25. számú hibájára: az akciófej a hs[0]-t olvassa, így mind a hét réteg fut, de csak az első kimenet éri el az előrejelzést. Ez a probléma 2024. április 23. óta nyitott és megválaszolatlan. A lerobot a közzétett eredményeket produkáló viselkedést követi, nem a nyomtatott számot. Növelje a --policy.n_decoder_layers értékét, és olyan modellt fog képezni, amelyet a tanulmány soha nem értékelt.
Az akció darabolás a lényeg
A hagyományos viselkedésklónozás egy megfigyelést egy akcióhoz rendel, és a hibák összeadódnak: egy eltérés a kart elmozdítja az eloszlásból, rosszabb akciót eredményezve, és harminc lépéssel később a megfogó sehol sincs a tárgy közelében. Akció darabolás k akciót jósol meg egyszerre és hajt végre, k-szorosára csökkentve a tényleges horizontot. Kezel egy emberi adatokra jellemző kellemetlenséget is: a teleoperátorok szünetet tartanak, és egy egylépéses Markov-féle szabályzat nem tud modellezni egy olyan szünetet, amely attól függ, ami előtte történt.
A tanulmány k-t ablációval vizsgálja, ahelyett, hogy állítaná. Időbeli együttesítés kikapcsolásával, négy beállítás átlagában, a siker 1 százalékról (k = 1) 44 százalékra (k = 100) emelkedik, majd 200-nál és 400-nál csökken, ahogy a szabályzat megközelíti a nyílt hurkú vezérlést. Ez a görbe az oka annak, hogy az alapértelmezett érték 100.
- chunk_size: hány jövőbeli akciót jósol meg a dekóder egy előremenő lépésben. Alapértelmezett 100.
- n_action_steps: hányat hajt végre ezek közül, mielőtt újra lekérdez. Alapértelmezett 100, így a lerobot a teljes darabot nyílt hurkú módon futtatja.
- lerobot ellenőrzi, hogy
n_action_steps <= chunk_size, ésValueErrorhibát dob, ha fordítva adja meg.
Működési szempontból a chunk_size osztva a képkockasebességgel számít. A lerobot SO-100 példáiban használt 30 képkocka/másodperc sebességnél egy 100-as darab körülbelül 3,3 másodpercet fed le egyetlen megfigyeléstől. Ha a feladat korrekciót igényel ezen az időablakon belül, csökkentse az n_action_steps-t, ne a chunk_size-t: így megtartja a hosszú előrejelzést, és gyakrabban figyel meg újra.
# 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=cudaÁllítsa be a --policy.temporal_ensemble_coeff paramétert, és a lerobot megköveteli, hogy n_action_steps = 1 legyen, ellenkező esetben NotImplementedError hibát dob. Az együttesítés minden időlépésben lekérdezi a szabályzatot, és az átfedő előrejelzéseket az adott időlépésre w_i = exp(-m * i) súlyokkal keveri, ahol a legrégebbi kapja a w_0 súlyt. A tanulmány szerint ez 3,3 százalék az ACT esetében: valós, de szerény, és megszorozza a következtetési számot a darab hosszával. Megfizethető 20 ms lépésenként, de nem 485 ms-nál. Lásd: következtetési késleltetés.
Amikor az ACT felülmúl egy alapmodellt
Az öt betanítható irányelv egymás mellett, az AY-Robots által mért és a bérelt GPU méretezéséhez használt számokkal.
| Irányelv | Család | Paraméterek | Lépésenként | GPU szint | Min. epizódok | Adatkészlet |
|---|---|---|---|---|---|---|
| ACT | Daraboló transzformer, a nulláról | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | Kompakt VLA | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | VLA alap, diffúziós fej | ~3 B (~40 M trained) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | VLA alap, előd | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | Áramlás-illesztő VLA, lásd áramlás-illesztés | ~3 B, PaliGemma backbone | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- 20 ms műveleti lépésenként, a leggyorsabb az öt közül, egy 24 GB-os kártyán, nem A100-on.
- 1-3 USD futásonként, szemben a 3 B osztály 4-12 USD-jével.
- Pontos az általa látott, érintkezésben gazdag munkáknál: 88 és 96 százalék a Slide Ziploc és Slot Battery feladatokon, ahol a korábbi módszerek soha nem jutottak túl az első szakaszon.
- Nincs nyelvi kondicionálás: a feladat string figyelmen kívül marad, így egy ellenőrzőpont egy feladat.
- Nincsenek szemantikai előismeretek: minden, amit tud, az 50 epizódodból származik.
- Szűk körű általánosítás: mozgass egy kamerát, és újra kell tanítanod.
- Csendben hibázik: a veszteség csökken, a kar nem csinál semmit, a naplók semmit sem mondanak.
- A sebességelőny csak akkor segít, ha az inferencia a szervók mellett van.
Válaszd az ACT-t, ha a feladat és a jelenet rögzített, és a mozgásnak gyorsnak és pontosnak kell lennie. Válassz egy akkor, ha egy ellenőrzőpontnak több utasítást kell lefednie. Két oldal segít a döntésben fej-fej mellett: és . A közzétett benchmarkokhoz minden számot a forrásához kapcsol.
Amire szükséged van, mielőtt elkezded
Egy követő kar, egy vezető kar a , legalább egy kamera, egy 24 GB-os GPU. Az ACT csak képeket és ízületi pozíciókat olvas. Két kamera az ideális: egy rögzített elölnézet arra, hogy hol vannak a dolgok, egy csuklóra szerelt kamera arra, hogy mit fog megérinteni a , mint az ALOHA-nál.
| Kar | Szervók | Feszültség | Alkatrész költség | Státusz |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 to 150 EUR | Teljes támogatás, referencia kar |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 to 170 EUR | Teljes támogatás |
| Koch v1.1 | Dynamixel XL330 / XL430 | 5 V és 12 V-os sínek | ~250 to 350 EUR | Kompatibilis |
| LeKiwi | Feetech STS3215 (kar) | 7.4 V kar, 12 V alap | ~400 to 500 EUR | Kompatibilis |
Az SO-100 és SO-101 Feetech STS3215 szervókat használ egy 7.4 V-os sínről. 12 V-tal táplálva tönkremennek, elég csendesen ahhoz, hogy az emberek először a szoftvert hibáztassák, és egy Koch 12 V-os tápegység fizikailag illeszkedik egy SO-100 alaplapra. Ellenőrizze a címkét. Tünetek: a szervó nem reagál, a kar rángatózik, majd megereszkedik. Lásd még: SO-100 vs SO-101.
A csupasz kartól a rögzített adatkészletig
Az alábbi folyamat a lerobot 0.6.x-re vonatkozik. Hagyja ki, ha már van kalibrált karja és adatkészlete. Ellenkező esetben a SO-100 kezdő útmutató tárgyalja az összeszerelést, a rögzítési útmutató a rögzítést, és a adatkészlet dokumentáció a formátumot.
- 1A lerobot telepítése a megfelelő extrákkal
A felvételhez
core_scripts, a képzésheztraining, a Feetech szervókhozfeetechszükséges. 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 - 2Keresse meg az egyes karok USB portját
Futtassa mindkét kar bedugva, majd húzza ki az egyiket, amikor a rendszer kéri. Linuxon előfordulhat, hogy meg kell nyitnia a csomópont engedélyeit.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Állítsa be a motor azonosítóit és a baudrate-et
Az SO-100-on ez az összeszerelés előtt történik: az SO-101-gyel ellentétben a csatlakozók az összeszerelés után elérhetetlenné válnak. A szkript a markolótól kezdve egyenként végigjárja a buszt, és az azonosítókat az EEPROM-ba írja.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4Kalibrálja mindkét kart
Állítsa az összes ízületet a tartományának közepére, nyomja meg az Entert, majd mozgassa végig mindegyiket a teljes tartományán. A kalibrálás lehetővé teszi, hogy egy karon képzett irányelv egy másikon is fusson. Használja újra ugyanazt az
id-t.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 - 5Teleoperálás egyszer bekapcsolt kamerákkal
A lerobot ökölszabálya: képesnek kell lennie a feladat elvégzésére kizárólag a kamera képeit nézve. Ha Ön nem képes rá, az ACT sem. Ez több rossz adatkészletet fog ki, mint a későbbi hibakeresés.
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 - 6Rögzítsen 50 epizódot
50 az AY-Robots minimuma, és amit az ALOHA használt feladatonként. A lerobot 10-et javasol objektumhelyenként, rögzített kamerákkal, konzisztens fogással. Az
nbefejez egy epizódot, azrújra felveszi, aqleállítja és kódolja.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

Az ACT-nek nincsenek előzetes ismeretei, amelyekre támaszkodhatna, így minden inkonzisztencia állandóvá válik. A három legköltségesebb: egy kamera elmozdult a 20. és 21. epizód között, a fény megváltozott, mert a készlet felét délután rögzítette, egy fogás kétféleképpen történt. Mindegyik tökéletesnek tűnő veszteséggörbét és egy rossz helyre mozgó kart eredményez. Lásd: a veszteség csökken, az irányelv nem csinál semmit, az irányelv csak egy beállításban működik és kiváló minőségű képzési adatok gyűjtése.
A képzés előtt játsszon le legalább öt epizódot. A LeRobot adatkészlet formátuma tárolja a kamerafolyamokat, az ízületi állapotokat és a műveleteket epizódonként, és a visszajátszás visszatolja ezeket a műveleteket a karra. Ha a visszajátszás nem végzi el a feladatot, az adatok nem tartalmazzák azt, és a képzés sem fogja kitalálni.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0Az ACT irányelv betanítása
Ez a teljes parancs. Minden ACT-specifikus dolog már alapértelmezett, ezért javasolja a lerobot ACT oldal, hogy ezekkel kezdje.
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 betölti az ACTConfig-ot, amely alkalmazkodik a datasetben rögzített motorok és kamerák számához, így soha nem kell deklarálnia a megfigyelési alakzatot. --wandb.enable=true opcionális és megéri: a veszteséggörbe az egyetlen olcsó jel egy 100000 lépéses futtatás során. Az ütemezés a lerobot train configjából származik, nem az ACTConfig-ból: 100000 lépés, 8-as batch, 1000-es seed, egy ellenőrzőpont minden 20000 lépésenként, naplózás 200-onként.
Egy teljes futtatás öt ellenőrzőpont könyvtárat hagy maga után, 020000-től 100000-ig, plusz egy last szimbolikus linket. Tartsa meg mindet: a legjobb irányelv gyakran nem az utolsó.
| Beállítás | lerobot alapértelmezett | AY-Robots ACT űrlap | Megjegyzés |
|---|---|---|---|
| batch méret | 8 | 8 | Először ezt csökkentse, ha VRAM korlátokba ütközik. |
| tanulási ráta | 1e-5 | 1e-5 | Megegyezik az ALOHA tanulmányban leírttal. |
| maximális lépések | 100000 | 100000 | Körülbelül ott, ahol egy 50 epizódos készlet már nem javul. |
| gradiens akkumuláció | 1 | 1, does not apply | Ehelyett módosítsa a batch méretet. |
| seed | 1000 | exposed | A GR00T tyro belépési pontjának nincs seedje; az ACT futtatások a reprodukálhatóak. |
| chunk_size / n_action_steps | 100 / 100 | 100 / 100, editable | Előrejelzési és végrehajtási horizont. Csökkentse a másodikat, ne az elsőt. |
| ellenőrzőpont gyakoriság | 20000 | not exposed | A saveSteps itt egy GR00T beállítás. |
Az ACT 8-as batch mérettel és két 640x480-as kamerával kényelmesen elfér 24 GB-on. Akkor válik túl naggyá, ha az emberek a sebesség növelése érdekében megemelik a batch méretet, vagy az egyik lerobot felvételi példában látható 1920x1080-as képkockákat táplálják be neki. Két ResNet-18 backbone 1080p felbontáson egészen más memóriaprofilt jelent. Csökkentse a --batch_size értékét 4-re, mielőtt nagyobb kártyát bérelne. Lásd: memóriahiány a tréning során.
Időtartam: körülbelül 5 óra egy 11 GB-os RTX 2080 Ti-n a tanulmány szerint, néhány óra 100k lépésenként a lerobot ACT oldalán, 2-5 óra az AY-Robots 24 GB-os szintjén. Ne vágja rövidre. A referencia tároló README-je szerint egy rángatózó vagy megálló irányelv általában csak több betanítást igényel, mert a siker és a simaság a veszteség platója után is folyamatosan javul: valós adatok esetén legalább 5000 epoch-ra van szükség, vagy a plató után még 3-4-szeres hosszúságra.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueA betanított irányelv futtatása a karon
A telepítés a lerobot-rollout-ot használja. A kamera kulcsoknak meg kell egyezniük a rögzítettekkel: egy irányelv, amelyet a front és wrist alapján képeztek, nem fogadja el a cam0 és cam1-t, és a rename_map nem segít, mivel előre betanított ellenőrzőpontra van szüksége. A feladat string elhagyható; a lerobot saját példája szerint az ACT-hez kihagyható.
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=60Az értékelés korábban a lerobot-record --policy.path=... paranccsal futott. A 0.6.x verzióban ez a lerobot-rollout egy --strategy.type választóval: base, sentry (automatikus feltöltéssel történő rögzítés), highlight (gyűrűpuffer billentyűleütéssel mentve), dagger (ember a körben) és episodic. 2026. augusztus 23-án az ACT dokumentációs oldala még mindig azt írja, hogy "a lerobot-record parancs használatával" közvetlenül egy olyan blokk felett, amely a lerobot-rollout parancsot futtatja. Kövesse a parancsot, ne a mondatot.
Egy ellenőrzőpont rögzítéséhez a végső modell helyett, adja hozzá a --policy.pretrained_revision. Ehhez a futtatásnak a --save_checkpoint_to_hub=true opcióval kellett volna indulnia, ami alapértelmezetten ki van kapcsolva: nélküle a lerobot csak a végső modellt tölti fel, semmi mást. Ezzel minden ellenőrzőpont a nullákkal kiegészített lépésszámával van megjelölve, így a --policy.pretrained_revision=060000 visszaállítja a 60000. lépésnél lévőt. Összehasonlítani azt a 100000. lépésnél lévővel a valós karon a legolcsóbb elérhető kísérlet.
Két út ugyanahhoz az ellenőrzőponthoz
Minden fentebb leírt a manuális út, és működik. A platform út a kontrollt cseréli el azért, hogy ne kelljen GPU-val vagy Python környezettel rendelkeznie.
- Telepítse a lerobot 0.6.x-et a
core_scripts,training,feetech, ffmpeg csomagokkal. - Keresse meg a portokat, állítsa be a motor azonosítókat, kalibrálja mindkét kart, rögzítsen 50 epizódot.
- Játsszon le néhány epizódot, hogy megbizonyosodjon arról, az adatok tartalmazzák a feladatot.
- Béreljen vagy birtokoljon egy 24 GB-os GPU-t, illessze össze a CUDA-t és a PyTorch-ot, futtassa a
lerobot-train --policy.type=actparancsot. - Várjon néhány órát, majd futtassa a
lerobot-rolloutparancsot a kar melletti gépen.
# 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=cudaTeljes kontroll: szerkessze a configuration_act.py fájlt, adjon hozzá kamerát, forkolja a trainert. Kutatási célokra, nem pedig egy feladat szállítására, a platform elterelő tényező.
- Rögzítsen az asztali klienssel, vagy hozzon egy Hugging Face repo azonosítót vagy helyi adatkészletet.
- Nyissa meg az ACT SO-100 útmutatót, és válassza ki a modellt és az adatkészletet. Az alapértelmezettek a lerobot beállításai; a chunkSize, nActionSteps, seed és logFreq szerkeszthetők.
- A backend egy VRAM méretű GPU-t bérel, és ellenőrzőpontokat ír az objektumtárolóba.
- A
/api/inference/podezután kiszolgálja a policy-t a helyi robot kliensnek. Egy tétlen watchdog elpusztítja a podot, így semmi sem számlázódik csendben. - Ugyanezek a műveletek elérhetők a CLI-ben, az MCP szerveren és a képzési dokumentációban.
Nem javítja az adatait: egy elmozdított kamerával készült adatkészlet itt is pontosan ugyanolyan rosszul képződik, és az űrlap nem tudja ezt észlelni. Nem oldja meg a késleltetési problémát sem. A vezérlőhurok 20-485 ms akció lépésenként, plusz a nyilvános internetes oda-vissza utak, és az ACT szenved a legjobban, mert a lépése a legrövidebb: 60 ms 12 százalékos lassulás a Pi0.5 485 ms-éhez képest, de négyszerese az ACT 20 ms-es lépésének. A távoli következtetés lassú felvételre és elhelyezésre alkalmas, nem gyors reaktív mozgásra.

Mi romlik el valójában
A fájdalom szinte soha nem a betanítási parancsban rejlik. Hanem a körülötte lévő dolgokban, aszerint rendezve, hogy milyen gyakran okoznak problémát elsőre.
| Tünet | Gyakori ok | Oldal |
|---|---|---|
| lerobot-find-port nem mutat semmit | Illesztőprogram, kábel vagy csomópont jogosultságok | kar nem érzékelhető |
| Kamera hiányzik felvételkor | Index megváltozott újraindításkor, vagy két kamera egy USB vezérlőn | kamera nem érzékelhető |
| A betanítás elutasítja az adatkészletet | ACT v3.0-t igényel, GR00T v2.1-et | adatkészlet elutasítva v3-ként |
| CUDA memória kifogyott | Kötegelt méret növelve, vagy 1080p képkockák 480p helyett | memória kifogyott a betanítás során |
| A veszteség jól néz ki, a kar nem csinál semmit | Az adatokból hiányzik a feladat, vagy egy kamera elmozdult | veszteség csökken, a szabályzat nem csinál semmit |
| Rángatózó mozgás vagy szünet az epizód közepén | Alulbetanított, egy adatblokk határánál fellépő megakadás, vagy időtúllépéses következtetési hívás | a szabályzat megfagy mozgás közben |
Két sor kiemelést érdemel. Az ACT LeRobot v3.0-n tanít, míg a GR00T betöltője összeomlik rajta és v2.1-et igényel, így egy ACT-t betanító adatkészlet meghiúsíthat egy GR00T futtatást. Az utolsó sorban két javítás található: az ACT szerzői a rángatózó mozgásra több betanítással válaszolnak, míg n_action_steps 100-nál egy valódi megakadás egy adatblokk határánál jelentkezik, ami egy látható szünetet jelent 3.3 másodpercenként 30 fps-nél. Még két dolog, amit érdemes tudni: egyetlen halott ízület általában egy soha nem írt szervó azonosító, és egy megközelítő, de soha be nem záró megfogó túl kevés megfogó tartományt jelent a demonstrációkban. Teljes index: a hibamód oldalak.
Mennyibe kerül egy futtatás
| Szint | Modellek | Futási idő | Óránkénti ár | Futtatásonkénti költség |
|---|---|---|---|---|
| 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 |
Ez az érv amellett, hogy ACT-vel kezdjünk, még akkor is, ha később VLA-t szeretnénk. Egy sikertelen ACT futtatás egy kávé árába kerül, és órákon belül megmondja, hogy az adatkészleted tartalmazza-e a feladatot. Egy sikertelen GR00T futtatás négyszer annyiba kerül ugyanazért a tanulságért. A későbbi váltás GR00T N1.7 vagy SmolVLA utána egy formai változás, nem pedig újjáépítés. Háttér: látás-nyelv-akció modellek, a teljes SO-100 útmutató, képezd az első irányelvedet és utánzásos tanulás. Nincs kar? Az élő oldal valós SO-100-at közvetít, amit regisztráció nélkül vezethet.
ACT képzése az SO-100-adon
Útmutató ehhez a pontos kombinációhoz: alapértelmezések, GPU szint és a futtatás költsége. Válaszd ki az adatkészletet, a backend bérli a kártyát és írja a mentési pontokat.
Nyisd meg a képzési útmutatótVan előre kiképzett ACT modell, amit finomhangolhatok helyette?▾
Nem. Az ACT-nek nincs alapmodellje; csak azután létezik, miután kiképezted. Ez nem hiányosság az eszközökben, hanem maga az ACT lényege: a tanulmány minden feladathoz a nulláról képez ki egy irányelvet. Szállítói mentési ponthoz használd a GR00T N1.7-et vagy a Pi0.5-öt.
Hány epizódra van valójában szükségem?▾
50: amit az ALOHA rögzített feladatonként (100 a Thread Velcro-hoz, ami a legnehezebb), és az AY-Robots minimuma. A lerobot körülbelül 10-et javasol objektumhelyenként, rögzített kamerákkal, konzisztens fogással. Ötven tiszta epizód jobb, mint száz, ahol a kamera mozgott.
Meg kellene változtatnom a chunk_size értékét 100-ról?▾
Általában nem. Az abláció 1 százalékról emelkedik k = 1-nél 44 százalékra k = 100-nál, majd utána lecseng, így a 100 közel van a csúcshoz. Ha a kar túl sokáig elkötelezi magát, inkább csökkentsd az n_action_steps értékét: 30 fps-nél 25 lekérdezés 0,8 másodpercenként.
Mennyi ideig tart egy képzési futtatás, és leállíthatom-e korábban?▾
Két-öt óra egy 24 GB-os kártyán 100000 lépéshez. A mentési pontok 20000 lépésenként készülnek, és a --resume=true folytatja a futtatást, így a korai leállítás biztonságos. Csak ne az első lapos szakasznál: a simaság javul, miután a veszteség platózik.
A veszteség csökkent, de a kar még mindig hibázik. Mi a teendő?▾
Szinte mindig az adatkészlet. Játszd le a rögzített epizódokat a karon: ha a visszajátszás nem hajtja végre a feladatot, akkor az adatok nem tartalmazzák azt. Ezután ellenőrizd, hogy mozgott-e valami, különösen egy kamera. Az ACT-nek nincsenek előzetes ismeretei, így a 21. epizódnál történt lökés végleges.
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