Human-gated DAgger, од крај до крај

Преземи контрола кога policy-та ќе згреши, па тренирај ја токму на таа корекција.

Policy тренирана со behavior cloning ги познава само состојбите низ кои поминале твоите демонстрации. DAgger ја затвора таа празнина со податоци од состојбите до кои policy-та сама стигнува. AY-Robots ја извршува целата постапка на SO-100: вози checkpoint, преземи контрола среде вожњата, задржи ги коригираните епизоди, состави ја мешавината и продолжи тренирање од checkpoint-от што штотуку го вози.

  • HG-DAgger, human-gated
  • SO-100 / SO-101
  • ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
  • Стапка на интервенции по рунда

Зошто тренирана policy прави нешто што никогаш не било демонстрирано

Behavior cloning го третира управувањето како обично надгледувано учење: набљудување влегува, целна положба на зглобовите излегува, приспособени кон кадрите што ги снимил човек. Тоа важи само додека роботот останува во состојбите што ги посетил тој човек, а тоа не е случајот. Стега што се затвора четириесет милисекунди прерано ја поместува коцката два милиметри од демонстрираната положба. Следното набљудување е такво какво што не постои во тренинг-множеството, па акцијата таму е екстраполација, а состојбата потоа лежи уште подалеку. Распределбата на тренирањето и распределбата што реално ја произведува научената policy се две различни работи, и втората се оддалечува од првата како што епизодата тече.

Ross, Gordon и Bagnell го опишале токму овој неуспех на редукцијата во 2011 година и ја измериле штетата: класификатор што греши со веројатност e под распределбата на експертот може да направи од редот на T на квадрат пати e грешки над хоризонт од T чекори под сопствената распределба што ја предизвикува, бидејќи една грешка произведува набљудувања што експертот никогаш не ги генерирал, а грешките се акумулираат. Нивното решение е алгоритмот за кој зборува оваа страница: изврши ја тековната policy, собери експертски ознаки за состојбите што ги посетува, агрегирај ги со сè собрано досега, тренирај повторно, повтори. Повеќе демонстрации од истиот вид не помагаат, бидејќи повторно земаат примероци од истата распределба. Ознаки од состојбите до кои policy-та сама стигнува, помагаат. Варијантата имплементирана овде е human-gated (HG-DAgger, Kelly et al.): policy-та ја задржува контролата сè додека човек не одлучи дека нешто оди наопаку и не преземе контрола, па корекции се произведуваат само таму каде што се потребни, а раката никогаш не се бара да влезе во состојба што операторот не би ја дозволил.

  • Behavior cloning важи само на распределбата на состојби на која бил трениран.
  • Грешката се засилува сама себеси: мало отстапување произведува непозната состојба, која произведува уште поголемо отстапување.
  • Лекот не се повеќе демонстрации, туку ознаки од состојбите до кои policy-та сама стигнува.
  • Human-gated значи дека операторот одлучува кога да интервенира, не некој степен на автономност.

Зошто грешката се акумулира

Помести го хоризонтот. Под behavior cloning, очекуваниот дополнителен трошок расте приближно со квадратот на бројот чекори, бидејќи секоја грешка произведува состојби што демонстрациите никогаш не ги покриле; постапка со агрегација го држи растот близу до линеарен (Ross et al., 2011).

200
1.0 %
Behavior cloning
400
DAgger
2.00
200×
Behavior cloning ÷ DAgger
0.000100200300400050100150200Очекуван дополнителен трошок (граница)
Хоризонт на задачата (чекори)

Илустративни криви од границите во Ross et al. (2011), не мерења од твојот робот. Поентата е обликот, не бројките.

Една DAgger-рунда, шест чекори

Ова е постапката токму како што ја извршува платформата, не шема. Секој чекор подолу одговара на контрола во кокпитот.

Помини низ постапката

Истите шест чекори, еден по еден, со тоа што се случува на раката и во dataset-от кај секој од нив.

01

Изврши ја policy-та и снимај ја

Стартувај inference-вожња врз checkpoint што си го тренирал. Вожњата се снима додека се случува, со текстот на задачата на самата вожња, за кадрите подоцна да бидат употребливи како тренинг-податоци, а не само видео за гледање.

1 од 6

Што платформата презема наместо тебе

Секоја точка овде е чекор од постапката што инаку сам би го градел и одржувал.

Преземање без leader-рака

Избери внес преку тастатура или slider на почетокот на вожњата и можеш да коригираш само со лаптоп. Поместувањата преку тастатура се ограничени на страна на серверот на два степени по зглоб и четири на стегата; целите на slider-от се апсолутни, а серверот се движи најмногу шест степени кон нив по повик. Ограничувањата се наметнуваат од серверот, не од интерфејсот, така што заглавено копче не може да ја фрли раката.

Документација за телеоперација

Интервенции означени по кадар

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

Форматот на LeRobot dataset

Разврстување: корекција, евалуација или отфрлање

Секоја вожња добива една одлука на save-картичката. Вожните за корекција влегуваат во следната тренинг-рунда, евалуациските вожни остануваат надвор од тренирањето за да останат чисто мерење, а лошите вожни исчезнуваат наместо тивко да ја труат мешавината.

Сесии и епизоди

Состави ја мешавината експлицитно

Тренинг-множеството за рунда n го составуваш ти: оригинален dataset плус корекции, епизоди избрани по извор. Без автоматско мешање, без скриени симулациски податоци, а составениот резултат се однесува како секој друг dataset.

Datasets

Продолжи од checkpoint

Насочи тренинг-вожња кон checkpoint-от што штотуку го вози, наместо кон base-моделот, за секоја рунда да почнува таму каде завршила претходната. Иницијализира само тежини; состојбата на optimizer-от не се враќа, затоа рунда еден е добро да се третира како тест на изводливост.

Тренирање

GPU-и изнајмени по рунда

ACT и SmolVLA на 4090, Pi0 и GR00T N1.5 или N1.7 на A100 со 80 GB. Стартуваш рунда, pod-от се крева, checkpoint-ите пристигнуваат во твојот bucket, а плаќаш за часовите што рундата ги потрошила.

Цени за GPU

Планирај ги рундите

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

30 %
25 %
3 000
РундаСтапка на интервенцииКоригирани кадри
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. Преземање преку тастатура и slider, вклучувајќи безбедни граници, е нешто што го пишуваш и потоа го дебагираш на реален хардвер.leader-рака, тастатура или slider, избрани кога вожњата почнува. Ограничувањата на аглите живеат во серверот.
Означување интервенцииДодаваш колона за ознаки, ја одржуваш усогласена со индексот на кадарот и ја проверуваш повторно секогаш кога форматот на снимањето се менува.Секој кадар снимен за време на преземање автоматски се означува, со наредената положба во колоната action.
Сортирање на вожнитеКонвенции за директориуми и shell-скрипти. Замрзнатите кадри околу предавањето на контрола сам треба да ги најдеш и филтрираш.Една одлука по вожња на save-картичката. Кадрите од предавањето остануваат во raw-директориумот.
Градење на мешаниот datasetMerge-скрипти по верзија на форматот. Здодевниот дел е усогласувањето на индексите на епизодите, метаподатоците и видео-референците.Состави од оригинал плус корекции со избор на епизоди по извор; резултатот е нормален dataset.
Почнување на следната рунда од последната policyСам го поврзуваш checkpoint-от во trainer-от, а можеш и да ја вратиш состојбата на optimizer-от ако сакаш вистинско продолжување.Едно поле за base checkpoint-от. Само тежини: иницијализира од checkpoint-от, не е продолжување на optimizer-от.
Контрола над тренинг-постапкатаЦелосна. Твоја loss-функција, твој распоред, твои аблации, твоја инструментација, без платформа на патот. Ако истражувачкото прашање е самата тренинг-постапка, направи го рачно.Фиксен пат со фиксна листа policy-и и хиперпараметрите што формата ги нуди, не произволен код.

Трудовите на кои е изградено ова

Прочитај ги пред да се расправаш со постапката. Секој линк води до страницата со абстракт, не зад paywall.

  1. 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-квадрат границата за чисто надгледуваниот пристап и предлага агрегирање податоци од состојбите што учесникот сам ги посетува.

  2. HG-DAgger: Interactive Imitation Learning with Human Experts

    Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019

    Human-gated варијантата: експертот одлучува кога да презема контрола наместо да биде прашуван за состојби што policy-та ги избрала; тоа е режимот што оваа платформа го имплементира.

  3. EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning

    Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019

    Другиот начин да се контролираат интервенциите: несогласувањето во ансамблот како сигнал за доверба кога учесникот смее да дејствува сам. Корисна спротивност на тоа да остави човек да процени.

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

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

  5. DART: Noise Injection for Robust Imitation Learning

    Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017

    Искрената алтернатива: наместо да ја коригира policy-та во живо, ги пертурбира демонстрациите за експертот да покаже враќање. Вреди да се знае пред да се посветиш на интервенции.

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

    Мапата на областа: кои форми на човечки feedback постојат, кои интерфејси ги носат и каде интервенцијата во DAgger-стил стои меѓу нив.

  7. 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-рунда најбрзо се повторува.

  8. π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-tune-увaш тука; трудот експлицитно вели дека новите вештини доаѓаат од fine-tuning-от, не само од base-моделот.

Прашања што луѓето навистина ги поставуваат

Дали ми треба leader-рака за DAgger?

Не. Избери внес преку тастатура или slider кога ја стартуваш вожњата и преземањето е рачно од првиот кадар, управувано од browser-от. leader-раката е попријатна за фини движења и тоа е режимот во кој раката сама се порамнува пред да предаде контрола, но постапката работи и без неа.

Колку DAgger-рунди ми требаат?

Нема искрен фиксен број. Следи ја стапката на интервенции: ако не паѓа од една рунда до следната, таа рунда не ти донела ништо, а проблемот обично е во поставката на задачата, камерите или оригиналниот dataset, а не во бројот на рундите.

Дали ова е вистински DAgger или нешто послободно?

Ова е HG-DAgger, human-gated варијантата. Класичниот DAgger го прашува експертот за состојби што policy-та ги избрала, вклучувајќи состојби во кои ниту еден разумен оператор не би пуштил вистинска рака да стигне. Тука човек одлучува кога да интервенира, и само тие сегменти стануваат ознаки.

Дали тренирам само на корекциите?

Не, и не треба. Тренирање само на корекции дава policy што знае само да се враќа од грешка. Составениот dataset се оригиналните податоци плус корекциите, со епизоди од секој извор избрани експлицитно.

Дали продолжувањето од checkpoint го продолжува тренинг-вожњата?

Ги иницијализира тежините од тој checkpoint. Состојбата на optimizer-от не се враќа, така што во строга смисла не е продолжување (resume). Во пракса тежините го носат наученото однесување низ рундата, но вреди да се знае кое од двете го добиваш.

Како се пресметува стапката на интервенции?

Кадри означени како интервенција поделени со вкупните кадри на вожњата. Се прикажува во статусот на преземањето и тоа е единствениот број што вреди да се запише по рунда, покрај checkpoint-от што го вози и мешавината што ја тренира.

Со кои policies можам да ја извршувам оваа постапка?

ACT, SmolVLA, Pi0, и GR00T N1.5 или N1.7. Самата постапка е независна од policy-та бидејќи произведува само dataset-и и checkpoint-и; практичната разлика е колку долго трае рундата и кој GPU и е потребен.

Дали можам ова да го правам без сопствен робот?

Можеш да снимаш и тренираш без робот, купувајќи dataset-и на пазарот или ангажирајќи оператори, а можеш и да возиш вистински SO-100 во browser-от на live-страницата. DAgger-рунда е нешто друго: и треба рака што можеш да ја преземеш среде вожња, па за самата постапка ти треба хардвер на твоја маса.

Drive a real arm

A real SO-100, live in the browser. No signup, no hardware needed.

Изврши ја твојата прва рунда оваа недела

Инсталирај го клиентот, вози checkpoint што веќе го имаш, и преземи контрола првиот пат кога раката ќе замине покрај коцката. Таа единствена вожња е DAgger-рунда во минијатура: сè потоа е составување на мешавината и плаќање на GPU-часовите.