Ta over når policyen bommer, og tren videre på akkurat den korrigeringen.
En policy trent med behavior cloning kjenner bare tilstandene demonstrasjonene dine besøkte. DAgger tetter dette gapet med data fra tilstandene policyen selv når. AY-Robots kjører hele løkken på en SO-100: styr en checkpoint, ta over midt i kjøringen, behold de korrigerte episodene, sett sammen blandingen, og fortsett treningen fra checkpointen du nettopp kjørte.
- HG-DAgger, menneskestyrt
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Intervensjonsrate per runde
Hvorfor en trent policy gjør noe som aldri ble demonstrert
Behavior cloning behandler regulering som vanlig veiledet læring: observasjon inn, leddmål ut, tilpasset på bildene et menneske spilte inn. Det holder bare så lenge roboten blir værende på tilstandene mennesket besøkte, og det gjør den ikke. En gripeklo som lukker seg førti millisekunder for tidlig, skyver kuben to millimeter ut av sin demonstrerte posisjon. Neste observasjon er en treningssettet ikke inneholder, så handlingen der er en ekstrapolering, og tilstanden etter det ligger enda lenger utenfor. Treningsfordelingen og fordelingen den lærte policyen faktisk skaper, er to forskjellige ting, og den andre driver stadig lenger bort fra den første etter hvert som episoden løper.
Ross, Gordon og Bagnell beskrev nettopp denne svikten i 2011 og tallfestet skaden: en klassifikator som feiler med sannsynlighet e under ekspertfordelingen, kan gjøre i størrelsesorden kvadratet av T ganger e feil over en horisont på T steg under fordelingen den selv skaper, fordi én feil produserer observasjoner eksperten aldri genererte, og feilene forsterker hverandre. Løsningen deres er algoritmen denne siden handler om: kjør den nåværende policyen, samle ekspertlabels for tilstandene den besøker, slå dem sammen med alt som er samlet så langt, tren på nytt, gjenta. Flere demonstrasjoner av samme type hjelper ikke, fordi de bare trekker fra samme fordeling på nytt. Labels fra tilstandene policyen når, hjelper. Varianten som er implementert her, er menneskestyrt (HG-DAgger, Kelly et al.): policyen beholder kontrollen til en person avgjør at det går galt og tar over, slik at korrigeringer bare oppstår der de trengs, og armen blir aldri bedt om å kjøre inn i en tilstand operatøren ikke ville tillatt.
- Behavior cloning er bare gyldig på tilstandsfordelingen den ble trent på.
- Feilen forsterker seg selv: et lite avvik skaper en ukjent tilstand, som skaper et større avvik.
- Middelet er ikke flere demonstrasjoner, men labels fra tilstandene policyen selv når.
- Menneskestyrt betyr at operatøren avgjør når det skal gripes inn, ikke en autonomiscore.
Hvorfor feilen akkumuleres
Dra i horisonten. Under behavior cloning vokser den forventede ekstrakostnaden omtrent med kvadratet av antall steg, fordi hver feil skaper tilstander demonstrasjonene aldri dekket; en aggregeringsløkke holder veksten nær lineær (Ross et al., 2011).
Illustrative kurver fra skrankene i Ross et al. (2011), ikke målinger fra din robot. Poenget er formen, ikke tallene.
Én DAgger-runde, seks steg
Dette er løkken slik plattformen faktisk kjører den, ikke et skjema. Hvert steg under tilsvarer en kontroll i cockpiten.
Gå gjennom løkken
De samme seks stegene, ett om gangen, med det som skjer på armen og i datasettet ved hvert av dem.
Kjør policyen og ta opp
Start en inferenskjøring mot en checkpoint du har trent. Kjøringen tas opp mens den skjer, sammen med oppgaveteksten for selve kjøringen, slik at bildene kan brukes som treningsdata etterpå i stedet for å bare være en video du kan se på.
Ta over og korriger
Idet armen gjør noe feil: trykk Ta over. Runneren pauser, og armen er din. Med en leader-arm kjører den først til follower-posen og overleverer kontrollen; med tastatur- eller slider-inndata, valgt ved start av kjøringen, er overtakelsen manuell med én gang. Korriger bevegelsen, og gi deretter kontrollen tilbake til policyen. Bilder tatt opp under overtakelsen merkes automatisk som intervensjon.
Sorter kjøringen
Avgjør for hver kjøring hva den var: arkiver den som en korrigering, behold den som en evalueringskjøring, eller forkast den. Stillbildene rundt en overlevering blir liggende i raw-mappen og havner aldri i datasettet.
Synk korrigeringsdatasettet
Korrigeringer samles i et eget korrigeringsdatasett per policy og går til din bucket via den automatiske sky-synkroniseringen. Ingenting slås sammen med noe på dette punktet; korrigeringene er rett og slett et eget datasett.
Sett sammen blandingen selv
Bruk Sett sammen datasett til å bygge treningssettet for neste runde: det opprinnelige datasettet pluss korrigeringene, med episoder valgt eksplisitt per kilde. Resultatet er et helt vanlig datasett som synker og trener som ethvert annet. Ingenting blandes inn bak ryggen din, og ingen simuleringsdata legges til automatisk.
Fortsett treningen fra checkpointen
Tren det sammensatte datasettet med Fortsett fra checkpoint i stedet for å starte fra basismodellen, slik at runden begynner ved policyen du nettopp kjørte. Vær presis på hva dette er: det initialiserer vektene fra denne checkpointen, det er ikke en gjenopptagelse av optimizeren.
Det plattformen tar unna for deg
Hvert punkt her er et steg i løkken du ellers måtte bygge og vedlikeholde selv.
Overtakelse uten leader-arm
Velg tastatur- eller slider-inndata ved start av kjøringen, så holder det med en bærbar PC for å korrigere. Tastatur-dytt klemmes på serversiden til to grader per ledd og fire grader på griperen; slider-mål er absolutte, og serveren beveger seg høyst seks grader mot dem per kall. Klemmingen håndheves av serveren, ikke av grensesnittet, så en fastlåst tast kan ikke kaste armen ut av kurs.
Teleoperasjon i dokumentasjonenIntervensjoner merket per bilde
Hvert bilde som tas opp mens du holder armen, har et intervensjonsflagg, og action-kolonnen inneholder hele den kommanderte posen. Du trenger ikke vedlikeholde en flaggkolonne for hånd eller rette den mot bildeindekser i ettertid.
LeRobot-datasettformatSortering: korrigering, evaluering eller kast
Hver kjøring får én avgjørelse på lagre-kortet. Korrigeringskjøringer mater neste treningsrunde, evalueringskjøringer holdes utenfor treningen slik at de forblir en ren måling, og mislykkede kjøringer forsvinner i stedet for å stille forgifte blandingen.
Sesjoner og episoderSett sammen blandingen eksplisitt
Treningssettet for runde n setter du sammen selv: opprinnelig datasett pluss korrigeringer, med episoder valgt per kilde. Ingen automatisk blanding, ingen skjulte simuleringsdata, og det sammensatte resultatet oppfører seg som ethvert annet datasett.
DatasettFortsett fra en checkpoint
Rett en treningskjøring mot checkpointen du nettopp kjørte, i stedet for basismodellen, slik at hver runde starter der den forrige sluttet. Bare vektene initialiseres; optimizer-tilstanden gjenopprettes ikke, og derfor er det lurt å behandle runde én som en gjennomførbarhetstest.
TreningGPU-er leid per runde
ACT og SmolVLA på en 4090, Pi0 og GR00T N1.5 eller N1.7 på en A100 med 80 GB. Du starter en runde, poden kommer opp, checkpoints havner i din bucket, og du betaler for timene runden tok.
GPU-priserPlanlegg rundene dine
Intervensjonsrate er løkkens fremdriftsmål: korrigerte bilder delt på antall bilder i kjøringen. Sett hvor du starter og hvor mye hver runde gir deg, og se hvor mange runder som trengs for å nå målet.
| Runde | Intervensjonsrate | Korrigerte bilder |
|---|---|---|
| 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 | |
En modell, ikke en prognose. Ekte runder er ujevne, og en runde som ikke flytter raten, har ikke gitt deg noe; det er nettopp det signalet som er verdt å følge med på.
Å bygge løkken selv versus å kjøre den her
Ingenting av dette er umulig for hånd. Det er et spørsmål om hvor mange kvelder som går med til rørlegging i stedet for runder, og det finnes én rad der å gjøre det selv er klart det beste svaret.
| Steg i løkken | Satt opp for hånd | Med AY-Robots |
|---|---|---|
| Å ta over midt i kjøringen | En leader-arm, eller egen kode på servobussen. Tastatur- og slider-overtakelse, inkludert sikre grenser, må du skrive selv og feilsøke på ekte maskinvare. | Leader-arm, tastatur eller slidere, valgt når kjøringen starter. Vinkelklemmene sitter i serveren. |
| Å merke intervensjoner | Du legger til flaggkolonnen selv, holder den justert mot bildeindeksen, og sjekker den på nytt hver gang opptaksformatet endres. | Hvert bilde tatt opp under en overtakelse merkes automatisk, med den kommanderte posen i action-kolonnen. |
| Å sortere kjøringene | Mappekonvensjoner og shell-skript. Stillbildene rundt en overlevering må du selv finne og filtrere bort. | Én avgjørelse per kjøring på lagre-kortet. Overleveringsbilder blir liggende i raw-mappen. |
| Å bygge det blandede datasettet | Sammenslåingsskript per formatversjon. Å få episodeindekser, metadata og videoreferanser til å stemme, er den kjedelige delen. | Sett sammen fra original pluss korrigeringer med episodeutvalg per kilde; resultatet er et vanlig datasett. |
| Å starte neste runde fra siste policy | Du kobler checkpointen inn i treneren selv, og kan også gjenopprette optimizer-tilstanden hvis du vil ha en ekte gjenopptagelse. | Ett felt for basis-checkpointen. Bare vekter: den initialiserer fra checkpointen, det er ingen optimizer-gjenopptagelse. |
| Kontroll over treningsløkken | Total. Din loss, din tidsplan, dine ablasjoner, din instrumentering, ingen plattform i veien. Hvis forskningsspørsmålet er selve treningsløkken, gjør det for hånd. | En fast vei med en fastsatt liste over policyer og hyperparameterne skjemaet eksponerer, ikke vilkårlig kode. |
Arbeidene dette bygger på
Les disse før du diskuterer løkken. Hver lenke går til abstract-siden, ikke bak en betalingsmur.
- 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)
Den opprinnelige DAgger-artikkelen: den formulerer problemet med akkumulerende feil, gir T-kvadrat-skranken for den rent veiledede tilnærmingen, og foreslår å aggregere data fra tilstandene læreren selv besøker.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
Den menneskestyrte varianten: eksperten avgjør selv når hen tar kontroll, i stedet for å bli spurt om tilstander policyen valgte; dette er modusen plattformen implementerer.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
Den andre måten å styre intervensjoner på: uenighet i et ensemble som et tillitssignal for når læreren kan handle alene. Et nyttig kontrastpunkt til å la et menneske avgjøre det.
- 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
Behandler menneskelig oppmerksomhet som den knappe ressursen og ber om hjelp bare ved nye eller risikable tilstander; riktig innfallsvinkel når én person overvåker armen en hel ettermiddag.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Det ærlige alternativet: i stedet for å korrigere policyen underveis, forstyrres demonstrasjonene slik at eksperten viser gjenoppretting. Verdt å kjenne til før man forplikter seg til intervensjoner.
- 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
Kartet over feltet: hvilke former for menneskelig tilbakemelding som finnes, hvilke grensesnitt som formidler dem, og hvor intervensjon i DAgger-stil hører hjemme blant dem.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
ACT-artikkelen. Action chunking er grunnen til at en billig arm i det hele tatt kan styres av en imitasjonspolicy, og ACT er den raskeste policyen å iterere en DAgger-runde med.
- π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
En flow-matching VLA bygget på en forhåndstrent vision-language-modell, og en av checkpointene du kan gjøre fine-tuning på her; artikkelen er tydelig på at nye ferdigheter kommer fra fine-tuning, ikke fra basismodellen alene.
Spørsmål folk faktisk stiller
Trenger jeg en leader-arm for DAgger?
Nei. Velg tastatur- eller slider-inndata når du starter kjøringen, så er overtakelsen manuell fra første bilde, styrt fra nettleseren. En leader-arm er mer behagelig for fine bevegelser, og det er den eneste modusen der armen justerer seg selv før overleveringen, men løkken fungerer også uten.
Hvor mange DAgger-runder trenger jeg?
Det finnes ikke noe ærlig, fast tall. Følg med på intervensjonsraten: faller den ikke fra én runde til den neste, har den runden ikke gitt deg noe, og problemet ligger som regel i oppgaveoppsettet, kameraene eller det opprinnelige datasettet, ikke i antall runder.
Er dette ekte DAgger eller noe løsere?
Det er HG-DAgger, den menneskestyrte varianten. Klassisk DAgger spør eksperten om tilstander policyen valgte, inkludert tilstander ingen fornuftig operatør ville latt en ekte arm nå. Her avgjør en person når det skal gripes inn, og bare de segmentene blir til labels.
Trener jeg bare på korrigeringene?
Nei, og det bør du heller ikke gjøre. Å trene bare på korrigeringer gir deg en policy som bare kan finne veien tilbake. Det sammensatte datasettet er de opprinnelige dataene pluss korrigeringene, med episodene fra hver kilde valgt eksplisitt.
Fortsetter treningskjøringen når man fortsetter fra en checkpoint?
Det initialiserer vektene fra denne checkpointen. Optimizer-tilstanden gjenopprettes ikke, så det er strengt tatt ingen gjenopptagelse. I praksis er det vektene som bærer den lærte oppførselen videre over en runde, men det er verdt å vite hvilket av de to man får.
Hvordan beregnes intervensjonsraten?
Bilder merket som intervensjon delt på det totale antallet bilder i kjøringen. Den vises i overtakelsesstatusen, og er det ene tallet som er verdt å notere per runde, ved siden av checkpointen du kjørte og blandingen du trente på.
Hvilke policyer kan jeg kjøre denne løkken med?
ACT, SmolVLA, Pi0, og GR00T N1.5 eller N1.7. Løkken selv er policy-uavhengig, siden den bare produserer datasett og checkpoints; den praktiske forskjellen ligger i hvor lang tid en runde tar og hvilken GPU den trenger.
Kan jeg gjøre dette uten å eie en robot?
Du kan ta opp og trene uten å eie en robot, ved å kjøpe datasett på markedsplassen eller sette bort oppgaven til operatører, og du kan styre en ekte SO-100 i nettleseren på live-siden. En DAgger-runde er noe annet: den krever en arm du kan ta over midt i kjøringen, så til selve løkken vil du ha maskinvare på ditt eget bord.
A real SO-100, live in the browser. No signup, no hardware needed.
Kjør din første runde denne uken
Installer klienten, kjør en checkpoint du allerede har, og ta over første gang armen bommer forbi kuben. Denne ene kjøringen er en DAgger-runde i miniatyr: alt etterpå er å sette sammen blandingen og betale for GPU-timene.