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).
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.
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.
Ota ohjat ja korjaa
Heti kun käsivarsi tekee väärin, paina Ota ohjat. Runner pysähtyy, ja käsivarsi on sinun. Leader-käsivarrella se ajaa ensin follower-asentoon ja luovuttaa sitten ohjat; näppäimistö- tai liukusäädinsyötteellä, valittuna ajon alussa, haltuunotto on heti manuaalinen. Korjaa liike ja anna ohjat sitten takaisin policylle. Haltuunoton aikana tallentuneet ruudut merkitään automaattisesti interventioiksi.
Luokittele ajo
Päätä ajokohtaisesti, mikä ajo oli: arkistoi se korjauksena, säilytä evaluointiajona tai hylkää. Luovutuksen ympärillä olevat pysähdysruudut jäävät raw-hakemistoon eivätkä koskaan päädy aineistoon.
Synkronoi korjausaineisto
Korjaukset kertyvät policy-kohtaiseen korjausaineistoon ja siirtyvät bucketiisi automaattisen pilvisynkronoinnin kautta. Tässä vaiheessa mitään ei vielä yhdistetä mihinkään; korjaukset ovat yksinkertaisesti oma aineistonsa.
Koosta sekoitus itse
Käytä Koosta aineisto -toimintoa seuraavan kierroksen koulutusaineiston rakentamiseen: alkuperäinen aineisto plus korjaukset, episodit valittuina nimenomaisesti lähteittäin. Tulos on tavallinen aineisto, joka synkronoituu ja kouluttaa kuten mikä tahansa muu. Mitään ei sekoiteta selän takana, eikä simulaatiodataa lisätä automaattisesti.
Jatka koulutusta checkpointista
Kouluta koostettu aineisto Jatka checkpointista -toiminnolla perusmallista aloittamisen sijaan, jolloin kierros alkaa juuri ajamastasi policysta. Ollaan tarkkoja siitä, mitä tämä on: se alustaa painot kyseisestä checkpointista, se ei ole optimointitilan jatkaminen.
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 dokumentaatioInterventiot 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-aineistomuotoLuokittelu: 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 episoditKoosta 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.
AineistotJatka 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ä.
KoulutusGPU: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-hinnoitteluSuunnittele 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.
| Kierros | Interventioaste | Korjatut 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 vaihe | Itse rakennettuna | AY-Robotsilla |
|---|---|---|
| Haltuunotto kesken ajon | Leader-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 merkitseminen | Lisää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 lajittelu | Hakemistokä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 rakentaminen | Merge-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ä policysta | Kytket 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 koulutussilmukasta | Tä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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- π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ä.
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.