Поемете контрола, когато policy сгреши, и тренирайте точно тази корекция.
Policy, трениран чрез behavior cloning, познава само състоянията, посетени в демонстрациите. DAgger затваря тази празнина с данни от състоянията, до които policy стига сам. AY-Robots изпълнява целия цикъл на SO-100: карайте checkpoint, поемайте контрола по средата на пробега, запазвайте коригираните епизоди, съставете сместа и продължете обучението от последния каран checkpoint.
- HG-DAgger, с човешки контрол
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Процент на интервенциите на рунд
Защо трениран policy прави нещо, което никога не е било демонстрирано
Behavior cloning третира управлението като обикновено supervised обучение: наблюдение на входа, целева позиция на ставите на изхода, напаснато върху кадрите, записани от човек. Това е валидно само докато роботът остава в състоянията, посетени от този човек, а той не остава. Захват, който се затваря четиридесет милисекунди по-рано, измества кубчето с два милиметра от демонстрираната поза. Следващото наблюдение не присъства в тренировъчния набор, действието там е екстраполация, а състоянието след него е още по-встрани. Тренировъчното разпределение и разпределението, което самата научена policy поражда, са две различни неща, и второто се отдалечава от първото с напредването на епизода.
Ross, Gordon и Bagnell описват точно този провал на редукцията през 2011 г. и остойностяват щетата: класификатор, който греши с вероятност e при разпределението на експерта, може да направи от порядъка на T на квадрат по e грешки за хоризонт от T стъпки при разпределението, което сам поражда, защото една грешка произвежда наблюдения, каквито експертът никога не е генерирал, и грешките се натрупват. Тяхното решение е алгоритъмът, за който става дума на тази страница: карай текущата policy, събирай експертни етикети за състоянията, които тя посещава, обединявай ги с всичко събрано дотук, тренирай наново, повтаряй. Повече демонстрации от същия вид не помагат, защото извличат проба от същото разпределение. Етикети от състоянията, до които policy стига, помагат. Реализираният тук вариант е с човешки контрол (human-gated, HG-DAgger, Kelly и др.): policy запазва контрола, докато човек прецени, че нещо върви накриво, и поеме управлението, така че корекции се произвеждат само там, където са нужни, а ръката никога не бива карана в състояние, което операторът не би допуснал.
- Behavior cloning е валиден само върху разпределението от състояния, върху което е трениран.
- Провалът се самоусилва: малко отклонение поражда непознато състояние, което поражда по-голямо отклонение.
- Лекарството не са повече демонстрации, а етикети от състоянията, до които policy стига сам.
- Human-gated означава, че операторът решава кога да се намеси, а не показател за автономност.
Защо грешката се натрупва
Преместете хоризонта. При behavior cloning очакваният допълнителен разход расте приблизително с квадрата на броя стъпки, защото всяка грешка поражда състояния, никога непокрити от демонстрациите; цикъл на агрегиране задържа растежа близо до линеен (Ross и др., 2011).
Илюстративни криви от границите в Ross и др. (2011), не измервания от вашия робот. Важна е формата, не числата.
Един DAgger рунд, шест стъпки
Така изглежда цикълът на практика на платформата, а не като схема. Всяка стъпка по-долу отговаря на елемент за управление в кокпита.
Цикълът стъпка по стъпка
Същите шест стъпки, една по една, с това, което се случва с ръката и с набора от данни при всяка от тях.
Карайте policy и записвайте
Стартирайте inference пробег срещу трениран от вас checkpoint. Пробегът се записва в реално време, заедно с текста на задачата на самия пробег, така че кадрите по-късно да стават годни за тренировъчни данни, а не просто видео за гледане.
Поемете контрола и коригирайте
В момента, в който ръката направи нещо грешно, натиснете „Поеми контрола". Runner-ът пауза, ръката е ваша. С leader ръка тя първо застава в позата на follower-а и после предава контрола; при вход от клавиатура или плъзгачи, избран при старта на пробега, поемането е ръчно веднага. Коригирайте движението, после върнете контрола на policy. Кадрите, записани по време на поемането, автоматично се маркират като интервенция.
Сортирайте пробега
За всеки пробег едно решение: запишете го като корекция, запазете го като оценъчен пробег или го изхвърлете. Замръзналите кадри около предаването остават в raw директорията и никога не влизат в набора от данни.
Синхронизирайте набора с корекции
Корекциите се събират в отделен набор от данни за всяка policy и отиват в bucket-а ви чрез автоматичния cloud sync. На този етап нищо не се смесва; корекциите засега са просто самостоятелен набор от данни.
Съставете сместа сами
Чрез „Съставяне на набор от данни" се изгражда тренировъчният материал за следващия рунд: оригиналният набор плюс корекциите, с изрично избрани епизоди по източник. Резултатът е обикновен набор от данни, който се синхронизира и тренира като всеки друг. Нищо не се примесва зад гърба ви и симулационни данни не се добавят автоматично.
Продължете обучението от checkpoint-а
Тренирайте съставения набор от данни с „Продължи от checkpoint" вместо от базовия модел, така че рундът да започва от policy-то, което току-що карахте. За точност: това инициализира теглата от този checkpoint, не е optimizer resume.
Какво платформата поема вместо вас
Всяка точка тук е стъпка от цикъла, която иначе би трябвало сами да изградите и поддържате.
Поемане без leader ръка
Изберете вход от клавиатура или плъзгачи при старта на пробега и коригирате само с лаптоп. Стъпките от клавиатурата се ограничават от сървъра твърдо до два градуса на става и четири градуса на захвата; целите от плъзгачите са абсолютни и сървърът се придвижва към тях с най-много шест градуса на извикване. Ограничението седи в сървъра, не в интерфейса, така че заседнал клавиш не може да „хвърли" ръката.
Телеоперация в DocsИнтервенции, маркирани на кадър
Всеки кадър, записан докато държите ръката, носи маркировка за интервенция, а колоната action съдържа пълната зададена поза. Не поддържате колона с флагове на ръка и не я подравнявате после спрямо индексите на кадрите.
Форматът на LeRobot набора от данниСортиране: корекция, оценка или кошче
Всеки пробег получава едно решение на картата за запис. Корекционните пробеги захранват следващия тренировъчен рунд, оценъчните пробеги остават извън обучението и така остават чисто измерване, а неуспешните пробеги изчезват, вместо тихо да развалят сместа.
Sessions и епизодиСъставете сместа изрично
Тренировъчния набор за рунд n съставяте вие: оригинален набор плюс корекции, епизоди, избрани по източник. Без автоматично примесване, без скрити симулационни данни, а съставеният резултат се държи като всеки друг набор от данни.
Набори от данниПродължете от checkpoint
Насочете тренировъчния пробег към checkpoint-а, който току-що карахте, вместо към базовия модел, така всеки рунд започва там, където е приключил предишният. Инициализират се само теглата, състоянието на optimizer-а не се възстановява, затова първия рунд е добре да се третира като тест за приложимост.
ОбучениеGPU под наем на рунд
ACT и SmolVLA на 4090, Pi0 и GR00T N1.5 или N1.7 на A100 с 80 GB. Стартирате рунд, pod-ът се вдига, checkpoint-ите кацат в bucket-а ви, а плащате за часовете, които рундът е отнел.
Цени на GPUПланирайте рундовете си
Процентът на интервенциите е метриката за напредък на цикъла: коригирани кадри, разделени на кадрите на пробега. Задайте начална стойност и подобрение на рунд и вижте колко рунда са нужни, за да стигнете целта.
| Рунд | Процент на интервенциите | Коригирани кадри |
|---|---|---|
| 1 | 30.0 % | 900 |
| 2 | 22.5 % | 675 |
| 3 | 16.9 % | 506 |
| 4 | 12.7 % | 380 |
| 5 | 9.5 % | 285 |
| 6 | 7.1 % | 214 |
| Σ | 2 960 | |
Модел, не прогноза. Реалните рундове са неравномерни, а рунд, който не помръдва процента, не е донесъл нищо; точно това си струва да следите.
Изграждане на цикъла сами срещу изпълнението му тук
Нищо от това не е невъзможно на ръка. Въпросът е колко вечери отиват в инфраструктура вместо в рундове, и има един ред, в който собствената работа е ясно по-добрият отговор.
| Стъпка от цикъла | Изграждане на ръка | На AY-Robots |
|---|---|---|
| Поемане по средата на пробега | Leader ръка или собствен код на servo bus-а. Поемане с клавиатура и плъзгачи, включително безопасни граници, пишете и дебъгвате сами на истински хардуер. | Leader ръка, клавиатура или плъзгачи, избрани при старта на пробега. Ограниченията на ъглите седят в сървъра. |
| Маркиране на интервенции | Добавяте колоната с флагове, поддържате я подравнена спрямо индекса на кадъра и я проверявате отново при всяка промяна на формата за запис. | Всеки кадър, записан по време на поемане, се маркира автоматично, със зададената поза в колоната action. |
| Сортиране на пробегите | Конвенции за директории и shell скриптове. Замръзналите кадри около предаването сами трябва да намерите и отсеете. | Едно решение на пробег на картата за запис. Кадрите от предаването остават в raw директорията. |
| Изграждане на смесения набор от данни | Merge скриптове за всяка версия на формата. Поддържането на индексите на епизодите, метаданните и видео връзките в синхрон е досадната част. | Съставяне от оригинал плюс корекции с избор на епизоди по източник; резултатът е обикновен набор от данни. |
| Започване на следващия рунд от последната policy | Сами включвате checkpoint-а в trainer-а и по желание можете да възстановите и състоянието на optimizer-а, тоест истинско продължаване. | Едно поле за базовия checkpoint. Само тегла: инициализира от checkpoint-а, не е optimizer resume. |
| Контрол над тренировъчния цикъл | Пълен. Собствен loss, собствен график, собствени аблации, собствена инструментация, без платформа по средата. Ако изследователският въпрос е самият тренировъчен цикъл, направете го на ръка. | Фиксиран път с определен списък от policies и хиперпараметрите, които формата излага, не произволен код. |
Изследванията, върху които стъпва това
Прочетете ги, преди да спорите за цикъла. Всеки линк води към страницата с abstract, не зад платена стена.
- A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
Stephane Ross, Geoffrey J. Gordon, J. Andrew Bagnell · 2011 · AISTATS 2011 (PMLR 15)
Оригиналната работа за DAgger: формулира проблема с натрупването на грешки, дава T-на-квадрат границата за чисто supervised подхода и предлага агрегиране на данни от състоянията, посетени от самия обучаван модел.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
Вариантът с човешки контрол: експертът решава кога да поеме контрола, вместо да бъде питан за състояния, избрани от policy; точно този режим е реализиран тук.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
Другият начин да се управляват интервенциите: несъгласие в ансамбъла като сигнал за увереност кога обучаваният модел може да действа сам. Поучителен контраст спрямо оставянето на решението на човек.
- ThriftyDAgger: Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning
Ryan Hoque, Ashwin Balakrishna, Ellen Novoseller, Albert Wilcox, Daniel S. Brown, Ken Goldberg · 2021 · CoRL 2021
Третира човешкото внимание като оскъден ресурс и пита за помощ само при нови или рискови състояния; правилната рамка, когато един човек наблюдава ръката цял следобед.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Честната алтернатива: вместо да коригирате policy онлайн, разбъркайте демонстрациите, така че експертът да покаже възстановяване. Полезно е да се знае, преди да се обвържете с интервенции.
- Interactive Imitation Learning in Robotics: A Survey
Carlos Celemin, Rodrigo Perez-Dattari, Eugenio Chisari, Giovanni Franzese, Leandro de Souza Rosa, Ravi Prakash, Zlatan Ajanovic, Marta Ferraz, Abhinav Valada, Jens Kober · 2022 · arXiv:2211.00600
Картата на областта: какви форми на човешка обратна връзка съществуват, през какви интерфейси преминават и къде сред тях стои интервенцията от типа на DAgger.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
Работата за ACT. Action chunking е причината евтина ръка изобщо да може да се кара от policy за имитационно обучение, а ACT е policy-то, с което DAgger рунд се преминава най-бързо.
- π0: A Vision-Language-Action Flow Model for General Robot Control
Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn et al. · 2024 · arXiv:2410.24164
VLA, базиран на flow matching и предварително трениран vision-language модел, тук достъпен като checkpoint за fine-tuning; работата изрично посочва, че новите умения идват от fine-tuning-а, а не само от базовия модел.
Въпроси, които хората наистина задават
Нужна ли ми е leader ръка за DAgger?
Не. Изберете вход от клавиатура или плъзгачи при старта на пробега и поемането е ръчно от първия кадър, управлявано от браузъра. Leader ръка е по-приятна за фини движения и е единственият режим, в който ръката сама се подравнява преди предаването; цикълът обаче работи и без нея.
Колко DAgger рунда са ми нужни?
Честно фиксирано число няма. Следете процента на интервенциите: ако той не спада от рунд на рунд, рундът не е донесъл нищо, а причината обикновено е в устройството на задачата, в камерите или в оригиналния набор от данни, а не в броя рундове.
Това истинско DAgger ли е, или нещо по-хлабаво?
Това е HG-DAgger, вариантът с човешки контрол. Класическото DAgger пита експерта за състояния, избрани от policy, включително състояния, в които никой разумен оператор не би пуснал истинска ръка. Тук човек решава кога да се намеси, и само тези сегменти стават етикети.
Тренирам ли само върху корекциите?
Не, и не бива. Обучение само върху корекции дава policy, което умее единствено да се възстановява. Съставеният набор от данни е оригиналните данни плюс корекциите, с изрично избрани епизоди от всеки източник.
Продължаването от checkpoint възобновява ли тренировъчния пробег?
То инициализира теглата от този checkpoint. Състоянието на optimizer-а не се възстановява, така че в строг смисъл не е възобновяване. На практика теглата пренасят наученото поведение през рунда, но е добре да знаете кое от двете получавате.
Как се изчислява процентът на интервенциите?
Кадрите, маркирани като интервенция, разделени на общия брой кадри на пробега. Показва се в статуса на поемането и е числото, което си струва да се записва за всеки рунд, заедно с карания checkpoint и тренираната смес.
С кои policies работи този цикъл?
ACT, SmolVLA, Pi0, както и GR00T N1.5 или N1.7. Самият цикъл е независим от policy-то, защото произвежда само набори от данни и checkpoint-и; практическата разлика е в продължителността на рунда и нужния GPU.
Може ли без собствен робот?
Записване и обучение са възможни и без него: чрез закупени набори от данни на пазара или чрез поръчани оператори, а истинска SO-100 можете да карате в браузъра на live страницата. DAgger рундът е различен, той изисква ръка, която можете да поемете по средата на пробега. За самия цикъл значи трябва хардуер на собственото бюро.
A real SO-100, live in the browser. No signup, no hardware needed.
Изпълнете първия си рунд тази седмица
Инсталирайте клиента, карайте вече наличен checkpoint и поемете контрола първия път, когато ръката пропусне кубчето. Този единствен пробег е DAgger рунд в миниатюра; всичко след него е съставяне на сместа и плащане на GPU часовете.