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

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

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

Обучете Action Chunking Transformer от нулата на SO-100 с lerobot: act config, 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, Изучаване на фино двуръчно манипулиране с нискобюджетен хардуер, от Zhao, Kumar, Levine и Finn, 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 в референтния код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 кадъра в секунда, използвани от примерите 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.

ПолитикаСемействоПараметриНа стъпкаНиво на 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 USD на изпълнение срещу 4 до 12 за класа 3 B.
  • Прецизен при работа с много контакт, която е виждал: 88 и 96 процента на Slide Ziploc и Slot Battery, където предишни методи никога не са преминавали първи етап.
Компромиси
  • Без езиково обуславяне: низът на задачата се игнорира, така че една контролна точка е една задача.
  • Без семантични априорни знания: всичко, което знае, идва от вашите 50 епизода.
  • Тясна генерализация: преместете камера и трябва да преобучавате.
  • Проваля се тихо: загубата намалява, ръката не прави нищо, логовете не казват нищо.
  • Предимството в скоростта помага само ако изводът е до сервомоторите.

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

Какво ви е необходимо, преди да започнете

Една следваща ръка, една водеща ръка за , поне една камера, 24 GB GPU. 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
    Задайте идентификаторите на моторите и скоростта на предаване

    При SO-100 това се случва преди сглобяването: за разлика от SO-101, конекторите са недостъпни, след като е сглобен. Скриптът обхожда шината мотор по мотор, започвайки от грипера, записвайки идентификатори в 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, seed 1000, контролна точка на всеки 20000 стъпки, регистриране на всеки 200.

Пълното изпълнение оставя пет директории с контролни точки, от 020000 до 100000, плюс last символна връзка. Запазете ги всички: най-добрата политика често не е последната.

Настройкаlerobot по подразбиранеAY-Robots ACT формаКоментар
размер на пакета88Намалете го първо, ако достигнете лимити на VRAM.
скорост на обучение1e-51e-5Същото като в статията ALOHA.
максимални стъпки100000100000Приблизително където набор от 50 епизода спира да се подобрява.
акумулация на градиент11, не се прилагаПроменете размера на пакета вместо това.
seed1000изложеноВходната точка на tyro на GR00T няма seed; ACT изпълненията са възпроизводими.
chunk_size / n_action_steps100 / 100100 / 100, редактируемоХоризонт на предвиждане и изпълнение. Намалете второто, не първото.
честота на контролните точки20000не е изложеноsaveSteps е настройка на GR00T тук.
Недостигът на памет е проблем с размера на пакета, а не с картата

ACT при размер на пакета 8 с две 640x480 камери се побира удобно на 24 GB. Спира да се побира, когато хората увеличат размера на пакета за скорост, или му подадат 1920x1080 кадъра, както показва един пример за запис на lerobot. Два ResNet-18 бекбона при 1080p имат много различен профил на паметта. Намалете --batch_size до 4, преди да наемете по-голяма карта. Вижте недостиг на памет при обучение.

Продължителност: около 5 часа на 11 GB RTX 2080 Ti в статията, няколко часа за 100k стъпки според ACT страницата на lerobot, 2 до 5 часа на 24 GB ниво на AY-Robots. Не го съкращавайте. 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 на реалната ръка е най-евтиният наличен експеримент.

Два пътя до една и съща контролна точка

Всичко по-горе е ръчният маршрут и работи. Маршрутът през платформата разменя контрола за това да не притежавате GPU или Python среда.

  1. Инсталирайте lerobot 0.6.x с core_scripts, training, feetech, ffmpeg.
  2. Намерете портове, задайте ID на моторите, калибрирайте двете рамена, запишете 50 епизода.
  3. Пуснете няколко епизода, за да потвърдите, че данните съдържат задачата.
  4. Наемете или притежавайте 24 GB GPU, съпоставете 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 кадъра в секунда. Още две неща за знаене: една мъртва става обикновено е ID на серво, което никога не е било записано, и хващач, който се приближава, но никога не се затваря означава твърде малък обхват на хващача в демонстрациите. Пълен индекс: страниците с режими на отказ.

Какво струва едно изпълнение

НивоМоделиВреме за изпълнениеЦена на часЦена на изпълнение
RTX 4090 / 24 GBACT, SmolVLA2 до 5 часа0.30 to 0.60 USDоколо 1 до 3 USD
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.53 до 6 часа1.20 to 2.00 USDоколо 4 до 12 USD

Това е аргументът да започнете с ACT, дори ако по-късно искате VLA. Неуспешно изпълнение на ACT струва колкото кафе и ви казва в рамките на часове дали вашият набор от данни съдържа задачата. Неуспешно изпълнение на GR00T струва четири пъти повече за същия урок. Преминаването към GR00T N1.7 или SmolVLA след това е промяна на формата, а не преизграждане. Предистория: модели за визия-език-действие, пълно ръководство за SO-100, обучете първата си политика и имитационно обучение. Нямате ръка? Страницата на живо предава на живо истински SO-100, който можете да управлявате без регистрация.

Обучете ACT на вашия SO-100

Ръководството за тази точна комбинация: настройки по подразбиране, GPU ниво и колко струва едно изпълнение. Изберете набора от данни, бекендът наема картата и записва контролните точки.

Отворете ръководството за обучение
Има ли предварително обучен 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