Võta üle, kui policy eksib, ja treeni just selle parandusega edasi.
Behavior cloninguga treenitud policy tunneb ainult neid olekuid, mida sinu demonstratsioonid läbisid. DAgger täidab selle lünga andmetega olekutest, kuhu policy ise jõuab. AY-Robots käivitab kogu tsükli SO-100 peal: sõida checkpointi, võta keset jooksu üle, hoia parandatud episoodid alles, pane kokku segu ja treeni edasi täpselt sellest checkpointist, mida äsja sõitsid.
- HG-DAgger, inimjuhitud
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Sekkumismäär iga vooru kohta
Miks treenitud policy teeb midagi, mida kunagi ei demonstreeritud
Behavior cloning käsitleb juhtimist tavalise juhendatud õppena: sisse läheb vaatlus, välja tuleb liigese sihtväärtus, sobitatuna kaadritega, mille inimene salvestas. See kehtib ainult seni, kuni robot püsib olekutes, kus see inimene käis, aga nii see ei lähe. Haaraja, mis sulgub nelikümmend millisekundit liiga vara, lükkab kuubikut kaks millimeetrit demonstreeritud asendist kõrvale. Järgmine vaatlus on selline, mida treeningandmestik ei sisalda, seega on seal tehtav tegevus ekstrapolatsioon, ning sellele järgnev olek jääb veelgi kaugemale. Treeningjaotus ja jaotus, mille õpitud policy tegelikult tekitab, on kaks erinevat asja, ning teine eemaldub episoodi kestel esimesest üha enam.
Ross, Gordon ja Bagnell kirjeldasid täpselt seda taandamise viga 2011. aastal ja arvutasid kahju suuruse: klassifikaator, mis eksib eksperdi jaotuse all tõenäosusega e, võib T-sammulise horisondi jooksul enda tekitatud jaotuse all teha suurusjärgus T ruudus korda e viga, sest üks viga tekitab vaatlusi, mida ekspert kunagi ei tekitanud, ja vead kuhjuvad. Nende lahendus on algoritm, millest see leht räägib: sõida praeguse policy'ga, kogu eksperdi märgendid olekute kohta, kuhu see jõuab, liida need kokku kõigega, mis seni kogutud, treeni uuesti, korda. Samalaadsed demonstratsioonid rohkem ei aita, sest need ammutavad sama jaotust. Märgendid olekutest, kuhu policy jõuab, aitavad. Siin rakendatud variant on inimjuhitud (HG-DAgger, Kelly et al.): policy hoiab kontrolli, kuni inimene otsustab, et asi läheb valesti, ja võtab üle, nii et parandused tekivad ainult seal, kus neid vaja on, ning käsivart ei saadeta kunagi olekusse, mida operaator ei lubaks.
- Behavior cloning kehtib ainult jaotusel, millel see treeniti.
- Viga võimendab iseennast: väike hälve tekitab tundmatu oleku, mis tekitab suurema hälbe.
- Ravim ei ole rohkem demonstratsioone, vaid märgendid olekutest, kuhu policy ise jõuab.
- Inimjuhitud tähendab, et operaator otsustab, millal sekkuda, mitte mingi autonoomiaskoor.
Miks viga kuhjub
Lohista horisonti. Behavior cloning'i puhul kasvab oodatav lisakulu ligikaudu sammude arvu ruuduga, sest iga viga tekitab olekuid, mida demonstratsioonid kunagi ei katnud; agregeerimistsükkel hoiab kasvu peaaegu lineaarsena (Ross et al., 2011).
Illustreerivad kõverad Ross et al. (2011) piirväärtuste põhjal, mitte sinu roboti mõõtmised. Oluline on kuju, mitte arvud.
Üks DAggeri voor kuues sammus
Nii see tsükkel platvormil tegelikult töötab, mitte skeem. Iga allolev samm vastab ühele juhtelemendile kokpitis.
Käi tsükkel läbi
Samad kuus sammu, ükshaaval, koos sellega, mis igal neist käsivarrel ja andmestikus toimub.
Käivita policy ja salvesta see
Käivita inferentsijooks enda treenitud checkpointi vastu. Jooks salvestatakse toimumise ajal koos jooksu enda ülesandetekstiga, nii et kaadrid sobivad hiljem treeningandmeteks, mitte ei jää lihtsalt videoks, mida saab ainult vaadata.
Võta üle ja paranda
Niipea kui käsivars teeb valesti, vajuta Võta üle. Runner peatub ja käsivars on sinu. Leader armiga sõidab see kõigepealt followeri asendisse ja annab siis kontrolli üle; klaviatuuri või slideritega sisestuse puhul, mis valitakse jooksu alguses, on ülevõtmine kohe käsitsi. Paranda liikumine ja anna kontroll seejärel tagasi policy'le. Ülevõtmise ajal salvestatud kaadrid märgistatakse automaatselt interventsioonina.
Vaata jooks üle
Otsusta iga jooksu kohta, mis see oli: talleta see parandusena, jäta alles hindamisjooksuna või viska ära. Üleandmise ümber olevad seisukaadrid jäävad raw-kataloogi ega jõua kunagi andmestikku.
Sünkroniseeri parandusandmestik
Parandused kogunevad iga policy enda parandusandmestikku ja lähevad automaatse pilvesünki kaudu sinu bucketisse. Selles etapis ei liideta veel midagi millegagi; parandused on lihtsalt omaette andmestik.
Pane segu ise kokku
Kasuta funktsiooni Pane andmestik kokku, et ehitada järgmise vooru treeningkomplekt: algne andmestik pluss parandused, episoodid valitud selgesõnaliselt allika kaupa. Tulemus on tavaline andmestik, mis sünkroonib ja treenib nagu iga teine. Midagi ei segata sisse su selja taga ning simulatsiooniandmeid ei lisata automaatselt.
Treeni edasi checkpointist
Treeni kokkupandud andmestikku funktsiooniga Jätka checkpointist, mitte alusmudelist, nii et voor algab täpselt sellest policy'st, mida äsja sõitsid. Ole täpne selle olemuse suhtes: see lähtestab kaalud sellest checkpointist, see ei ole optimeerija jätkamine (resume).
Mida platvorm sinu käest ära võtab
Iga siinne punkt on tsükli samm, mille sa muidu peaksid ise ehitama ja hooldama.
Ülevõtmine ilma leader armita
Vali jooksu alguses klaviatuuri või slideri sisestus, ja saad parandada ainuüksi sülearvutiga. Klaviatuuri nügimised on serveripoolselt piiratud kahe kraadiga liigese kohta ja nelja kraadiga haarajal; slideri sihtväärtused on absoluutsed ning server liigub nende suunas maksimaalselt kuus kraadi kutse kohta. Piirangud kehtestab server, mitte kasutajaliides, nii et kinnijäänud klahv ei saa käsivart visata.
Teleoperatsiooni dokumentatsioonInterventsioonid märgitud kaadri kaupa
Iga kaader, mis salvestatakse ajal, mil käsivars on sinu käes, kannab interventsioonimärget, ja action-veerg sisaldab täielikku käsutatud asendit. Sa ei pea märgeveergu käsitsi hooldama ega hiljem kaadriindeksitega joondama.
LeRoboti andmestiku formaatSorteerimine: parandus, hindamine või prügikast
Iga jooks saab salvestamiskaardil ühe otsuse. Parandusjooksud toidavad järgmist treeningvooru, hindamisjooksud jäävad treeningust välja ja püsivad seetõttu puhta mõõtmisena, ning ebaõnnestunud jooksud kaovad, selle asemel et segu vaikselt rikkuda.
Sessioonid ja episoodidPane segu kokku selgesõnaliselt
Vooru n treeningkomplekti paned kokku sina: algne andmestik pluss parandused, episoodid valitud allika kaupa. Automaatset segamist ei toimu, varjatud simulatsiooniandmeid ei ole, ja kokkupandud tulemus käitub nagu iga teine andmestik.
AndmestikudJätka checkpointist
Suuna treeningjooks alusmudeli asemel checkpointi peale, mida äsja sõitsid, nii et iga voor algab sealt, kuhu eelmine lõppes. See lähtestab ainult kaalud; optimeerija olekut ei taastata, mistõttu tasub esimest vooru käsitleda teostatavuse testina.
TreeningGPU-d renditakse vooru kaupa
ACT ja SmolVLA 4090-l, Pi0 ning GR00T N1.5 või N1.7 80 GB A100-l. Käivitad vooru, pod tõuseb üles, checkpointid maanduvad sinu bucketisse, ja maksad tundide eest, mis voor võttis.
GPU hinnadPlaneeri oma voorud
Sekkumismäär on tsükli edenemise mõõdik: parandatud kaadrid jagatud jooksu kaadritega. Sea, kust alustad ja kui palju iga voor sulle annab, ning vaata, mitu vooru kulub sinnani, kuhu tahad jõuda.
| Voor | Sekkumismäär | Parandatud kaadrid |
|---|---|---|
| 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 | |
Mudel, mitte prognoos. Päris voorud kulgevad tõmblevalt, ja voor, mis määra ei liiguta, ei ole midagi andnud; just seda tasub jälgida.
Tsükli ise ehitamine versus siin käivitamine
Midagi siin ei ole käsitsi tehtuna võimatu. Küsimus on, mitu õhtut kulub torustiku peale voorude asemel, ja on üks rida, kus omal käel tegemine on selgelt parem vastus.
| Tsükli samm | Käsitsi üles seatuna | AY-Robotsil |
|---|---|---|
| Keset jooksu ülevõtmine | Leader arm või oma kood servobussil. Klaviatuuri ja slideriga ülevõtmise, sh turvalised piirangud, kirjutad ja silud ise päris riistvaral. | Leader arm, klaviatuur või sliderid, valitakse jooksu alguses. Nurgapiirangud asuvad serveris. |
| Interventsioonide märkimine | Lisad ise märgeveeru, hoiad selle kaadriindeksiga joondatud ja kontrollid seda igal salvestusformaadi muutumisel uuesti. | Iga ülevõtmise ajal salvestatud kaader on automaatselt märgitud, koos käsutatud asendiga action-veerus. |
| Jooksude sorteerimine | Kataloogikonventsioonid ja shellskriptid. Üleandmise ümber olevad seisukaadrid pead ise leidma ja välja filtreerima. | Üks otsus jooksu kohta salvestamiskaardil. Üleandmiskaadrid jäävad raw-kataloogi. |
| Segatud andmestiku ehitamine | Liitmisskriptid iga formaadiversiooni jaoks. Episoodiindeksite, metaandmete ja videoviidete kooskõla hoidmine on tüütu töö. | Pane kokku algsest pluss parandustest, episoodivalikuga allika kaupa; tulemus on tavaline andmestik. |
| Järgmise vooru alustamine viimasest policy'st | Ühendad checkpointi ise treenijasse ja saad soovi korral taastada ka optimeerija oleku, seega päriselt jätkata. | Üks väli baas-checkpointi jaoks. Ainult kaalud: lähtestab checkpointist, ei ole optimeerija jätkamine. |
| Kontroll treeningtsükli üle | Täielik. Oma kadu, oma ajakava, oma ablatsioonid, oma instrumenteerimine, ükski platvorm ei sega. Kui uurimisküsimus ongi treeningtsükkel ise, tee see käsitsi. | Kindel tee koos kindla policy'de nimekirja ja vormil pakutavate hüperparameetritega, mitte suvaline kood. |
Tööd, millel see põhineb
Loe need läbi, enne kui tsükliga vaidled. Iga link viib kokkuvõtte lehele, mitte tasumüüri taha.
- 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)
DAggeri algupärane artikkel: sõnastab kuhjuva vea probleemi, annab T-ruudus piirväärtuse tavalisele juhendatud lähenemisele ja pakub välja andmete agregeerimise olekutest, mida õppija ise külastab.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
Inimjuhitud variant: ekspert otsustab, millal kontroll üle võtta, selle asemel et teda küsitletaks olekute kohta, mille policy valis; just see režiim on siin platvormil rakendatud.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
Teine viis sekkumisi juhtida: ansambli erimeelsus kindlustundemärgina selle kohta, millal õppija tohib üksi tegutseda. Kasulik vastand sellele, kui otsustaja on inimene.
- 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
Käsitleb inimese tähelepanu napi ressursina ja küsib abi ainult uudsete või riskantsete olekute puhul; õige raamistik, kui üks inimene jälgib käsivart terve pärastlõuna.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Aus alternatiiv: selle asemel et parandada policy'd reaalajas, häirib demonstratsioone, nii et ekspert näitab taastumist. Tasub teada, enne kui sekkumistele pühendud.
- 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
Valdkonna kaart: millised inimtagasiside vormid on olemas, millised liidesed neid kannavad ja kuhu DAgger-laadne sekkumine nende hulgas paigutub.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
ACT-i artikkel. Action chunking on põhjus, miks odavat käsivart saab üldse matkiva policy'ga juhtida, ja ACT on kiireim policy, millega DAggeri vooru läbi teha.
- π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 matchingu-põhine VLA, ehitatud eeltreenitud visioon-keele mudeli peale, ja üks checkpointidest, mida siin saab peenhäälestada; artikkel ütleb otsesõnu, et uued oskused tulevad peenhäälestusest, mitte üksnes alusmudelist.
Küsimused, mida päriselt küsitakse
Kas DAggeri jaoks on vaja leader armi?
Ei. Vali jooksu käivitamisel klaviatuuri või slideri sisestus, ja ülevõtmine on käsitsi juba esimesest kaadrist, juhituna brauserist. Leader arm on peenliigutusteks meeldivam ja see on ainus režiim, kus käsivars joondab end enne üleandmist ise, aga tsükkel töötab ka ilma selleta.
Mitu DAggeri vooru on vaja?
Ausat kindlat arvu ei ole. Jälgi sekkumismäära: kui see vooru vahel ei lange, ei andnud see voor midagi, ja probleem peitub tavaliselt ülesande seadistuses, kaamerates või algses andmestikus, mitte voorude arvus.
Kas see on päris DAgger või midagi lõdvemat?
See on HG-DAgger, inimjuhitud variant. Klassikaline DAgger küsitleb eksperti olekute kohta, mille policy valis, sealhulgas olekute kohta, kuhu ükski mõistlik operaator päris käsivart ei laseks jõuda. Siin otsustab inimene, millal sekkuda, ja märgendiks saavad ainult need lõigud.
Kas ma treenin ainult parandustel?
Ei, ja seda ei tasu ka teha. Ainult parandustel treenides saad policy, mis oskab ainult taastuda. Kokkupandud andmestik koosneb algsetest andmetest pluss parandustest, iga allika episoodid valitud selgesõnaliselt.
Kas checkpointist jätkamine jätkab treeningjooksu?
See lähtestab kaalud sellest checkpointist. Optimeerija olekut ei taastata, seega ei ole see ranges mõttes jätkamine (resume). Praktikas kannavad õpitud käitumist vooru üle just kaalud, aga tasub teada, kumba neist kahest sa tegelikult saad.
Kuidas sekkumismäär arvutatakse?
Interventsioonina märgitud kaadrid jagatud jooksu kaadrite koguarvuga. See kuvatakse ülevõtmise olekus ja on ainus arv, mis tasub iga vooru kohta üles kirjutada, koos sõidetud checkpointi ja treenitud seguga.
Milliste policy'dega saab seda tsüklit käivitada?
ACT, SmolVLA, Pi0 ning GR00T N1.5 või N1.7. Tsükkel ise ei sõltu policy'st, sest see toodab ainult andmestikke ja checkpointe; praktiline erinevus on selles, kui kaua voor kestab ja millist GPU-d see vajab.
Kas saan seda teha ilma robotit omamata?
Salvestada ja treenida saab ka ilma: ostes andmestikke turult või tellides operaatoreid, ning päris SO-100-ga saab brauseris sõita live-lehel. DAggeri voor on midagi muud: see vajab käsivart, mida saad keset jooksu üle võtta, seega tsükli enda jaoks on vaja riistvara enda laual.
A real SO-100, live in the browser. No signup, no hardware needed.
Sõida oma esimene voor sel nädalal
Paigalda klient, sõida checkpointiga, mis sul juba on, ja võta üle esimesel korral, kui käsivars kuubikust mööda sirutab. See üks jooks on DAggeri voor pisikeses mõõtkavas: kõik pärast seda on segu kokkupanemine ja GPU-tundide eest maksmine.