Overtag, når policyen går galt, og træn videre på netop den rettelse.
En policy trænet med behavior cloning kender kun de tilstande, dine demonstrationer besøgte. DAgger lukker det hul med data fra de tilstande, policyen selv når frem til. AY-Robots kører hele løkken på en SO-100: kør en checkpoint, overtag midt i løbet, behold de korrigerede episoder, sammensæt blandingen, og videretræn fra den checkpoint, du lige har kørt.
- HG-DAgger, menneskestyret
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Interventionsrate pr. runde
Hvorfor en trænet policy gør noget, der aldrig blev demonstreret
Behavior cloning behandler regulering som almindelig superviseret læring: observation ind, ledmål ud, tilpasset de frames et menneske har optaget. Det holder kun, så længe robotten bliver på de tilstande, mennesket besøgte, og det gør den ikke. En gribetang, der lukker fyrre millisekunder for tidligt, skubber kuben to millimeter væk fra den demonstrerede position. Den næste observation findes ikke i træningssættet, så handlingen dér er en ekstrapolation, og tilstanden derefter ligger endnu længere udenfor. Træningsfordelingen og den fordeling, den lærte policy rent faktisk frembringer, er to forskellige ting, og den anden fjerner sig fra den første, efterhånden som episoden skrider frem.
Ross, Gordon og Bagnell beskrev netop dette reduktionsproblem i 2011 og satte tal på skaden: en klassifikator, der fejler med sandsynlighed e under ekspertfordelingen, kan under sin egen fordeling begå i størrelsesordenen T i anden potens gange e fejl over en horisont på T skridt, fordi én fejl frembringer observationer, eksperten aldrig genererede, og fejlene dermed lægger sig oveni hinanden. Deres løsning er algoritmen, denne side handler om: kør den aktuelle policy, saml ekspertlabels for de tilstande, den besøger, læg dem sammen med alt, der allerede er indsamlet, træn igen, gentag. Flere demonstrationer af samme slags hjælper ikke, for de trækker fra samme fordeling. Labels fra de tilstande, policyen selv når frem til, gør. Varianten, der er implementeret her, er menneskestyret (HG-DAgger, Kelly et al.): policyen beholder kontrollen, indtil en person afgør, at det går galt, og overtager, så rettelser kun opstår dér, hvor de er nødvendige, og armen bliver aldrig bedt om at køre ind i en tilstand, operatøren ikke ville tillade.
- Behavior cloning gælder kun for den tilstandsfordeling, det er trænet på.
- Fejlen forstærker sig selv: en lille afvigelse skaber en ukendt tilstand, som skaber en større afvigelse.
- Løsningen er ikke flere demonstrationer, men labels fra de tilstande, policyen selv når frem til.
- Menneskestyret betyder, at operatøren afgør, hvornår der gribes ind, ikke en autonomiscore.
Hvorfor fejlen lægger sig oveni hinanden
Træk i horisonten. Under behavior cloning vokser den forventede ekstraomkostning nogenlunde med kvadratet på antallet af skridt, fordi hver fejl skaber tilstande, demonstrationerne aldrig dækkede; en aggregeringsløkke holder væksten tæt på lineær (Ross et al., 2011).
Illustrerende kurver ud fra grænserne i Ross et al. (2011), ikke målinger fra din robot. Det handler om formen, ikke om tallene.
Én DAgger-runde i seks trin
Sådan kører løkken faktisk på platformen, ikke som et skema. Hvert trin herunder svarer til et betjeningselement i cockpittet.
Gennemgå løkken
De samme seks trin, ét ad gangen, med hvad der sker på armen og i datasættet ved hvert af dem.
Kør policyen og optag den
Start et inferensløb mod en checkpoint, du selv har trænet. Løbet optages undervejs, med selve løbets opgavetekst, så frames senere kan bruges som træningsdata i stedet for blot at være en video, man kan se på.
Overtag og korriger
Så snart armen gør det forkerte: tryk Overtag. Runneren sætter på pause, og armen er din. Med en leader-arm kører den først til follower-positionen og overdrager derefter; med tastatur- eller slider-input, valgt ved løbets start, er overtagelsen manuel med det samme. Korriger bevægelsen, giv derefter kontrollen tilbage til policyen. Frames optaget under overtagelsen markeres automatisk som intervention.
Sorter løbet
Beslut for hvert løb, hvad det var: gem det som en korrektion, behold det som et evalueringsløb, eller kassér det. Fryseframene omkring en overdragelse bliver i raw-mappen og kommer aldrig ind i datasættet.
Synkroniser korrektionsdatasættet
Korrektioner samles i et korrektionsdatasæt pr. policy og går til din bucket via den automatiske cloud-synkronisering. På dette tidspunkt bliver intet flettet sammen; korrektionerne er blot deres eget datasæt.
Sammensæt blandingen selv
Brug Sammensæt datasæt til at bygge træningssættet til næste runde: det oprindelige datasæt plus korrektionerne, med episoder valgt eksplicit pr. kilde. Resultatet er et almindeligt datasæt, der synkroniseres og trænes som ethvert andet. Intet blandes ind i baggrunden, og der tilføjes ikke simuleringsdata automatisk.
Videretræn fra checkpointen
Træn det sammensatte datasæt med Videretræn fra checkpoint i stedet for at starte fra basismodellen, så runden begynder ved den policy, du lige har kørt. Vær præcis om, hvad dette er: det initialiserer vægtene fra den checkpoint, det er ikke en optimizer-resume.
Det platformen tager af dine hænder
Hvert punkt her er et trin i løkken, du ellers selv skulle bygge og vedligeholde.
Overtagelse uden leader-arm
Vælg tastatur- eller slider-input ved løbets start, så er en bærbar nok til at korrigere med. Tastatur-nudges klemmes serverside til to grader pr. led og fire på griberen; slider-mål er absolutte, og serveren flytter højst seks grader mod dem pr. kald. Klemmerne håndhæves af serveren, ikke af brugerfladen, så en hængende tast kan ikke kaste armen af sted.
Teleoperation i dokumentationenInterventioner markeret pr. frame
Hvert frame, der optages, mens du holder armen, bærer et interventionsflag, og action-kolonnen indeholder den fulde kommanderede position. Du vedligeholder ikke selv en flag-kolonne eller retter den ind efter frame-indekser bagefter.
LeRobot-datasætformatSortering: korrektion, evaluering eller skraldespand
Hvert løb får én beslutning på gem-kortet. Korrektionsløb føder næste træningsrunde, evalueringsløb holdes ude af træningen, så de forbliver en ren måling, og dårlige løb forsvinder i stedet for stille at forgifte blandingen.
Sessioner og episoderSammensæt blandingen eksplicit
Træningssættet for runde n samles af dig: oprindeligt datasæt plus korrektioner, episoder valgt pr. kilde. Ingen automatisk blanding, ingen skjulte simuleringsdata, og det sammensatte resultat opfører sig som ethvert andet datasæt.
DatasætVideretræn fra en checkpoint
Ret et træningsløb mod den checkpoint, du lige har kørt, i stedet for basismodellen, så hver runde starter, hvor den sidste sluttede. Det initialiserer kun vægte; optimizer-tilstanden genskabes ikke, hvorfor runde ét er værd at behandle som en gennemførlighedstest.
TræningGPU'er lejet pr. 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 går op, checkpoints lander i din bucket, og du betaler for de timer, runden tog.
GPU-priserPlanlæg dine runder
Interventionsraten er løkkens fremskridtsmål: korrigerede frames divideret med frames i løbet. Sæt, hvor du starter, og hvor meget hver runde giver, og se, hvor mange runder der skal til for at nå målet.
| Runde | Interventionsrate | Korrigerede 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 | |
En model, ikke en prognose. Rigtige runder forløber ujævnt, og en runde, der ikke flytter raten, har ikke givet noget; det er præcis det signal, det er værd at holde øje med.
At bygge løkken selv versus at køre den her
Intet af dette er umuligt i hånden. Det er et spørgsmål om, hvor mange aftener der går til rørlægning i stedet for runder, og der er én række, hvor det klart er bedre selv at gøre det.
| Trin i løkken | Opsat i hånden | På AY-Robots |
|---|---|---|
| Overtage midt i løbet | En leader-arm eller din egen kode på servo-bussen. Tastatur- og slider-overtagelse, inklusive sikre grænser, er noget du skriver og derefter fejlfinder på ægte hardware. | Leader-arm, tastatur eller slider, valgt når løbet starter. Vinkelklemmer sidder i serveren. |
| Markere interventioner | Du tilføjer flag-kolonnen, holder den justeret til frame-indekset og tjekker den igen, hver gang optageformatet ændrer sig. | Hvert frame optaget under en overtagelse markeres automatisk, med den kommanderede position i action-kolonnen. |
| Sortere løbene | Mappekonventioner og shell-scripts. Fryseframene omkring en overdragelse skal du selv finde og filtrere fra. | Én beslutning pr. løb på gem-kortet. Overdragelsesframes bliver i raw-mappen. |
| Bygge det blandede datasæt | Fletscripts pr. formatversion. At holde episodeindekser, metadata og videoreferencer konsistente er det trælse arbejde. | Sammensæt fra original plus korrektioner med episodevalg pr. kilde; resultatet er et normalt datasæt. |
| Starte næste runde fra den seneste policy | Du forbinder selv checkpointen til traineren og kan også genskabe optimizer-tilstanden, hvis du vil have en ægte genoptagelse. | Ét felt til basis-checkpointen. Kun vægte: initialiserer fra checkpointen, det er ikke en optimizer-resume. |
| Kontrol over træningsløkken | Total. Dit eget loss, din egen tidsplan, dine egne ablationer, din egen instrumentering, ingen platform i vejen. Hvis forskningsspørgsmålet er selve træningsløkken, gør det i hånden. | En fast vej med en fastlagt liste af policies og de hyperparametre, formularen tilbyder, ikke vilkårlig kode. |
Arbejderne, dette bygger på
Læs disse, før du diskuterer løkken. Hvert link går til abstract-siden, ikke bag 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 oprindelige DAgger-artikel: den beskriver problemet med akkumulerende fejl, giver T-i-anden-grænsen for den rent superviserede tilgang og foreslår at aggregere data fra de tilstande, eleven selv besøger.
- 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 menneskestyrede variant: eksperten afgør, hvornår der overtages, i stedet for at blive spurgt om tilstande, policyen selv har valgt; det er netop den model, denne platform implementerer.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
Den anden måde at styre indgreb på: uenighed i et ensemble som tillidssignal for, hvornår eleven må handle alene. Nyttig kontrast til at lade en person afgø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 opmærksomhed som den knappe ressource og beder kun om hjælp ved nye eller risikable tilstande, hvilket er den rette ramme, når én person overvåger armen en hel eftermiddag.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Det ærlige alternativ: i stedet for at korrigere policyen løbende forstyrres demonstrationerne, så eksperten viser, hvordan man kommer tilbage på sporet. Værd at kende, før man forpligter sig til indgreb.
- 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
Kortet over feltet: hvilke former for menneskelig feedback der findes, hvilke grænseflader der bærer dem, og hvor DAgger-lignende indgreb passer ind imellem dem.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
ACT-artiklen. Action chunking er grunden til, at en billig arm overhovedet kan styres af en imitationspolicy, og ACT er den policy, det går hurtigst at gennemføre 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 forudtrænet vision-sprog-model, og en af de checkpoints, du kan finjustere her; artiklen er eksplicit om, at nye færdigheder kommer fra finjustering, ikke fra basismodellen alene.
Spørgsmål folk faktisk stiller
Skal jeg bruge en leader-arm til DAgger?
Nej. Vælg tastatur- eller slider-input, når du starter løbet, så er overtagelsen manuel fra første frame, styret fra browseren. En leader-arm er behageligere til fine bevægelser, og det er den eneste tilstand, hvor armen retter sig selv ind, før den overdrager; men løkken kører også uden.
Hvor mange DAgger-runder skal jeg bruge?
Der findes ikke et ærligt fast tal. Hold øje med interventionsraten: falder den ikke fra én runde til den næste, har den runde ikke givet noget, og problemet ligger som regel i opgaveopsætningen, kameraerne eller det oprindelige datasæt snarere end i antallet af runder.
Er dette ægte DAgger eller noget løsere?
Det er HG-DAgger, den menneskestyrede variant. Klassisk DAgger spørger eksperten om tilstande, policyen selv har valgt, herunder tilstande, ingen fornuftig operatør ville lade en rigtig arm nå. Her afgør en person, hvornår der gribes ind, og kun de segmenter bliver til labels.
Træner jeg kun på korrektionerne?
Nej, og det bør du heller ikke. Trænes der kun på korrektioner, får du en policy, der kun kan komme tilbage på sporet. Det sammensatte datasæt er de oprindelige data plus korrektionerne, med episoderne fra hver kilde valgt eksplicit.
Fortsætter Videretræn fra checkpoint selve træningsløbet?
Det initialiserer vægtene fra den checkpoint. Optimizer-tilstanden genskabes ikke, så det er ikke en genoptagelse i streng forstand. I praksis er det vægtene, der bærer den lærte adfærd videre gennem en runde, men det er værd at vide, hvilken af de to man får.
Hvordan beregnes interventionsraten?
Frames markeret som intervention divideret med det samlede antal frames i løbet. Den vises i overtagelsesstatussen, og det er det ene tal, det er værd at notere pr. runde, sammen med den checkpoint, du kørte, og den blanding, du trænede.
Hvilke policies kan jeg køre denne løkke med?
ACT, SmolVLA, Pi0 samt GR00T N1.5 eller N1.7. Løkken selv er policy-agnostisk, fordi den kun producerer datasæt og checkpoints; den praktiske forskel ligger i, hvor lang tid en runde tager, og hvilken GPU den kræver.
Kan jeg gøre dette uden at eje en robot?
Du kan optage og træne uden en robot ved at købe datasæt på markedspladsen eller ved at hyre operatører, og du kan køre en rigtig SO-100 i browseren på live-siden. En DAgger-runde er noget andet: den kræver en arm, du kan overtage midt i løbet, så til selve løkken skal du have hardware på dit eget bord.
A real SO-100, live in the browser. No signup, no hardware needed.
Kør din første runde denne uge
Installer klienten, kør en checkpoint, du allerede har, og overtag første gang armen griber forbi kuben. Dét ene løb er en DAgger-runde i miniature: alt derefter handler om at sammensætte blandingen og betale for GPU-timerne.