Матрицата за тренирање на AY-Robots со пет редови на политики и четири колони на роботски раце, секоја ќелија поврзана со специфичен модел и водич за тренирање на рака
ACTSO-100lerobotучење со имитацијатренирање на политика

Како да тренирате ACT на SO-100 од нула

AY-Robots ResearchAugust 23, 202616 мин читање

Тренирајте 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, Табела IIIlerobot на main
стапка на учење1e-5optimizer_lr = 1e-5
големина на серија8batch_size = 8, in TrainPipelineConfig not ACTConfig
слоеви на енкодер / декодер4 / 7n_encoder_layers = 4 / n_decoder_layers = 1
големина на парче k100chunk_size = 100
латентна димензија на zотсутно; Сл. 11 покажува проекција од 32 на 512latent_dim = 32
темпорално здружувањеотсутно; --temporal_agg in the reference codetemporal_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: ја задржувате долгата предикција и повторно набљудувате почесто.

bash
# 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 M20 msRTX 4090 / 24 GB50LeRobot v3.0
SmolVLAКомпактна VLA~450 M245 msRTX 4090 / 24 GB30LeRobot v3.0
GR00T N1.7VLA основа, дифузиона глава~3 B (~40 M trained)152 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5VLA основа, претходник~3 B165 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5VLA со усогласување на проток, види усогласување на проток~3 B, PaliGemma backbone485 msA100 / H100 80 GB50LeRobot v3.0
Страницата за политики на AY-Robots која прикажува компаративна табела на ACT, SmolVLA, GR00T N1.5, GR00T N1.7 и Pi0.5 со број на параметри, барања за GPU, латентност на заклучување и минимален број на епизоди
Табелата /policies: ACT има најмал број на параметри и најкратко време на чекор.
Обука на ACT од нула
Предности
  • 20 ms по чекор на акција, најбрз од петте, на 24 GB картичка, а не A100.
  • 1 до 3 УСД по извршување наспроти 4 до 12 за класата 3 B.
  • Прецизен при работа со многу контакт што ја видел: 88 и 96 проценти на Slide Ziploc и Slot Battery, каде претходните методи никогаш не ја поминале првата фаза.
Компромиси
  • Без јазично условување: низата на задачата се игнорира, така што една контролна точка е една задача.
  • Без семантички претходни знаења: сè што знае доаѓа од вашите 50 епизоди.
  • Тесна генерализација: поместете камера и повторно тренирате.
  • Тивко откажува: загубата паѓа, раката не прави ништо, дневниците не кажуваат ништо.
  • Предноста во брзината помага само ако заклучувањето е до серво моторите.

Изберете ACT кога задачата и сцената се фиксни, а движењето мора да биде брзо и прецизно. Изберете кога една контролна точка мора да покрие неколку инструкции. Две страници ја обработуваат одлуката директно: и . За објавени бенчмаркови, ги поврзува сите бројки со нивниот извор.

Што ви е потребно пред да започнете

Една следечка рака, една водечка рака за , најмалку една камера, 24 GB графичка картичка. ACT чита само слики и позиции на зглобовите. Две камери се идеални: фиксен преден поглед за тоа каде се работите, камера на зглобот за тоа што ќе допре, како кај ALOHA.

РакаСервомоториНапонЦена на деловиСтатус
SO-100Feetech STS32157.4 V~110 to 150 EURЦелосна поддршка, референтна рака
SO-101Feetech STS32157.4 V~130 to 170 EURЦелосна поддршка
Koch v1.1Dynamixel XL330 / XL4305 V and 12 V rails~250 to 350 EURКомпатибилен
LeKiwiFeetech STS3215 (arm)7.4 V arm, 12 V base~400 to 500 EURКомпатибилен
7.4 V, не 12 V

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. 1
    Инсталирајте го lerobot со соодветните додатоци

    За снимање се потребни core_scripts, за тренирање training, за Feetech серва feetech. Python 3.12+.

    bash
    conda 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. 2
    Најдете ја USB портата на секоја рака

    Стартувајте го со двете раце приклучени, исклучувајќи една кога ќе биде побарано. На Linux можеби ќе треба да ги отворите дозволите за јазолот.

    bash
    lerobot-find-port
    # on Linux, if the port exists but is unreadable:
    sudo chmod 666 /dev/ttyACM0
  3. 3
    Поставете ги ID-ата на моторите и брзината на пренос

    На SO-100 ова се случува пред склопување: за разлика од SO-101, конекторите се недостапни откако ќе се состави. Скриптата ја пребарува магистралата мотор по мотор, почнувајќи од грајферот, запишувајќи ги ID-ата во EEPROM.

    bash
    lerobot-setup-motors \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0
    
    lerobot-setup-motors \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1
  4. 4
    Калибрирајте ги двете раце

    Поставете го секој зглоб на средината од неговиот опсег, притиснете Enter, а потоа поминете го секој низ целиот негов опсег. Калибрацијата овозможува политика тренирана на една рака да работи на друга. Повторно користете го истиот id.

    bash
    lerobot-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. 5
    Телеоперирајте еднаш со вклучени камери

    Општото правило на lerobot: треба да можете да ја извршите задачата гледајќи само во сликите од камерата. Ако не можете, не може ни ACT. Ова открива повеќе лоши податочни множества отколку подоцнежното дебагирање.

    bash
    lerobot-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. 6
    Сними 50 епизоди

    50 е минимумот на AY-Robots и она што ALOHA го користеше по задача. lerobot советува 10 по локација на објект, фиксни камери, конзистентен зафат. n завршува епизода, r повторно снима, q запира и кодира.

    bash
    HF_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
Страницата со туторијал за снимање на AY-Robots која објаснува како да се сними податочно множество во LeRobot формат од сесија за телеоперација
Туторијалот за снимање. Десктоп клиентот го запишува истиот распоред како lerobot-record.
Замката што одзема цел ден: недоследно податочно множество

ACT нема претходни знаења на кои би се потпрел, така што секоја недоследност станува трајна. Трите најскапи: камера поместена помеѓу епизода 20 и 21, светлина што се променила бидејќи сте снимиле половина од сетот попладне, зафат направен на два начина. Секој дава крива на загуба која изгледа совршено и рака која оди на погрешно место. Видете загубата паѓа, политиката не прави ништо, политиката работи само во едно поставување и собирање висококвалитетни податоци за тренирање.

Пред тренирање, повторете најмалку пет епизоди. , ги зачувува видео стримовите од камерата, состојбите на зглобовите и акциите по , а повторувањето ги враќа тие акции назад кон раката. Ако повторувањето не ја изврши задачата, податоците не ја содржат и тренирањето нема да ја измисли.

bash
lerobot-replay \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_follower \
    --dataset.repo_id=${HF_USER}/so100_cube \
    --dataset.episode=0
Репродукција на епизода 0. Ако ова не успее, запрете и повторно снимете.

Обука на ACT политиката

Ова е целата команда. Сè што е специфично за ACT е веќе стандардно, поради што страницата на lerobot ACT препорачува да се започне со нив.

bash
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
Командата за обука од документацијата на lerobot 0.6.x, на SO-100 податочно множество.

--policy.type=act вчитува ACTConfig, кој се прилагодува на колку и да мотори и камери снимил вашиот сет на податоци, така што никогаш не ја декларирате формата на набљудување. --wandb.enable=true е опционално и вреди: кривата на загуба е единствениот евтин сигнал во извршување од 100000 чекори. Распоредот доаѓа од конфигурацијата за тренирање на lerobot, а не од ACTConfig: 100000 чекори, серија 8, семе 1000, контролна точка на секои 20000 чекори, логирање на секои 200.

Целосното извршување остава пет директориуми за контролни точки, од 020000 до 100000, плус последна симболична врска. Чувајте ги сите: најдобрата политика често не е последната.

Поставкастандардно за lerobotAY-Robots ACT формаКоментар
големина на серија88Намалете ја прво ако достигнете VRAM лимити.
стапка на учење1e-51e-5Исто како во ALOHA трудот.
максимални чекори100000100000Приближно каде што сет од 50 епизоди престанува да се подобрува.
акумулација на градиент11, не се применуваНаместо тоа, променете ја големината на серијата.
семе1000изложеноВлезната точка на GR00T tyro нема семе; ACT извршувањата се оние што може да се репродуцираат.
големина на парче / n_чекори_на_акција100 / 100100 / 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 пати поголема должина повторно по стабилизацијата.

bash
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.

bash
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
Автономно извршување без снимање. Користете --strategy.type=sentry за снимање на епизодите за евалуација.
Оваа команда неодамна беше преименувана, па старите упатства не се согласуваат

Евалуацијата порано се извршуваше преку 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 околина.

  1. Инсталирајте lerobot 0.6.x со core_scripts, training, feetech, ffmpeg.
  2. Најдете порти, поставете ID на мотори, калибрирајте ги двете раце, снимете 50 епизоди.
  3. Повторете неколку епизоди за да потврдите дека податоците ја содржат задачата.
  4. Изнајмете или поседувајте 24 GB графичка картичка, усогласете ги CUDA и PyTorch, извршете lerobot-train --policy.type=act.
  5. Почекајте неколку часа, потоа извршете lerobot-rollout на машината кај раката.
bash
# 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, додадете камера, форкирајте го тренерот. За истражување наместо испорака на задача, платформата е одвлекување на вниманието.

Матрицата за обука на AY-Robots со пет редови на политики и четири колони на роботски раце, каде што секоја ќелија води до специфичниот водич за обука за таа комбинација на модел и рака
Матрицата на /train. Редот ACT наспроти колоната SO-100 е водичот на овој напис.

Што всушност тргнува наопаку

Речиси ништо од маката не е во командата за тренирање. Таа е во работите околу неа, подредени според тоа колку често се појавуваат првпат.

СимптомВообичаена причинаСтраница
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 GBACT, SmolVLA2 to 5 hours0.30 to 0.60 USDabout 1 to 3 USD
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.53 to 6 hours1.20 to 2.00 USDabout 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 е трајно.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started