
Тренирајте Action Chunking Transformer од нула на SO-100 со lerobot: конфигурацијата на ACT, chunk_size и n_action_steps, распоредот од 100000 чекори, 20 ms инференција.
ACT е исклучок меѓу политиките SO-100. GR00T N1.7 и N1.5 започнуваат од nvidia/GR00T-N1.7-3B и nvidia/GR00T-N1.5-3B, Pi0.5 од lerobot/pi05_base. ACT започнува од ништо: нема основна контролна точка, бидејќи не е темелен модел. Тоа е трансформатор со приближно 80 милиони параметри кој го тренирате од нула за една задача, на вашата рака, под ваше осветлување.
Тоа е исто така зошто извршува контролен чекор за 20 ms, додека VLA со 3 милијарди параметри бара 152 до 485 ms, и чини 1 до 3 USD по извршување наместо 4 до 12. Овој водич го опишува рачниот пат со lerobot на SO-100: снимање, act конфигурација, што chunk_size и n_action_steps контролираат, распоредот од 100000 чекори, извршувањето. Потоа истата работа на AY-Robots, вклучувајќи ги и местата каде платформата не помага.
Што треба да знаете
- •ACT тренира од нула: без основен модел, без претходно тренирање, без јазичен влез. Една контролна точка, една задача.
- •Трудот: околу 80 M параметри, околу 5 часа на 11 GB RTX 2080 Ti, 0.01 s инференција.
- •Стандардни поставки на lerobot: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 чекори, seed 1000.
- •На AY-Robots: 20 ms по чекор, најбрз од петте. Минимум 50 епизоди, LeRobot v3.0, картичка од 24 GB, 1 до 3 USD по извршување.
- •Победува на задача што ја видел, а губи во моментот кога сакате јазично условување.
Проверено на 23 август 2026 година против lerobot 0.6.x: pyproject.toml on main reads version = "0.6.2", newest tag v0.6.1, 3 August 2026. Упатство кое започнува со python lerobot/scripts/train.py претходи на влезните точки на конзолата lerobot-train, lerobot-record and lerobot-rollout.
Што всушност е ACT
Action Chunking with Transformers доаѓа од трудот ALOHA, Учење на фино-гранулирана бимануелна манипулација со нискобуџетен хардвер, од Жао, Кумар, Левин и Фин, arXiv, 23 април 2023. Опремата снима со 50 Hz со четири веб-камери кои стримуваат 480x640 со 30 fps: две на грајферите, една горе, една напред. Апстрактот тврди шест вештини со 80 до 90 проценти успех, меѓу нив отворање проѕирна чаша за зачини и вметнување батерија, од 10 минути демонстрации.
Телото е покорисно при планирање сесија за снимање: 50 демонстрации по задача, освен Thread Velcro со 100, што е 10 до 20 минути податоци и 30 до 60 минути реално време откако ќе се избројат ресетирањата. Успехот исто така не е униформен: Thread Velcro завршува со 20 проценти, Put On Shoe со 92, Cup Open 84, Prep Tape 64.
| Хиперпараметар | Трудот ALOHA, Табела III | lerobot на main |
|---|---|---|
| стапка на учење | 1e-5 | optimizer_lr = 1e-5 |
| големина на серија | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| слоеви на енкодер / декодер | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| големина на парче k | 100 | chunk_size = 100 |
| латентна димензија на z | отсутно; Сл. 11 покажува проекција од 32 на 512 | latent_dim = 32 |
| темпорално здружување | отсутно; --temporal_agg in the reference code | temporal_ensemble_coeff = None |
Трудот наведува 7 слоеви на декодер, lerobot испорачува 1, намерно. Коментарот во configuration_act.py вели дека оригиналната имплементација има грешка што значи дека се користи само првиот слој, цитирајќи проблем 25 во tonyzhaozh/act: главата за акција чита hs[0], така што сите седум слоеви работат, но само првиот излез стигнува до предвидувањето. Тој проблем е отворен и неодговорен од 23 април 2024 година. lerobot го совпаѓа однесувањето што ги произведе објавените резултати, а не испечатениот број. Зголемете --policy.n_decoder_layers и ќе тренирате модел кој трудот никогаш не го евалуирал.
Групирањето акции е целата идеја
Обичното клонирање на однесувањето мапира едно набљудување на една акција, а грешките се натрупуваат: отстапувањето ја става раката надвор од дистрибуцијата, произведувајќи полоша акција, а триесет чекори подоцна фаќачот не е никаде блиску до објектот. Групирање акции предвидува k акции одеднаш и ги извршува, намалувајќи го ефективниот хоризонт за фактор k. Исто така, се справува со непријатност специфична за човечките податоци: телеоператорите паузираат, а едночекорна Марковска политика не може да моделира пауза што зависи од она што претходело.
Трудот го аблатира k наместо да го тврди. Со исклучено временско ансамблирање, просечно преку четири поставки, успехот се зголемува од 1 процент при k = 1 на 44 проценти при k = 100, потоа се намалува на 200 и 400 како што политиката се приближува до контрола со отворена јамка. Таа крива е причината зошто стандардната вредност е 100.
- chunk_size: колку идни дејства предвидува декодерот по едно напредно поминување. Стандардно 100.
- n_action_steps: колку од нив извршувате пред повторно да поставите барање. Стандардно 100, така што lerobot го извршува целиот дел во отворена јамка.
- lerobot проверува дали `n_action_steps <= chunk_size` и покренува `ValueError` ако ги поставите обратно.
Оперативно, важно е chunk_size поделено со стапката на слики. При 30 fps што ги користат примерите на SO-100 на lerobot, дел од 100 дејства опфаќа околу 3.3 секунди од едно набљудување. Ако задачата бара корекција во тој прозорец, намалете го n_action_steps, а не chunk_size: ја задржувате долгата предикција и повторно набљудувате почесто.
# 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Поставете --policy.temporal_ensemble_coeff и lerobot бара n_action_steps = 1, покренувајќи NotImplementedError во спротивно. Здружувањето ја испрашува политиката на секој временски чекор и ги спојува преклопувачките предикции за тој временски чекор со тежини w_i = exp(-m * i), при што најстарата добива w_0. Трудот го става на 3.3 проценти за ACT: реално, но скромно, и го множи бројот на заклучоци со должината на делот. Прифатливо на 20 ms по чекор, не на 485 ms. Видете латентност на заклучување.
Кога ACT надминува основен модел
Петте политики за тренирање рамо до рамо, со бројките што AY-Robots ги мери и користи за димензионирање на графичкиот процесор што го изнајмува.
| Политика | Семејство | Параметри | По чекор | Ниво на GPU | Мин. епизоди | Податочно множество |
|---|---|---|---|---|---|---|
| ACT | Трансформер за сегментирање, од нула | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | Компактна VLA | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | VLA основа, дифузиона глава | ~3 B (~40 M trained) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | VLA основа, претходник | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | VLA со усогласување на проток, види усогласување на проток | ~3 B, PaliGemma backbone | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- 20 ms по чекор на акција, најбрз од петте, на 24 GB картичка, а не A100.
- 1 до 3 УСД по извршување наспроти 4 до 12 за класата 3 B.
- Прецизен при работа со многу контакт што ја видел: 88 и 96 проценти на Slide Ziploc и Slot Battery, каде претходните методи никогаш не ја поминале првата фаза.
- Без јазично условување: низата на задачата се игнорира, така што една контролна точка е една задача.
- Без семантички претходни знаења: сè што знае доаѓа од вашите 50 епизоди.
- Тесна генерализација: поместете камера и повторно тренирате.
- Тивко откажува: загубата паѓа, раката не прави ништо, дневниците не кажуваат ништо.
- Предноста во брзината помага само ако заклучувањето е до серво моторите.
Изберете ACT кога задачата и сцената се фиксни, а движењето мора да биде брзо и прецизно. Изберете кога една контролна точка мора да покрие неколку инструкции. Две страници ја обработуваат одлуката директно: и . За објавени бенчмаркови, ги поврзува сите бројки со нивниот извор.
Што ви е потребно пред да започнете
Една следечка рака, една водечка рака за , најмалку една камера, 24 GB графичка картичка. ACT чита само слики и позиции на зглобовите. Две камери се идеални: фиксен преден поглед за тоа каде се работите, камера на зглобот за тоа што ќе допре, како кај ALOHA.
| Рака | Сервомотори | Напон | Цена на делови | Статус |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 to 150 EUR | Целосна поддршка, референтна рака |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 to 170 EUR | Целосна поддршка |
| Koch v1.1 | Dynamixel XL330 / XL430 | 5 V and 12 V rails | ~250 to 350 EUR | Компатибилен |
| LeKiwi | Feetech STS3215 (arm) | 7.4 V arm, 12 V base | ~400 to 500 EUR | Компатибилен |
SO-100 и SO-101 користат Feetech STS3215 сервомотори на 7.4 V шина. Напојувањето со 12 V ги уништува, доволно тивко што луѓето прво го обвинуваат софтверот, а 12 V напојување од Koch физички одговара на SO-100 плочка. Проверете ја етикетата. Симптоми: сервомоторот не реагира, раката се грчи па попушта. Исто така SO-100 наспроти SO-101.
Од гола рака до снимен сет на податоци
Протокот подолу е lerobot 0.6.x. Прескокнете го ако имате калибрирана рака и сет на податоци. Во спротивно, водичот за почеток со SO-100 ја опфаќа монтажата, упатството за снимање го опфаќа снимањето, а документацијата за сетови на податоци го опфаќа форматот.
- 1Инсталирајте го lerobot со соодветните додатоци
За снимање се потребни
core_scripts, за тренирањеtraining, за Feetech серваfeetech. 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 - 2Најдете ја USB портата на секоја рака
Стартувајте го со двете раце приклучени, исклучувајќи една кога ќе биде побарано. На Linux можеби ќе треба да ги отворите дозволите за јазолот.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Поставете ги ID-ата на моторите и брзината на пренос
На SO-100 ова се случува пред склопување: за разлика од SO-101, конекторите се недостапни откако ќе се состави. Скриптата ја пребарува магистралата мотор по мотор, почнувајќи од грајферот, запишувајќи ги ID-ата во EEPROM.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4Калибрирајте ги двете раце
Поставете го секој зглоб на средината од неговиот опсег, притиснете Enter, а потоа поминете го секој низ целиот негов опсег. Калибрацијата овозможува политика тренирана на една рака да работи на друга. Повторно користете го истиот
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 - 5Телеоперирајте еднаш со вклучени камери
Општото правило на lerobot: треба да можете да ја извршите задачата гледајќи само во сликите од камерата. Ако не можете, не може ни ACT. Ова открива повеќе лоши податочни множества отколку подоцнежното дебагирање.
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 - 6Сними 50 епизоди
50 е минимумот на AY-Robots и она што ALOHA го користеше по задача. lerobot советува 10 по локација на објект, фиксни камери, конзистентен зафат.
nзавршува епизода,rповторно снима,qзапира и кодира.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 нема претходни знаења на кои би се потпрел, така што секоја недоследност станува трајна. Трите најскапи: камера поместена помеѓу епизода 20 и 21, светлина што се променила бидејќи сте снимиле половина од сетот попладне, зафат направен на два начина. Секој дава крива на загуба која изгледа совршено и рака која оди на погрешно место. Видете загубата паѓа, политиката не прави ништо, политиката работи само во едно поставување и собирање висококвалитетни податоци за тренирање.
Пред тренирање, повторете најмалку пет епизоди. , ги зачувува видео стримовите од камерата, состојбите на зглобовите и акциите по , а повторувањето ги враќа тие акции назад кон раката. Ако повторувањето не ја изврши задачата, податоците не ја содржат и тренирањето нема да ја измисли.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0Обука на ACT политиката
Ова е целата команда. Сè што е специфично за ACT е веќе стандардно, поради што страницата на lerobot ACT препорачува да се започне со нив.
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 вчитува ACTConfig, кој се прилагодува на колку и да мотори и камери снимил вашиот сет на податоци, така што никогаш не ја декларирате формата на набљудување. --wandb.enable=true е опционално и вреди: кривата на загуба е единствениот евтин сигнал во извршување од 100000 чекори. Распоредот доаѓа од конфигурацијата за тренирање на lerobot, а не од ACTConfig: 100000 чекори, серија 8, семе 1000, контролна точка на секои 20000 чекори, логирање на секои 200.
Целосното извршување остава пет директориуми за контролни точки, од 020000 до 100000, плус последна симболична врска. Чувајте ги сите: најдобрата политика често не е последната.
| Поставка | стандардно за lerobot | AY-Robots ACT форма | Коментар |
|---|---|---|---|
| големина на серија | 8 | 8 | Намалете ја прво ако достигнете VRAM лимити. |
| стапка на учење | 1e-5 | 1e-5 | Исто како во ALOHA трудот. |
| максимални чекори | 100000 | 100000 | Приближно каде што сет од 50 епизоди престанува да се подобрува. |
| акумулација на градиент | 1 | 1, не се применува | Наместо тоа, променете ја големината на серијата. |
| семе | 1000 | изложено | Влезната точка на GR00T tyro нема семе; ACT извршувањата се оние што може да се репродуцираат. |
| големина на парче / n_чекори_на_акција | 100 / 100 | 100 / 100, може да се уредува | Хоризонт на предвидување и извршување. Намалете го вториот, не првиот. |
| фреквенција на контролни точки | 20000 | не е изложено | saveSteps е GR00T копче овде. |
ACT со големина на серија од 8 и две 640x480 камери удобно се вклопува на 24 GB. Престанува да се вклопува кога луѓето ја зголемуваат големината на серијата за брзина, или кога му се даваат рамки од 1920x1080 што ги покажува еден пример за снимање на lerobot. Два ResNet-18 backbones на 1080p имаат многу различен мемориски профил. Намалете го --batch_size на 4 пред да изнајмите поголема картичка. Видете недостаток на меморија при тренирање.
Времетраење: околу 5 часа на 11 GB RTX 2080 Ti во трудот, неколку часа за 100k чекори според ACT страницата на lerobot, 2 до 5 часа на AY-Robots 24 GB ниво. Не го скратувајте. README-то на референтното складиште вели дека политиката што е грчевита или паузира обично само бара повеќе обука, бидејќи успехот и мазноста продолжуваат да се подобруваат откако загубата ќе се стабилизира: за податоци од реалниот свет потребни се најмалку 5000 епохи, или 3 до 4 пати поголема должина повторно по стабилизацијата.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueИзвршување на обучената политика на раката
Имплементацијата користи lerobot-rollout. Клучевите на камерата мора да се совпаѓаат со снимените: политика обучена на front и wrist нема да прифати cam0 и cam1, а rename_map не помага, бидејќи бара претходно обучена контролна точка. Низата за задача може да се изостави; сопствениот пример на lerobot ја означува како прескокната за 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=60Евалуацијата порано се извршуваше преку lerobot-record --policy.path=.... Во 0.6.x тоа е lerobot-rollout со селектор --strategy.type: base, sentry (снимање со автоматско прикачување), highlight (прстенест бафер зачуван со притискање на копче), dagger (човек во циклусот) и episodic. Од 23 август 2026 година, страницата за документација на ACT сè уште вели "користејќи ја командата lerobot-record" директно над блок што извршува lerobot-rollout. Следете ја командата, а не реченицата.
За да закачите контролна точка наместо финалниот модел, додадете --policy.pretrained_revision. За тоа е потребно извршувањето да започнало со --save_checkpoint_to_hub=true, исклучено по дифолт: без тоа lerobot го турка финалниот модел и ништо друго. Со тоа, секоја контролна точка е означена со нејзиниот чекор со нули, така што --policy.pretrained_revision=060000 го враќа оној од 60000 чекори. Споредувањето со 100000 на вистинската рака е најевтиниот достапен експеримент.
Два патишта до истата контролна точка
Сè погоре е рачен пат и функционира. Патот преку платформата ја менува контролата за тоа што не поседувате графичка картичка или Python околина.
- Инсталирајте lerobot 0.6.x со
core_scripts,training,feetech, ffmpeg. - Најдете порти, поставете ID на мотори, калибрирајте ги двете раце, снимете 50 епизоди.
- Повторете неколку епизоди за да потврдите дека податоците ја содржат задачата.
- Изнајмете или поседувајте 24 GB графичка картичка, усогласете ги CUDA и PyTorch, извршете
lerobot-train --policy.type=act. - Почекајте неколку часа, потоа извршете
lerobot-rolloutна машината кај раката.
# 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Целосна контрола: уредете го configuration_act.py, додадете камера, форкирајте го тренерот. За истражување наместо испорака на задача, платформата е одвлекување на вниманието.
- Снимајте со десктоп клиентот, или донесете Hugging Face repo id или локално множество податоци.
- Отворете го водичот ACT на SO-100 и изберете модел и множество податоци. Стандардните се оние на lerobot; chunkSize, nActionSteps, seed и logFreq се уредувачки.
- Позадинскиот систем изнајмува графичка картичка со големина според VRAM и запишува контролни точки во објектно складирање.
/api/inference/podпотоа ја служи политиката на локалниот роботски клиент. Неактивен надзорник го уништува поодот, така што ништо не се наплаќа тивко.- Истите операции постојат во CLI, MCP серверот и документацијата за обука.
Тоа не ги поправа вашите податоци: множество податоци со поместена камера се тренира исто толку лошо овде, а формата не може да го открие тоа. Ниту пак го отстранува проблемот со доцнењето. Контролната јамка е од 20 до 485 ms по чекор на акција, со јавни интернет повратни патувања одозгора, а ACT е најмногу повреден бидејќи неговиот чекор е најкраток: 60 ms е забавување од 12 проценти на 485 ms на Pi0.5, но четири пати повеќе од чекорот на ACT од 20 ms. Далечинското заклучување одговара за бавно земање и поставување, а не за брзо реактивно движење.

Што всушност тргнува наопаку
Речиси ништо од маката не е во командата за тренирање. Таа е во работите околу неа, подредени според тоа колку често се појавуваат првпат.
| Симптом | Вообичаена причина | Страница |
|---|---|---|
| lerobot-find-port не покажува ништо | Дозволи за драјвер, кабел или јазол | раката не е детектирана |
| Камерата недостасува при снимање | Индексот е променет по рестартирање, или две камери на еден USB контролер | камерата не е детектирана |
| Тренирањето го отфрла множеството податоци | ACT сака v3.0, GR00T треба v2.1 | множеството податоци е отфрлено како v3 |
| CUDA нема доволно меморија | Големината на пакетот е зголемена, или 1080p рамки наместо 480p | нема доволно меморија при тренирање |
| Загубата изгледа одлично, раката не прави ништо | Податоците ја немаат задачата, или камерата е поместена | загубата паѓа, политиката не прави ништо |
| Нерамномерно движење или пауза на средина на епизодата | Недоволно тренирано, застој на границата на парче, или истечен повик за заклучување | политиката замрзнува на средина на движењето |
Два реда заслужуваат нагласување. ACT тренира на LeRobot v3.0 додека вчитувачот на GR00T паѓа на него и му треба v2.1, така што множество податоци што тренира ACT може да предизвика неуспех на извршување на GR00T. А последниот ред има две поправки: авторите на ACT одговараат на нерамномерното движење со повеќе тренирање, додека со n_action_steps на 100 вистински застој се појавува на границата на парче, видлива пауза на секои 3.3 секунди при 30 fps. Уште две работи што треба да се знаат: еден мртов зглоб обично е ID на серво што никогаш не бил запишан, и фаќач што се приближува, но никогаш не се затвора значи премал опсег на фаќачот во демонстрациите. Целосен индекс: страниците за режими на откажување.
Колку чини едно извршување
| Ниво | Модели | Време на извршување | Цена по час | Цена по извршување |
|---|---|---|---|---|
| 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 |
Ова е аргументот за започнување со ACT дури и ако подоцна сакате VLA. Неуспешно извршување на ACT чини колку цена на кафе и ви кажува за неколку часа дали вашиот сет на податоци ја содржи задачата. Неуспешно извршување на GR00T чини четири пати повеќе за истата лекција. Преминувањето на GR00T N1.7 или SmolVLA потоа е промена на формата, а не повторна изградба. Позадина: модели за визија-јазик-акција, на целосен SO-100 водич, обучете ја вашата прва политика и учење со имитација. Нема рака? Страницата во живо пренесува вистински SO-100 за управување без регистрација.
Обучете го ACT на вашиот SO-100
Водичот за оваа точна комбинација: стандардни поставки, ниво на графичка картичка и колку чини едно извршување. Изберете го сетот на податоци, позадинскиот систем ја изнајмува картичката и ги запишува контролните точки.
Отворете го водичот за обукаДали постои претходно обучен ACT модел што можам да го дотерам наместо тоа?▾
Не. ACT нема основен модел; тој постои само откако ќе го обучите. Тоа не е недостаток во алатките, тоа е она што е ACT: трудот обучува политика од нула за секоја задача. За контролна точка од продавач, користете GR00T N1.7 или Pi0.5.
Колку епизоди навистина ми требаат?▾
50: она што ALOHA го сними по задача (100 за Thread Velcro, најтешката) и минимумот на AY-Robots. lerobot советува околу 10 по локација на објект, камерите фиксирани, зафатот конзистентен. Педесет чисти епизоди се подобри од сто каде што камерата се поместила.
Дали треба да го сменам chunk_size од 100?▾
Обично не. Аблацијата се искачува од 1 процент при k = 1 до 44 проценти при k = 100 и потоа се намалува, така што 100 е блиску до врвот. Ако раката се обврзува предолго, наместо тоа намалете го n_action_steps: при 30 fps, 25 повторни барања на секои 0.8 секунди.
Колку трае едно извршување на обука и дали можам да го запрам порано?▾
Два до пет часа на картичка од 24 GB за 100000 чекори. Контролните точки се запишуваат на секои 20000 чекори и --resume=true продолжува со извршувањето, така што рано запирање е безбедно. Само не на првиот рамен дел: мазноста се подобрува откако загубата ќе се стабилизира.
Загубата се намали, а раката сè уште не успева. Што сега?▾
Речиси секогаш сетот на податоци. Повторете ги снимените епизоди на раката: ако повторувањето не ја извршува задачата, податоците не ја содржат. Потоа проверете дали нешто се поместило, особено камера. ACT нема претходни знаења, така што мало поместување во епизода 21 е трајно.
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