Neem oor wanneer die policy verkeerd gaan, en train dit dan op jou korreksie.
'n Policy wat deur behavior cloning getrain is, ken slegs die toestande wat jou demonstrasies besoek het. DAgger sluit daardie gaping met data uit die toestande wat die policy self bereik. AY-Robots laat die hele lus op 'n SO-100 loop: bestuur 'n checkpoint, neem middel-in-die-lopie oor, behou die korrigeerde episodes, stel die mengsel saam, en train verder vanaf die checkpoint wat jy pas bestuur het.
- HG-DAgger, human-gated
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Intervensiekoers per ronde
Waarom 'n getrainde policy iets doen wat nooit gedemonstreer is nie
Behavior cloning behandel beheer as gewone toesighoudende leer: waarneming in, gewrigmikpunt uit, gepas op die frames wat 'n mens opgeneem het. Dit geld net solank die robot op die toestande bly wat dié mens besoek het, en dit bly nie daarop nie. 'n Gryper wat veertig millisekondes te vroeg sluit, skuif die kubus twee millimeter uit sy gedemonstreerde pose. Die volgende waarneming is een wat nie in die trainingstel voorkom nie, so die aksie daar is 'n ekstrapolasie, en die toestand daarna lê nog verder buite. Die trainingsverspreiding en die verspreiding wat die geleerde policy werklik voortbring, is twee verskillende dinge, en die tweede een dryf al hoe verder van die eerste weg soos die episode verloop.
Ross, Gordon en Bagnell het presies hierdie reduksiefout in 2011 beskryf en die skade bereken: 'n klassifiseerder wat met waarskynlikheid e onder die kundige-verspreiding faal, kan oor 'n horison van T stappe onder die verspreiding wat hy self voortbring in die orde van T in die kwadraat maal e foute maak, omdat een fout waarnemings oplewer wat die kundige nooit gegenereer het nie, en die foute mekaar opstapel. Hulle oplossing is die algoritme waaroor hierdie bladsy gaan: die huidige policy laat loop, kundige-etikette vir die toestande wat dit besoek versamel, dit saam met alles wat tot dusver versamel is aggregeer, herleer, herhaal. Meer demonstrasies van dieselfde soort help nie, want hulle bemonster weer dieselfde verspreiding. Etikette op die toestande wat die policy bereik, help wel. Die variant wat hier geïmplementeer is, is human-gated (HG-DAgger, Kelly et al.): die policy behou beheer totdat 'n mens besluit dit gaan verkeerd en oorneem, sodat korreksies slegs ontstaan waar hulle nodig is, en die arm word nooit na 'n toestand gestuur wat die operateur nie sou toelaat nie.
- Behavior cloning geld slegs vir die verspreiding van toestande waarop dit getrain is.
- Die fout versterk homself: 'n klein afwyking lewer 'n onbekende toestand, wat 'n groter afwyking lewer.
- Die oplossing is nie meer demonstrasies nie, dit is etikette op die toestande wat die policy self bereik.
- Human-gated beteken die operateur besluit wanneer om in te gryp, nie 'n outonomie-telling nie.
Waarom die fout opstapel
Sleep die horison. Onder behavior cloning groei die verwagte ekstra koste ongeveer met die kwadraat van die aantal stappe, omdat elke fout toestande oplewer wat die demonstrasies nooit gedek het nie; 'n aggregasielus hou die groei naby lineêr (Ross et al., 2011).
Illustratiewe krommes uit die grense in Ross et al. (2011), nie metings van jou robot nie. Dit gaan oor die vorm, nie oor die syfers nie.
Een DAgger-ronde, ses stappe
Dit is die lus soos die platform dit werklik laat loop, nie 'n skema nie. Elke stap hieronder stem ooreen met 'n beheerelement in die cockpit.
Deurloop die lus
Dieselfde ses stappe, een op 'n slag, met wat op die arm en in die dataset by elkeen daarvan gebeur.
Laat die policy loop en neem dit op
Begin 'n inferensie-lopie teen 'n checkpoint wat jy self getrain het. Die lopie word opgeneem terwyl dit gebeur, saam met die taakteks van die lopie self, sodat die frames later as trainingsdata bruikbaar is in plaas daarvan om net 'n video te wees waarna jy kan kyk.
Neem oor en korrigeer
Sodra die arm die verkeerde ding doen: druk Neem oor. Die runner pouseer, en die arm is joune. Met 'n leader arm ry dit eers na die follower-pose en gee dan beheer oor; met sleutelbord- of skuifknop-toevoer, gekies aan die begin van die lopie, is die oorname onmiddellik met die hand. Korrigeer die beweging, gee dan beheer terug aan die policy. Frames wat tydens die oorname opgeneem word, word outomaties as intervensie gemerk.
Sorteer die lopie
Besluit per lopie wat dit was: registreer dit as 'n korreksie, hou dit as 'n evaluasielopie, of verwerp dit. Die vasgevangde raampies rondom 'n oorhandiging bly in die raw-gids en kom nooit in die dataset nie.
Sinkroniseer die korreksiedataset
Korreksies versamel in 'n korreksiedataset per policy en gaan via die outomatiese cloud-sinkronisasie na jou bucket. Op hierdie punt word niks saamgevoeg nie; die korreksies is eenvoudig 'n eie dataset.
Stel die mengsel self saam
Gebruik Stel dataset saam om die trainingstel vir die volgende ronde te bou: die oorspronklike dataset plus die korreksies, met episodes eksplisiet per bron gekies. Die resultaat is 'n gewone dataset wat soos enige ander sinkroniseer en train. Niks word agter jou rug ingemeng nie, en simulasiedata word nie outomaties bygevoeg nie.
Train verder vanaf die checkpoint
Train die saamgestelde dataset met Gaan voort vanaf checkpoint in plaas daarvan om by die basismodel te begin, sodat die ronde begin by die policy wat jy pas bestuur het. Om presies te wees: dit inisialiseer die gewigte vanaf daardie checkpoint, dit is nie 'n optimizer-hervatting nie.
Wat die platform van jou hande neem
Elke item hier is 'n stap van die lus wat jy andersins self sou moes bou en onderhou.
Oorname sonder 'n leader arm
Kies sleutelbord- of skuifknop-toevoer aan die begin van die lopie, en jy kan met net 'n skootrekenaar korrigeer. Sleutelbord-stootjies word server-kant vasgeklem tot twee grade per gewrig en vier grade op die gryper; skuifknop-teikens is absoluut, en die server beweeg per oproep hoogstens ses grade daarheen. Die klemme word deur die server afgedwing, nie deur die koppelvlak nie, sodat 'n vasgehaakte sleutel nie die arm kan laat wegskiet nie.
Teleoperasie in die docsIntervensies per frame gemerk
Elke frame wat opgeneem word terwyl jy die arm vashou, dra 'n intervensie-vlag, en die action-kolom dra die volledige beveelde pose. Jy hou nie self 'n vlagkolom by nie en belyn dit nie later met frame-indekse nie.
LeRobot-datasetformaatSorteer: korreksie, evaluasie of asblik
Elke lopie kry een besluit op die stoor-kaart. Korreksielopies voed die volgende trainingsronde, evaluasielopies bly buite die training sodat hulle 'n skoon meting bly, en swak lopies verdwyn in plaas daarvan om die mengsel stilweg te vergiftig.
Sessions en episodesStel die mengsel eksplisiet saam
Die trainingstel vir ronde n stel jy self saam: oorspronklike dataset plus korreksies, episodes per bron gekies. Geen outomatiese vermenging nie, geen verskuilde simulasiedata nie, en die saamgestelde resultaat gedra soos enige ander dataset.
DatasetsTrain verder vanaf 'n checkpoint
Rig 'n trainingslopie op die checkpoint wat jy pas bestuur het in plaas van die basismodel, sodat elke ronde begin waar die vorige geëindig het. Dit inisialiseer slegs gewigte; die optimizer-toestand word nie herstel nie, en daarom is dit die moeite werd om ronde een as 'n haalbaarheidstoets te beskou.
TrainingGPU's per ronde gehuur
ACT en SmolVLA op 'n 4090, Pi0 en GR00T N1.5 of N1.7 op 'n A100 met 80 GB. Jy begin 'n ronde, die pod kom op, checkpoints beland in jou bucket, en jy betaal vir die ure wat die ronde geneem het.
GPU-pryseBeplan jou rondes
Intervensiekoers is die vorderingsmaatstaf van die lus: korrigeerde frames gedeel deur frames van die lopie. Stel waar jy begin en hoeveel elke ronde jou oplewer, en sien hoeveel rondes dit vat om te kom waar jy wil wees.
| Ronde | Intervensiekoers | Korrigeerde frames |
|---|---|---|
| 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 | |
'n Model, nie 'n voorspelling nie. Werklike rondes verloop hobbelrig, en 'n ronde wat die koers nie beweeg nie, het jou niks opgelewer nie; dit is presies die sein om op te let.
Self die lus bou teenoor dit hier laat loop
Niks hiervan is met die hand onmoontlik nie. Dit is 'n vraag van hoeveel aande in infrastruktuur gaan eerder as in rondes, en daar is een ry waar dit self doen duidelik die beter antwoord is.
| Stap van die lus | Self opstel | Op AY-Robots |
|---|---|---|
| Middel-in-die-lopie oorneem | 'n Leader arm, of jou eie kode op die servo-bus. Sleutelbord- en skuifknop-oorname, insluitend veilige grense, is iets wat jy self skryf en dan op werklike hardeware debug. | Leader arm, sleutelbord of skuifknoppies, gekies wanneer die lopie begin. Hoekklemme sit in die server. |
| Intervensies merk | Jy voeg die vlagkolom self by, hou dit belyn met die frame-indeks, en gaan dit elke keer weer na wanneer die opnameformaat verander. | Elke frame wat tydens 'n oorname opgeneem word, word outomaties gemerk, met die beveelde pose in die action-kolom. |
| Lopies sorteer | Gidskonvensies en shell-skripte. Die vasgevangde raampies rondom 'n oorhandiging moet jy self opspoor en uitfiltreer. | Een besluit per lopie op die stoor-kaart. Oorhandigingsraampies bly in die raw-gids. |
| Die gemengde dataset bou | Merge-skripte per formaatweergawe. Episode-indekse, metadata en video-verwysings konsekwent kry, is die vermoeiende deel. | Stel saam uit oorspronklike plus korreksies met episode-seleksie per bron; die resultaat is 'n gewone dataset. |
| Die volgende ronde by die laaste policy begin | Jy verbind die checkpoint self in die trainer, en jy kan ook die optimizer-toestand herstel as jy 'n ware hervatting wil hê. | Een veld vir die basis-checkpoint. Slegs gewigte: dit inisialiseer vanaf die checkpoint, dit is nie 'n optimizer-hervatting nie. |
| Beheer oor die trainingslus | Volledig. Jou loss, jou skedule, jou ablasies, jou instrumentasie, geen platform in die pad nie. As die navorsingsvraag die trainingslus self is, doen dit met die hand. | 'n Vaste pad met 'n vaste lys policies en die hiperparameters wat die vorm bied, nie arbitrêre kode nie. |
Die navorsingsartikels waarop dit gebou is
Lees hierdie voordat jy oor die lus stry. Elke skakel gaan na die abstract-bladsy, nie na 'n betaalmuur nie.
- 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)
Die oorspronklike DAgger-artikel: dit stel die opstapelende-foutprobleem, gee die T-kwadraat-grens vir die gewone toesighoudende benadering, en stel voor om data uit die toestande wat die leerder self besoek, te aggregeer.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
Die human-gated variant: die kundige besluit wanneer om oor te neem, in plaas daarvan om oor toestande wat die policy self gekies het ondervra te word; dit is die modus wat hierdie platform implementeer.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
Die ander manier om intervensies te reguleer: onenigheid binne 'n ensemble as 'n vertrouesein vir wanneer die leerder alleen mag optree. 'n Nuttige kontras met om 'n mens dit te laat beoordeel.
- 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
Behandel menslike aandag as die skaars hulpbron en vra slegs hulp by nuwe of riskante toestande; die regte raamwerk wanneer een persoon die hele middag oor die arm waak.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Die eerlike alternatief: in plaas daarvan om die policy aanlyn te korrigeer, versteur die demonstrasies sodat die kundige herstel wys. Goed om te weet voordat jy jou op intervensies vaslê.
- 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
Die kaart van die veld: watter vorme van menslike terugvoer bestaan, watter koppelvlakke dit dra, en waar intervensie in DAgger-styl daartussen inpas.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
Die ACT-artikel. Action chunking is die rede waarom 'n goedkoop arm oorhoofs deur 'n imitasie-policy bestuur kan word, en ACT is die policy waarmee 'n DAgger-ronde die vinnigste deurloop kan word.
- π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
'n Flow-matching-VLA gebou op 'n vooraf-getrainde vision-language-model, en een van die checkpoints wat jy hier kan fine-tune; die artikel stel dit uitdruklik dat nuwe vaardighede uit fine-tuning kom, nie uit die basismodel alleen nie.
Vrae wat mense werklik vra
Het ek 'n leader arm nodig vir DAgger?
Nee. Kies sleutelbord- of skuifknop-toevoer wanneer jy die lopie begin, en die oorname is vanaf die eerste frame met die hand, bestuur vanuit die blaaier. 'n Leader arm is aangenamer vir fyn beweging, en dit is die modus waarin die arm homself belyn voordat dit oorhandig, maar die lus loop ook sonder een.
Hoeveel DAgger-rondes het ek nodig?
Daar is nie 'n eerlike vaste getal nie. Let op die intervensiekoers: as dit nie van een ronde na die volgende daal nie, het daardie ronde niks opgelewer nie, en die probleem lê gewoonlik in die taakopstelling, die kameras of die oorspronklike dataset, eerder as in die aantal rondes.
Is dit werklike DAgger of iets losers?
Dit is HG-DAgger, die human-gated variant. Klassieke DAgger ondervra die kundige oor toestande wat die policy self gekies het, insluitend toestande waarin geen verstandige operateur 'n werklike arm sou laat beland nie. Hier besluit 'n mens wanneer om in te gryp, en slegs daardie segmente word etikette.
Train ek net op die korreksies?
Nee, en dit behoort jy ook nie te doen nie. As jy net op korreksies train, kry jy 'n policy wat net weet hoe om te herstel. Die saamgestelde dataset is die oorspronklike data plus die korreksies, met die episodes van elke bron eksplisiet gekies.
Hervat Gaan voort vanaf checkpoint die trainingslopie?
Dit inisialiseer die gewigte vanaf daardie checkpoint. Die optimizer-toestand word nie herstel nie, so dit is nie in die streng sin 'n hervatting nie. In die praktyk is dit die gewigte wat die geleerde gedrag oor 'n ronde heen dra, maar dit is goed om te weet watter van die twee jy kry.
Hoe word die intervensiekoers bereken?
Frames wat as intervensie gemerk is, gedeel deur die totale frames van die lopie. Dit word in die oorname-status gewys, en dit is die een syfer wat die moeite werd is om per ronde neer te skryf, saam met die checkpoint wat jy bestuur het en die mengsel wat jy getrain het.
Met watter policies kan ek hierdie lus laat loop?
ACT, SmolVLA, Pi0, en GR00T N1.5 of N1.7. Die lus self is policy-agnosties, want dit lewer net datasets en checkpoints op; die praktiese verskil lê in hoe lank 'n ronde vat en watter GPU dit nodig het.
Kan ek dit doen sonder om 'n robot te besit?
Jy kan opneem en train sonder een deur datasets op die mark te koop of operateurs te bestel, en jy kan 'n werklike SO-100 in die blaaier op die live-bladsy bestuur. 'n DAgger-ronde is anders: dit het 'n arm nodig wat jy middel-in-die-lopie kan oorneem, so vir die lus self het jy hardeware op jou eie tafel nodig.
A real SO-100, live in the browser. No signup, no hardware needed.
Laat jou eerste ronde vandeesweek loop
Installeer die kliënt, bestuur 'n checkpoint wat jy reeds het, en neem oor die eerste keer wat die arm verby die kubus gryp. Daardie een lopie is 'n DAgger-ronde in die klein: alles daarna is die mengsel saamstel en die GPU-ure betaal.