Human-gated DAgger, alusta loppuun

Ota ohjat, kun policy tekee virheen, ja kouluta juuri sillä korjauksella.

Behavior cloningilla koulutettu policy tuntee vain ne tilat, joita demonstraatiosi kävivät läpi. DAgger sulkee tämän aukon datalla tiloista, joihin policy itse päätyy. AY-Robots ajaa koko silmukan SO-100:lla: aja checkpointia, ota ohjat kesken ajon, säilytä korjatut episodit, koosta sekoitus ja jatka koulutusta juuri ajamastasi checkpointista.

  • HG-DAgger, ihmisen portittama
  • SO-100 / SO-101
  • ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
  • Interventioaste kierrosta kohti

Miksi koulutettu policy tekee jotain, mitä ei koskaan demonstroitu

Behavior cloning kohtelee ohjausta tavallisena ohjattuna oppimisena: havainto sisään, nivelten tavoiteasento ulos, sovitettuna ruutuihin, jotka ihminen on tallentanut. Tämä pätee vain niin kauan kuin robotti pysyy tiloissa, joita ihminen kävi läpi, eikä se pysy. Tarttuja, joka sulkeutuu neljäkymmentä millisekuntia liian aikaisin, työntää kuution kaksi millimetriä pois demonstroidusta asennosta. Seuraava havainto on sellainen, jota koulutusaineisto ei sisällä, joten siihen liittyvä toiminto on ekstrapolaatio, ja sitä seuraava tila on vielä kauempana. Koulutusjakauma ja jakauma, jonka opittu policy itse tuottaa, ovat kaksi eri asiaa, ja jälkimmäinen ajautuu episodin edetessä yhä kauemmas edellisestä.

Ross, Gordon ja Bagnell kuvasivat juuri tämän pelkistyksen ongelman vuonna 2011 ja mittasivat sen vaikutuksen: luokitin, joka erehtyy todennäköisyydellä e asiantuntijan jakaumassa, voi tehdä T:n mittaisella horisontilla suuruusluokkaa T² × e virhettä omassa, itse tuottamassaan jakaumassaan, koska yksi virhe tuottaa havaintoja, joita asiantuntija ei koskaan tuottanut, ja virheet kertautuvat. Heidän ratkaisunsa on algoritmi, josta tämä sivu kertoo. Aja nykyistä policya, kerää asiantuntijalabelit tiloista, joissa se käy, yhdistä ne kaikkeen tähän mennessä kerättyyn, kouluta uudelleen, toista. Lisää samanlaisia demonstraatioita ei auta, koska ne vain näytteistävät samaa jakaumaa uudelleen. Labelit tiloista, joihin policy päätyy, auttavat. Tässä toteutettu muunnelma on ihmisen portittama (HG-DAgger, Kelly ym.): policy pitää ohjat, kunnes ihminen päättää, että jokin menee pieleen, ja ottaa ohjat itselleen. Näin korjauksia syntyy vain siellä, missä niitä tarvitaan, eikä käsivartta koskaan pyydetä tilaan, jota käyttäjä ei sallisi.

  • Behavior cloning pätee vain sillä tilajakaumalla, jolla se on koulutettu.
  • Virhe vahvistaa itse itseään: pieni poikkeama tuottaa vieraan tilan, joka tuottaa suuremman poikkeaman.
  • Lääke ei ole lisää demonstraatioita, vaan labelit tiloista, joihin policy itse päätyy.
  • Ihmisen portittama tarkoittaa, että käyttäjä päättää puuttumisen ajankohdan, ei mikään autonomia-arvo.

Miksi virhe kertautuu

Vedä horisonttia. Behavior cloningilla odotettu lisäkustannus kasvaa suunnilleen askelmäärän neliön suhteessa, koska jokainen virhe tuottaa tiloja, joita demonstraatiot eivät koskaan kattaneet; aggregointisilmukka pitää kasvun lähes lineaarisena (Ross ym., 2011).

200
1.0 %
Behavior cloning
400
DAgger
2.00
200×
Behavior cloning ÷ DAgger
0.000100200300400050100150200Odotettu lisäkustannus (yläraja)
Tehtävän horisontti (askelta)

Havainnollistavat käyrät Ross ym. (2011) rajojen pohjalta, ei mittauksia sinun robotistasi. Olennaista on käyrän muoto, ei luvut.

Yksi DAgger-kierros, kuusi vaihetta

Näin silmukka todella kulkee alustalla, ei kaaviona. Jokainen alla oleva vaihe vastaa yhtä ohjainta cockpitissa.

Käy silmukka läpi vaihe vaiheelta

Samat kuusi vaihetta, yksi kerrallaan, ja mitä kussakin tapahtuu käsivarrella ja aineistossa.

01

Aja policya ja tallenna se

Käynnistä päättelyajo kouluttamaasi checkpointia vastaan. Ajo tallennetaan sen tapahtuessa, ajon oman tehtävätekstin kanssa, jotta ruudut kelpaavat jälkikäteen koulutusdataksi eivätkä jää pelkäksi katseltavaksi videoksi.

1 / 6

Minkä alusta hoitaa puolestasi

Jokainen kohta tässä on silmukan vaihe, jonka muuten rakentaisit ja ylläpitäisit itse.

Haltuunotto ilman leader-käsivartta

Valitse ajon alussa näppäimistö- tai liukusäädinsyöte, niin korjaaminen onnistuu pelkällä kannettavalla. Näppäimistön nykäykset rajataan palvelinpuolella kahteen asteeseen niveltä kohti ja neljään asteeseen tarttujalla; liukusäätimien tavoitteet ovat absoluuttisia, ja palvelin liikkuu kohti niitä enintään kuusi astetta per kutsu. Rajat pakottaa palvelin, ei käyttöliittymä, joten juuttunut näppäin ei voi heittää käsivartta pois radalta.

Teleoperaation dokumentaatio

Interventiot merkitty ruutukohtaisesti

Jokainen ruutu, joka tallentuu käsivartta hallitessasi, kantaa interventiolippua, ja action-sarake sisältää täyden komennetun asennon. Sinun ei tarvitse ylläpitää lippusaraketta käsin eikä kohdistaa sitä jälkikäteen ruutuindekseihin.

LeRobot-aineistomuoto

Luokittelu: korjaus, evaluointi vai roskiin

Jokainen ajo saa yhden päätöksen tallennuskortilla. Korjausajot syöttävät seuraavaa koulutuskierrosta, evaluointiajot pysyvät koulutuksen ulkopuolella ja säilyvät siten puhtaana mittauksena, ja epäonnistuneet ajot poistuvat sen sijaan, että ne hiljaa myrkyttäisivät sekoituksen.

Sessiot ja episodit

Koosta sekoitus nimenomaisesti

Kierroksen n koulutusaineiston kokoat itse: alkuperäinen aineisto plus korjaukset, episodit valittuina lähteittäin. Ei automaattista sekoittamista, ei piilotettua simulaatiodataa, ja koostettu tulos käyttäytyy kuin mikä tahansa muu aineisto.

Aineistot

Jatka checkpointista

Osoita koulutusajo juuri ajamaasi checkpointiin perusmallin sijaan, jolloin jokainen kierros alkaa siitä, mihin edellinen päättyi. Vain painot alustetaan; optimointitilaa ei palauteta, minkä vuoksi ensimmäistä kierrosta kannattaa kohdella toteutettavuustestinä.

Koulutus

GPU:t vuokrattuna kierroksittain

ACT ja SmolVLA 4090:llä, Pi0 sekä GR00T N1.5 tai N1.7 A100:lla, jossa 80 Gt muistia. Käynnistät kierroksen, pod käynnistyy, checkpointit päätyvät bucketiisi, ja maksat vain kierrokseen kuluneista tunneista.

GPU-hinnoittelu

Suunnittele kierroksesi

Interventioaste on silmukan edistymismittari: korjatut ruudut jaettuna ajon ruuduilla. Aseta lähtöarvo ja se, kuinka paljon kukin kierros tuottaa, ja katso, montako kierrosta tavoitteeseen tarvitaan.

30 %
25 %
3 000
KierrosInterventioasteKorjatut ruudut
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

Malli, ei ennuste. Todelliset kierrokset ovat epätasaisia, ja kierros, joka ei liikuta astetta, ei tuota mitään; juuri tätä merkkiä kannattaa seurata.

Silmukan rakentaminen itse verrattuna sen ajamiseen täällä

Mikään tästä ei ole käsin mahdotonta. Kyse on siitä, kuinka monta iltaa kuluu putkitöihin kierrosten sijaan, ja yksi rivi on sellainen, jossa itse tekeminen on selvästi parempi vastaus.

Silmukan vaiheItse rakennettunaAY-Robotsilla
Haltuunotto kesken ajonLeader-käsivarsi tai oma koodi servoväylällä. Näppäimistö- ja liukusäädinhaltuunoton, turvarajat mukaan lukien, kirjoitat ja debuggaat itse oikealla laitteistolla.Leader-käsivarsi, näppäimistö tai liukusäätimet, valittuna ajon alussa. Kulmarajat asuvat palvelimessa.
Interventioiden merkitseminenLisäät lippusarakkeen itse, pidät sen kohdistettuna ruutuindeksiin ja tarkistat sen aina uudelleen, kun tallennusmuoto muuttuu.Jokainen haltuunoton aikana tallentunut ruutu merkitään automaattisesti, ja action-sarake sisältää komennetun asennon.
Ajojen lajitteluHakemistokäytännöt ja shell-skriptit. Luovutuksen ympärillä olevat pysähdysruudut on itse löydettävä ja suodatettava pois.Yksi päätös per ajo tallennuskortilla. Luovutusruudut jäävät raw-hakemistoon.
Sekoitetun aineiston rakentaminenMerge-skriptejä muotoversiota kohti. Episodi-indeksien, metadatan ja videoviittausten pitäminen yhtenäisinä on se työläs osuus.Koosta alkuperäisestä plus korjauksista, episodivalinta lähteittäin; tulos on tavallinen aineisto.
Seuraavan kierroksen aloitus viimeisimmästä policystaKytket checkpointin traineriin itse ja voit halutessasi palauttaa myös optimointitilan, jos haluat aidon jatkamisen.Yksi kenttä perus-checkpointille. Vain painot: alustus checkpointista, ei optimoinnin jatkamista.
Hallinta koulutussilmukastaTäydellinen. Oma loss, oma aikataulu, omat ablaatiot, oma instrumentointi, ei alustaa tiellä. Jos tutkimuskysymys on itse koulutussilmukka, tee se käsin.Kiinteä polku, jossa on valmis lista policyja ja lomakkeen tarjoamat hyperparametrit, ei mielivaltaista koodia.

Julkaisut, joiden päälle tämä rakentuu

Lue nämä ennen kuin väität silmukkaa vastaan. Jokainen linkki vie abstraktisivulle, ei maksumuurin taakse.

  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)

    Alkuperäinen DAgger-julkaisu: se esittää virheen kertautumisongelman, antaa T²-rajan pelkälle ohjatun oppimisen lähestymistavalle ja ehdottaa datan aggregointia tiloista, joissa oppija itse käy.

  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

    Ihmisen portittama muunnelma: asiantuntija päättää, milloin ottaa ohjat, sen sijaan että häneltä kysyttäisiin tiloista, jotka policy on valinnut; juuri tämä tila on täällä toteutettu.

  3. EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning

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

    Toinen tapa portittaa interventioita: ensemblen erimielisyys luottamussignaalina siitä, milloin oppija saa toimia yksin. Hyödyllinen vastakohta sille, että ihminen arvioi asian.

  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

    Kohtelee ihmisen huomiota niukkana resurssina ja pyytää apua vain uusissa tai riskialttiissa tiloissa; oikea näkökulma, kun yksi ihminen valvoo käsivartta koko iltapäivän.

  5. DART: Noise Injection for Robust Imitation Learning

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

    Rehellinen vaihtoehto: sen sijaan, että policya korjattaisiin ajon aikana, demonstraatioita häiritään, jotta asiantuntija näyttää, miten tilanteesta selvitään. Kannattaa tuntea ennen kuin sitoudut interventioihin.

  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

    Kartta koko alasta: mitä ihmispalautteen muotoja on olemassa, mitkä rajapinnat välittävät niitä ja mihin kohtaan DAgger-tyylinen interventio niiden joukossa sijoittuu.

  7. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware

    Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705

    ACT-julkaisu. Action chunking on syy, miksi edullista käsivartta voi ylipäätään ohjata imitaatiopolicylla, ja ACT on nopein policy DAgger-kierroksen iterointiin.

  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

    Flow matching -pohjainen VLA, joka on rakennettu esikoulutetun vision-language-mallin päälle, ja yksi checkpointeista, joita täällä voi fine-tunata; julkaisu toteaa suoraan, että uudet taidot syntyvät fine-tuningista, ei pelkästä perusmallista.

Kysymyksiä, joita oikeasti kysytään

Tarvitsenko DAggeria varten leader-käsivarren?

Et. Valitse näppäimistö- tai liukusäädinsyöte ajon alussa, niin haltuunotto on manuaalinen ensimmäisestä ruudusta lähtien ja tapahtuu selaimesta käsin. Leader-käsivarsi on miellyttävämpi hienomotoriikkaan, ja se on ainoa tila, jossa käsivarsi kohdistaa itsensä ennen luovutusta, mutta silmukka toimii ilmankin.

Montako DAgger-kierrosta tarvitsen?

Rehellistä kiinteää lukua ei ole. Seuraa interventioastetta: jos se ei laske kierrokselta toiselle, kyseinen kierros ei tuottanut mitään, ja syy on yleensä tehtävän asetuksissa, kameroissa tai alkuperäisessä aineistossa, ei kierrosten määrässä.

Onko tämä oikeaa DAggeria vai jotain löyhempää?

Se on HG-DAgger, ihmisen portittama muunnelma. Klassinen DAgger kysyy asiantuntijalta tiloista, jotka policy on valinnut, mukaan lukien tiloja, joihin mikään järkevä käyttäjä ei päästäisi oikeaa käsivartta. Täällä ihminen päättää puuttumisen ajankohdan, ja vain nämä jaksot muuttuvat labeleiksi.

Koulutanko vain korjauksilla?

Et, eikä sitä kannata tehdäkään. Pelkillä korjauksilla koulutettu policy osaa vain selvitä takaisin oikealle radalle. Koostettu aineisto on alkuperäinen data plus korjaukset, episodit valittuina nimenomaisesti kummastakin lähteestä.

Jatkaako checkpointista aloittaminen koulutusajoa?

Se alustaa painot kyseisestä checkpointista. Optimointitilaa ei palauteta, joten se ei ole tarkassa mielessä jatkamista. Käytännössä painot ovat se, mikä kantaa opitun käytöksen kierrosten yli, mutta kannattaa tietää, kumman näistä kahdesta saa.

Miten interventioaste lasketaan?

Interventioksi merkityt ruudut jaettuna ajon ruutujen kokonaismäärällä. Se näkyy haltuunoton tilassa, ja se on se yksi luku, joka kannattaa kirjata ylös joka kierrokselta ajetun checkpointin ja koulutetun sekoituksen rinnalle.

Millä policyilla tätä silmukkaa voi ajaa?

ACT, SmolVLA, Pi0 sekä GR00T N1.5 tai N1.7. Silmukka itsessään on policysta riippumaton, koska se tuottaa vain aineistoja ja checkpointeja; käytännön ero on siinä, kauanko kierros kestää ja minkä GPU:n se tarvitsee.

Onnistuuko tämä ilman omaa robottia?

Tallentaminen ja koulutus onnistuvat ilmankin: ostamalla aineistoja markkinapaikalta tai tilaamalla työn operaattoreilta, ja oikeaa SO-100:aa voi ajaa selaimessa live-sivulla. DAgger-kierros on eri asia: se vaatii käsivarren, jonka voi ottaa haltuun kesken ajon, joten itse silmukkaa varten laitteisto kannattaa olla omalla pöydällä.

Drive a real arm

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

Aja ensimmäinen kierroksesi tällä viikolla

Asenna asiakassovellus, aja jo olemassa olevaa checkpointia ja ota ohjat, kun käsivarsi ensimmäisen kerran ohittaa kuution. Tämä yksi ajo on DAgger-kierros pienoiskoossa: kaikki sen jälkeen on sekoituksen koostamista ja GPU-tuntien maksamista.