Human-gated DAgger, gennemgående

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).

200
1.0 %
Behavior cloning
400
DAgger
2.00
200×
Behavior cloning ÷ DAgger
0.000100200300400050100150200Forventet ekstraomkostning (grænse)
Opgavehorisont (skridt)

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.

01

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å.

1 af 6

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 dokumentationen

Interventioner 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ætformat

Sortering: 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 episoder

Sammensæ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æt

Videretræ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æning

GPU'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-priser

Planlæ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.

30 %
25 %
3 000
RundeInterventionsrateKorrigerede 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økkenOpsat i håndenPå AY-Robots
Overtage midt i løbetEn 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 interventionerDu 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øbeneMappekonventioner 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ætFletscripts 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 policyDu 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økkenTotal. 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.

  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)

    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.

  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

    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.

  3. 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.

  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

    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.

  5. 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.

  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

    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.

  7. 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.

  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

    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.

Drive a real arm

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.