
Apmāciet darbības sadalīšanas transformatoru no nulles uz SO-100 ar lerobot: act konfigurācija, chunk_size un n_action_steps, 100000 soļu grafiks, 20 ms secinājums.
ACT ir izņēmums starp SO-100 politikām. GR00T N1.7 un N1.5 sākas no nvidia/GR00T-N1.7-3B un nvidia/GR00T-N1.5-3B, Pi0.5 no lerobot/pi05_base. ACT sākas no nulles: nav bāzes kontrolpunkta, jo tas nav pamata modelis. Tas ir aptuveni 80 miljonu parametru transformators, ko apmācāt no nulles vienam uzdevumam, uz jūsu rokas, jūsu apgaismojumā.
Tas ir arī iemesls, kāpēc tas veic vadības soli 20 ms laikā, kur 3 miljardu parametru VLA nepieciešami 152 līdz 485 ms, un izmaksā 1 līdz 3 USD par vienu izpildi, nevis 4 līdz 12. Šis ceļvedis apraksta manuālo ceļu ar lerobot uz SO-100: ierakstīt, act konfigurāciju, ko chunk_size un n_action_steps kontrolē, 100000 soļu grafiku, izpildi. Pēc tam tas pats darbs AY-Robots, ieskaitot gadījumus, kad platforma nepalīdz.
Kas jums jāzina
- •ACT apmāca no nulles: nav bāzes modeļa, nav iepriekšējas apmācības, nav valodu ievades. Viens kontrolpunkts, viens uzdevums.
- •Raksts: aptuveni 80 M parametri, apmēram 5 stundas uz 11 GB RTX 2080 Ti, 0.01 s secinājums.
- •lerobot defaults: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 steps, seed 1000.
- •Uz AY-Robots: 20 ms par soli, ātrākais no pieciem. Vismaz 50 epizodes, LeRobot v3.0, 24 GB karte, 1 līdz 3 USD par izpildi.
- •Tas uzvar uzdevumā, ko tas ir redzējis, un zaudē brīdī, kad vēlaties valodu kondicionēšanu.
Checked 23 August 2026 against lerobot 0.6.x: pyproject.toml on main reads version = "0.6.2", newest tag v0.6.1, 3 August 2026. Apmācība, kas sākas ar python lerobot/scripts/train.py ir pirms konsoles ieejas punktiem lerobot-train, lerobot-record and lerobot-rollout.
Kas ACT patiesībā ir
Action Chunking with Transformers nāk no ALOHA raksta, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, autoriem Zhao, Kumar, Levine un Finn, arXiv, 2023. gada 23. aprīlis. Iekārta ieraksta ar 50 Hz frekvenci, izmantojot četras tīmekļa kameras, kas straumē 480x640 izšķirtspēju ar 30 kadriem sekundē: divas uz satvērējiem, viena augšpusē, viena priekšpusē. Abstraktā tiek apgalvotas sešas prasmes ar 80 līdz 90 procentu panākumu līmeni, tostarp caurspīdīgas garšvielu krūzes atvēršana un baterijas ievietošana, balstoties uz 10 minūšu demonstrācijām.
Pamatteksts ir noderīgāks, plānojot ierakstīšanas sesiju: 50 demonstrācijas katram uzdevumam, izņemot Thread Velcro ar 100, kas ir 10 līdz 20 minūtes datu un 30 līdz 60 minūtes reālā laika, kad tiek ieskaitītas atiestatīšanas. Panākumi arī nav vienmērīgi: Thread Velcro beidzas ar 20 procentiem, Put On Shoe ar 92, Cup Open 84, Prep Tape 64.
| Hiperparametr | ALOHA raksts, III tabula | lerobot galvenajā |
|---|---|---|
| mācīšanās ātrums | 1e-5 | optimizer_lr = 1e-5 |
| partijas izmērs | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| kodētāja / dekodētāja slāņi | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| bloka izmērs k | 100 | chunk_size = 100 |
| z latentā dimensija | nav; 11. attēls rāda 32 līdz 512 projekciju | latent_dim = 32 |
| temporālā ansamblēšana | nav; --temporal_agg atsauces kodā | temporal_ensemble_coeff = None |
Rakstā ir uzskaitīti 7 dekodera slāņi, lerobot piegādā 1, apzināti. Komentārs failā configuration_act.py norāda, ka sākotnējā implementācijā ir kļūda, kas nozīmē, ka tiek izmantots tikai pirmais slānis, atsaucoties uz 25. problēmu tonyzhaozh/act: darbības galvene nolasa hs[0], tāpēc visi septiņi slāņi darbojas, bet tikai pirmā izvade sasniedz prognozi. Šī problēma ir atvērta un neatbildēta kopš 2024. gada 23. aprīļa. lerobot atbilst uzvedībai, kas radīja publicētos rezultātus, nevis izdrukātajam skaitlim. Palieliniet --policy.n_decoder_layers un jūs apmācīsiet modeli, ko raksts nekad nav novērtējis.
Darbību sadalīšana ir visa ideja
Parastā uzvedības klonēšana kartē vienu novērojumu uz vienu darbību, un kļūdas uzkrājas: novirze novirza roku no sadalījuma, radot sliktāku darbību, un trīsdesmit soļus vēlāk satvērējs nav ne tuvu objektam. Darbību sadalīšana prognozē k darbības vienlaikus un izpilda tās, samazinot efektīvo horizontu par k faktoru. Tas arī risina neērtības, kas raksturīgas cilvēka datiem: teleoperatori pauzē, un viena soļa Markova politika nevar modelēt pauzi, kas atkarīga no tā, kas notika iepriekš.
Raksts pēta k, nevis to apgalvo. Ar izslēgtu laika ansambli, vidēji četrās iestatījumos, panākumi pieaug no 1 procenta pie k = 1 līdz 44 procentiem pie k = 100, pēc tam samazinās pie 200 un 400, kad politika tuvojas atvērtā cikla kontrolei. Šī līkne ir iemesls, kāpēc noklusējuma vērtība ir 100.
- chunk_size: cik daudz nākotnes darbību dekodētājs prognozē vienā pārejā uz priekšu. Noklusējums 100.
- n_action_steps: cik daudz no tām izpildāt pirms atkārtotas vaicāšanas. Noklusējums 100, tādējādi lerobot izpilda visu bloku atvērtā cilpā.
- lerobot validē
n_action_steps <= chunk_sizeun izsaucValueError, ja to ievadāt nepareizi.
Operacionāli svarīga ir chunk_size, dalīta ar kadru ātrumu. Pie 30 kadriem sekundē, ko izmanto lerobot SO-100 piemēri, 100 darbību bloks no viena novērojuma aizņem aptuveni 3,3 sekundes. Ja uzdevumam ir nepieciešama korekcija šajā logā, samaziniet n_action_steps, nevis chunk_size: jūs saglabājat garo prognozi un novērojat biežāk.
# 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=cudaIestatiet --policy.temporal_ensemble_coeff, un lerobot pieprasīs n_action_steps = 1, pretējā gadījumā izsaucot NotImplementedError. Ansamblēšana vaicā politiku katrā laika solī un sajauc pārklājošās prognozes šim laika solim ar svariem w_i = exp(-m * i), vecākajam iegūstot w_0. Pētījumā tas ir 3,3 procenti ACT: reāls, bet pieticīgs, un tas reizina secinājumu skaitu ar bloka garumu. Pieejams par 20 ms uz soli, nevis par 485 ms. Skatiet secinājumu latentumu.
Kad ACT pārspēj pamata modeli
Piecas apmācāmās politikas blakus, ar skaitļiem, ko AY-Robots mēra un izmanto, lai noteiktu nomātā GPU izmēru.
| Politika | Saime | Parametri | Uz soli | GPU līmenis | Minimālās epizodes | Datu kopa |
|---|---|---|---|---|---|---|
| ACT | Sadalīšanas transformators, no nulles | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | Kompakts VLA | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | VLA pamats, difūzijas galva | ~3 B (~40 M trained) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | VLA pamats, priekštecis | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | Plūsmas saskaņošanas VLA, skatīt plūsmas saskaņošana | ~3 B, PaliGemma backbone | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- 20 ms uz darbības soli, ātrākais no pieciem, uz 24 GB kartes, nevis A100.
- 1 līdz 3 USD par palaišanu pret 4 līdz 12 USD par 3 B klasi.
- Precīzs saskarsmes bagātīgā darbā, ko tas ir redzējis: 88 un 96 procenti uz Slide Ziploc un Slot Battery, kur iepriekšējās metodes nekad nepārvarēja pirmo posmu.
- Nav valodas nosacījumu: uzdevuma virkne tiek ignorēta, tāpēc viens kontrolpunkts ir viens uzdevums.
- Nav semantisko priekšzināšanu: viss, ko tas zina, nāk no jūsu 50 epizodēm.
- Šaura vispārināšana: pārvietojiet kameru, un jums ir jāpārkvalificējas.
- Tas klusi sabojājas: zudums samazinās, roka neko nedara, žurnālos nekas nav teikts.
- Ātruma priekšrocība palīdz tikai tad, ja secinājumi atrodas blakus servomotoriem.
Izvēlieties ACT, ja uzdevums un aina ir fiksēti un kustībai jābūt ātrai un precīzai. Izvēlieties , ja vienam kontrolpunktam jāaptver vairākas instrukcijas. Divas lapas salīdzina lēmumu tieši: un . Publicētajiem etaloniem, saista katru skaitli ar tā avotu.
Kas jums nepieciešams pirms sākšanas
Viena sekotāja roka, viena vadītāja roka , vismaz viena kamera, 24 GB GPU. ACT nolasa tikai attēlus un savienojumu pozīcijas. Divas kameras ir optimālais risinājums: fiksēts priekšējais skats, lai redzētu, kur atrodas objekti, un plaukstas kamera, lai redzētu, ko grasās pieskarties, kā tas ir ALOHA gadījumā.
| Roka | Servomotori | Spriegums | Detaļu izmaksas | Statuss |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 līdz 150 EUR | Pilns atbalsts, atsauces roka |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 līdz 170 EUR | Pilns atbalsts |
| Koch v1.1 | Dynamixel XL330 / XL430 | 5 V un 12 V sliedes | ~250 līdz 350 EUR | Saderīgs |
| LeKiwi | Feetech STS3215 (roka) | 7.4 V roka, 12 V bāze | ~400 līdz 500 EUR | Saderīgs |
SO-100 un SO-101 izmanto Feetech STS3215 servomotorus uz 7.4 V sliedes. Pieslēdzot tiem 12 V, tie tiek sabojāti, pietiekami klusi, lai cilvēki vispirms vainotu programmatūru, un Koch 12 V barošanas avots fiziski der SO-100 platei. Pārbaudiet etiķeti. Simptomi: servomotors nereaģē, roka raustās un pēc tam nokarājas. Tāpat arī SO-100 pret SO-101.
No tukšas rokas līdz ierakstītam datu kopumam
Zemāk aprakstītais process attiecas uz lerobot 0.6.x. Izlaidiet to, ja jums ir kalibrēta roka un datu kopa. Pretējā gadījumā SO-100 sākuma rokasgrāmata aptver montāžu, ierakstīšanas pamācība aptver datu iegūšanu un datu kopu dokumentācija formātu.
- 1Instalējiet lerobot ar pareizajiem papildinājumiem
Ierakstīšanai nepieciešams
core_scripts, apmācībaitraining, Feetech servomotoriemfeetech. 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 - 2Atrodiet katras rokas USB portu
Palaidiet to ar abām rokām pievienotām, atvienojot vienu, kad tiek prasīts. Linux sistēmā var būt nepieciešams atvērt mezgla atļaujas.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Iestatiet motoru ID un datu pārraides ātrumu
SO-100 modelim tas notiek pirms montāžas: atšķirībā no SO-101, savienotāji nav sasniedzami pēc uzbūvēšanas. Skripts pārlūko kopni pa vienam motoram, sākot no satvērēja, ierakstot ID EEPROM.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4Kalibrējiet abas rokas
Iestatiet katru savienojumu diapazona vidū, nospiediet Enter, pēc tam izlaidiet katru cauri visam diapazonam. Kalibrēšana ļauj politikai, kas apmācīta uz vienas rokas, darboties uz citas. Atkārtoti izmantojiet to pašu
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 - 5Veiciet teleoperāciju vienu reizi ar ieslēgtām kamerām
Lerobot īkšķa likums: jums vajadzētu spēt veikt uzdevumu, skatoties tikai uz kameras attēliem. Ja jūs to nevarat, tad arī ACT nevar. Tas atklāj vairāk sliktu datu kopu nekā vēlāka atkļūdošana.
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 - 6Ierakstiet 50 epizodes
50 ir AY-Robots minimums un tas, ko ALOHA izmantoja katram uzdevumam. lerobot iesaka 10 uz vienu objekta atrašanās vietu, fiksētas kameras, konsekventa satveršana.
nbeidz epizodi,rieraksta atkārtoti,qaptur un kodē.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 nav iepriekšēju zināšanu, uz kurām balstīties, tāpēc katra nekonsekvence kļūst pastāvīga. Trīs visdārgākās: kamera, kas tika pabīdīta starp 20. un 21. epizodi, gaisma, kas mainījās, jo pusi komplekta ierakstījāt pēcpusdienā, satvēriens, kas veikts divos veidos. Katrs no tiem dod perfekti izskatīgu zudumu līkni un roku, kas dodas uz nepareizu vietu. Skatiet zudumi krīt, politika neko nedara, politika darbojas tikai vienā iestatījumā un augstas kvalitātes apmācības datu vākšana.
Pirms apmācības atkārtojiet vismaz piecas epizodes. LeRobot datu kopas formāts saglabā kameras plūsmas, savienojumu stāvokļus un darbības katrā epizodē, un atkārtošana atgriež šīs darbības atpakaļ uz roku. Ja atkārtošana neveic uzdevumu, dati to nesatur, un apmācība to neizgudros.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0ACT politikas apmācība
Šī ir visa komanda. Viss, kas ir specifisks ACT, jau ir noklusējuma iestatījums, tāpēc lerobot ACT lapā ir teikts sākt ar tiem.
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 ielādē ACTConfig, kas pielāgojas jebkuram motoru un kameru skaitam, ko jūsu datu kopa ierakstīja, tāpēc jums nekad nav jādeklarē novērojumu forma. --wandb.enable=true ir neobligāts un ir tā vērts: zudumu līkne ir vienīgais lētais signāls 100000 soļu izpildē. Grafiks nāk no lerobot apmācības konfigurācijas, nevis ACTConfig: 100000 soļi, partija 8, sēkla 1000, pārbaudes punkts ik pēc 20000 soļiem, žurnālēšana ik pēc 200.
Pilna izpilde atstāj piecus pārbaudes punktu direktorijus, no 020000 līdz 100000, plus pēdējo simbolisko saiti. Saglabājiet tos visus: labākā politika bieži vien nav pēdējā.
| Iestatījums | lerobot noklusējums | AY-Robots ACT forma | Komentārs |
|---|---|---|---|
| Partijas lielums | 8 | 8 | Vispirms samaziniet to, ja sasniedzat VRAM ierobežojumus. |
| Mācīšanās ātrums | 1e-5 | 1e-5 | Tāds pats kā ALOHA rakstā. |
| Maksimālais soļu skaits | 100000 | 100000 | Aptuveni tas punkts, kur 50 epizožu kopa pārstāj uzlaboties. |
| Gradienta akumulācija | 1 | 1, neattiecas | Tā vietā mainiet partijas lielumu. |
| Sēkla | 1000 | atklāta | GR00T tyro sākumpunktam nav sēklas; ACT izpildes ir reproducējamas. |
| chunk_size / n_action_steps | 100 / 100 | 100 / 100, rediģējams | Prognozēšanas un izpildes horizonts. Samaziniet otro, nevis pirmo. |
| Pārbaudes punkta biežums | 20000 | nav atklāts | saveSteps šeit ir GR00T regulators. |
ACT ar partijas lielumu 8 un divām 640x480 kamerām ērti ietilpst 24 GB. Tas pārstāj ietilpt, kad cilvēki palielina partijas lielumu ātruma dēļ vai padod tam 1920x1080 kadrus, ko parāda viens lerobot ierakstīšanas piemērs. Divi ResNet-18 mugurkauli ar 1080p ir ļoti atšķirīgs atmiņas profils. Pirms lielākas kartes nomas samaziniet --batch_size līdz 4. Skatiet atmiņas trūkums apmācībā.
Ilgums: aptuveni 5 stundas uz 11 GB RTX 2080 Ti, kā norādīts rakstā, dažas stundas 100 tūkstošiem soļu saskaņā ar lerobot ACT lapu, 2 līdz 5 stundas uz AY-Robots 24 GB līmeņa. Nesamaziniet to. Atsauces repozitorija README norāda, ka saraustītai vai apstājošai politikai parasti ir nepieciešams vairāk apmācība, jo panākumi un gludums turpina uzlaboties pēc tam, kad zudums stabilizējas: reālās pasaules datiem ir nepieciešami vismaz 5000 epohu, vai 3 līdz 4 reizes ilgāk pēc stabilizēšanās.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueApmācītās politikas palaišana uz rokas
Izvietošanā tiek izmantots lerobot-rollout. Kameru atslēgām jāatbilst ierakstītajām: politika, kas apmācīta uz front un wrist nepieņems cam0 un cam1, un rename_map nepalīdz, jo tam ir nepieciešams iepriekš apmācīts kontrolpunkts. Uzdevuma virkni var izlaist; lerobot paša piemērs to atzīmē kā izlaižamu priekš 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=60Novērtēšana agrāk tika veikta, izmantojot lerobot-record --policy.path=.... Versijā 0.6.x tā ir lerobot-rollout ar --strategy.type selektoru: base, sentry (ierakstīšana ar automātisku augšupielādi), highlight (gredzenbuferis, kas saglabāts ar taustiņsitienu), dagger (cilvēks cilpā) un episodic. No 2026. gada 23. augusta ACT dokumentācijas lapā joprojām ir teikts "izmantojot komandu lerobot-record" tieši virs bloka, kas izpilda lerobot-rollout. Sekojiet komandai, nevis teikumam.
Lai piesaistītu kontrolpunktu, nevis galīgo modeli, pievienojiet --policy.pretrained_revision. Tam ir nepieciešams, lai izpilde būtu sākta ar --save_checkpoint_to_hub=true, kas pēc noklusējuma ir izslēgts: bez tā lerobot augšupielādē tikai galīgo modeli un neko citu. Ar to katrs kontrolpunkts tiek atzīmēts ar tā nullēm papildināto soli, tāpēc --policy.pretrained_revision=060000 atjauno 60000. soļa kontrolpunktu. Salīdzinot to ar 100000 uz reālās rokas, ir lētākais pieejamais eksperiments.
Divi ceļi uz vienu un to pašu kontrolpunktu
Viss iepriekš minētais ir manuālais ceļš, un tas darbojas. Platformas ceļš apmaina kontroli pret to, ka nav jāpieder GPU vai Python vide.
- Instalējiet lerobot 0.6.x ar
core_scripts,training,feetech, ffmpeg. - Atrodiet portus, iestatiet motoru ID, kalibrējiet abas rokas, ierakstiet 50 epizodes.
- Atskaņojiet dažas epizodes, lai apstiprinātu, ka dati satur uzdevumu.
- Nomājiet vai iegādājieties 24 GB GPU, saskaņojiet CUDA un PyTorch, palaidiet
lerobot-train --policy.type=act. - Pagaidiet dažas stundas, pēc tam palaidiet
lerobot-rolloutuz mašīnas pie rokas.
# 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=cudaPilnīga kontrole: rediģējiet configuration_act.py, pievienojiet kameru, atzarojiet apmācītāju. Pētniecībai, nevis uzdevuma piegādei, platforma ir traucēklis.
- Ierakstiet ar darbvirsmas klientu vai izmantojiet Hugging Face repozitorija ID vai lokālu datu kopu.
- Atveriet ACT on SO-100 ceļvedi un izvēlieties modeli un datu kopu. Noklusējuma vērtības ir lerobot vērtības; chunkSize, nActionSteps, seed un logFreq ir rediģējami.
- Aizmugursistēma nomā GPU, kura izmērs ir noteikts pēc VRAM, un raksta kontrolpunktus objektu krātuvē.
/api/inference/podpēc tam nodrošina politiku lokālajam robota klientam. Dīkstāves sargsuns iznīcina podu, tāpēc nekas netiek klusi rēķināts.- Tās pašas darbības pastāv CLI, MCP serverī un apmācību dokumentācijā.
Tā nelabo jūsu datus: datu kopa ar pārvietotu kameru šeit apmācās tieši tikpat slikti, un forma to nevar noteikt. Tā arī neatrisina latentuma problēmu. Kontroles cikls ir no 20 līdz 485 ms uz vienu darbības soli, ar publiskā interneta apļveida braucieniem virsū, un ACT cieš visvairāk, jo tā solis ir īsākais: 60 ms ir 12 procentu palēninājums Pi0.5 485 ms, bet četras reizes ilgāks solis nekā ACT 20 ms. Attālā secināšana ir piemērota lēnai paņemšanai un novietošanai, nevis ātrai reaktīvai kustībai.

Kas patiesībā noiet greizi
Gandrīz visas grūtības nav apmācības komandā. Tās ir lietās ap to, sakārtotas pēc tā, cik bieži tās sagādā problēmas pirmajā reizē.
| Simptoms | Parastais cēlonis | Lapa |
|---|---|---|
| lerobot-find-port neko neuzrāda | Draiveris, kabelis vai mezgla atļaujas | rokas nav atklātas |
| Kamera trūkst ierakstīšanas laikā | Indekss mainījies pēc restartēšanas, vai divas kameras uz viena USB kontroliera | kamera nav atklāta |
| Apmācība noraida datu kopu | ACT vēlas v3.0, GR00T vajag v2.1 | datu kopa noraidīta kā v3 |
| CUDA atmiņas trūkums | Palielināts pakešu izmērs, vai 1080p kadri 480p vietā | atmiņas trūkums apmācībā |
| Zudums izskatās lieliski, roka neko nedara | Datiem trūkst uzdevuma, vai kamera ir pārvietota | zudums samazinās, politika neko nedara |
| Rāvienveida kustība vai pauze epizodes vidū | Nepietiekami apmācīts, bloka robežas apstāšanās, vai izbeidzies secinājumu izsaukums | politika sastingst kustības vidū |
Divas rindas ir jāuzsver. ACT apmācās ar LeRobot v3.0, kamēr GR00T ielādētājs uz tā avarē un tam vajag v2.1, tāpēc datu kopa, kas apmāca ACT, var izgāzt GR00T izpildi. Un pēdējā rindā ir divi labojumi: ACT autori atbild uz rāvienveida kustību ar papildu apmācību, kamēr ar n_action_steps pie 100 īsta apstāšanās notiek bloka robežā, redzama pauze ik pēc 3.3 sekundēm pie 30 kadriem sekundē. Vēl divas lietas, kas jāzina: viens miris savienojums parasti ir servo ID, kas nekad nav ierakstīts, un satvērējs, kas tuvojas, bet nekad neaizveras nozīmē pārāk mazu satvērēja diapazonu demonstrācijās. Pilns indekss: kļūdu režīmu lapas.
Cik maksā izpilde
| Līmenis | Modeļi | Izpildes laiks | Cena par stundu | Izmaksas par izpildi |
|---|---|---|---|---|
| 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 |
Šis ir arguments, kāpēc sākt ar ACT, pat ja vēlāk vēlaties VLA. Neveiksmīga ACT izpilde maksā kafijas cenu un dažu stundu laikā paziņo, vai jūsu datu kopa satur uzdevumu. Neveiksmīga GR00T izpilde maksā četras reizes vairāk par to pašu mācību. Pāreja uz GR00T N1.7 vai SmolVLA pēc tam ir formas maiņa, nevis pārbūve. Fons: redzes-valodas-darbības modeļi, pilnīgais SO-100 ceļvedis, apmāciet savu pirmo politiku un imitācijas mācīšanās. Nav rokas? Tiešraides lapa straumē reālu SO-100, ko vadīt bez reģistrēšanās.
Apmāciet ACT uz jūsu SO-100
Ceļvedis šai precīzai kombinācijai: noklusējuma iestatījumi, GPU līmenis un izpildes izmaksas. Izvēlieties datu kopu, aizmugursistēma iznomā karti un raksta kontrolpunktus.
Atvērt apmācības ceļvediVai ir iepriekš apmācīts ACT modelis, ko varu precizēt?▾
Nē. ACT nav bāzes modeļa; tas pastāv tikai pēc tam, kad to esat apmācījis. Tā nav rīku trūkums, tas ir tas, kas ir ACT: raksts apmāca politiku no nulles katram uzdevumam. Lai iegūtu piegādātāja kontrolpunktu, izmantojiet GR00T N1.7 vai Pi0.5.
Cik daudz epizožu man patiešām ir nepieciešams?▾
50: tas, ko ALOHA ierakstīja katram uzdevumam (100 Thread Velcro, kas ir grūtākais), un AY-Robots minimums. lerobot iesaka apmēram 10 uz objekta atrašanās vietu, kameras fiksētas, satvēriens konsekvents. Piecdesmit tīras epizodes pārspēj simts, kur kamera pārvietojās.
Vai man vajadzētu mainīt chunk_size no 100?▾
Parasti nē. Ablācija pieaug no 1 procenta pie k = 1 līdz 44 procentiem pie k = 100 un pēc tam samazinās, tāpēc 100 atrodas tuvu augšgalam. Ja roka pārāk ilgi veic darbību, tā vietā samaziniet n_action_steps: pie 30 kadriem sekundē, 25 atkārtoti pieprasījumi ik pēc 0,8 sekundēm.
Cik ilgi ilgst apmācības izpilde, un vai to varu apturēt agrāk?▾
Divas līdz piecas stundas uz 24 GB kartes 100000 soļiem. Kontrolpunkti tiek saglabāti ik pēc 20000 soļiem, un --resume=true atsāk izpildi, tāpēc agrīna apturēšana ir droša. Tikai ne pirmajā līdzenajā posmā: gludums uzlabojas pēc tam, kad zudums stabilizējas.
Zudums samazinājās, un roka joprojām neizdodas. Ko tagad?▾
Gandrīz vienmēr datu kopa. Atskaņojiet ierakstītās epizodes pie rokas: ja atskaņošana neveic uzdevumu, dati to nesatur. Pēc tam pārbaudiet, vai kaut kas pārvietojās, īpaši kamera. ACT nav iepriekšēju zināšanu, tāpēc neliela kustība 21. epizodē ir pastāvīga.
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