
Lépésről lépésre bemutatott, emberi kapuzású DAgger-kör egy SO-100 karon: futtasd a policyt és rögzítsd, vedd át az irányítást, amikor elromlik, jelöld meg a futást korrekcióként, állíts össze egy kevert adathalmazt, és folytasd a tréninget egy checkpointból. Tartalmazza a billentyűzetes és csúszkás átvételi utat azoknak, akiknek nincs leader karjuk, valamint azt a négy hibát, amelyektől egy kör értéktelenné válik.
A policyod fut. A kocka felé nyúl, egy centiméterrel túl korán zárja a fogót, majd úgy folytatja, mintha megfogta volna. Semmi hibaüzenet nem jelenik meg, és a tréningi loss bámulása sem magyarázza meg, mi történt. A megoldás nem újabb 20 000 gradiens-lépés ugyanazokon a demonstrációkon. Az a megoldás, hogy pontosan ott teszed vissza a kezed a karra, ahol elromlik, rögzíted, mit csináltál helyette, majd a következő checkpointot a régi adatokon plusz ezen a korrekción tréningezed. Ez egy DAgger-kör, és így fut egy ilyen egy SO-100 vision-language-action policyval.
Az elmélet máshol található: miért működik egyáltalán az adathalmaz-aggregáció és mit változtat ezen az emberi kapuzás. Ez itt a kezelési útmutató, és feltételez egy betanított checkpointot, egy működő kameraszettet és egy mozgó kart. Az alábbi hat lépés a ciklus úgy, ahogy e platform DAgger-oldalán implementálva van, de a sorrend ugyanaz a saját szkriptjeidből is.
- •Futtasd a betanított policyt és rögzítsd, a futás feladatszövegével, nem pedig egy általános teleoperációs címkével.
- •Vedd át az irányítást abban a pillanatban, amikor a viselkedés elromlik: tükrözött átadás leader karral, azonnali és manuális átvétel billentyűzeten vagy csúszkákon, ha nincs leader kar.
- •Minden futást triázsolj: jelöld meg korrekcióként, tartsd meg kiértékelő epizódként, vagy dobd el.
- •Állítsd össze a keveréket kézzel - eredeti demonstrációk plusz korrekciók, epizódonként forrás szerint kiválasztva. Soha ne tréningezz kizárólag korrekciókon.
- •Folytasd a tréninget az utolsó checkpointból, és jegyezd fel, melyik checkpoint melyik keveréket eredményezte.
- •Az a szám, amely megmondja, hogy megérte-e a kör, a beavatkozási arány, nem a tréningi loss.
Miért nem csak több adat a második kör
A behavior cloning azokon az állapotokon tréningez, amelyeket egy ember bejárt. Teszteléskor a policy azokat az állapotokat járja be, amelyeket ő maga idéz elő, és a kicsi akcióhibák olyan állapotokká halmozódnak, amelyeket egyetlen demonstráció sem fedett le. Ross, Gordon és Bagnell formalizálta ezt a hibát az AISTATS 2011 konferencián, és egy iteratív algoritmussal válaszolt rá, amely egy stacionárius, determinisztikus policyt tréningez, és a redukciójuk szerint jól kell teljesítenie az általa indukált állapoteloszlás alatt: futtasd az aktuális policyt, az szakértővel címkéztesd meg azokat az állapotokat, amelyeket ténylegesen elért, add hozzá ezeket az adathalmazhoz, tréningezd újra, ismételd. Kelly és szerzőtársai a HG-DAgger-rel gyakorlativá tették a lekérdezést, ahol az ember dönti el, mikor veszi át az irányítást, ahelyett hogy állapotokat címkézne anélkül, hogy a kezében tartaná a vezérlést; beszámolójuk szerint jobb teljesítményt értek el mind a DAgger-hez, mind a behavior cloninghoz képest egy szimulált és egy valós autonóm vezetési feladaton. Az emberi kapuzás teszi elviselhetővé a ciklust egy asztali karon - csak akkor mozdítod a kezed, amikor valami elromlik.
A gyakorlatban két következmény számít jobban, mint maga az elmélet. A korrekciók nem hétköznapi demonstrációk: azokon a szűk keresztmetszeti régiókon koncentrálódnak, amelyeket Mandlekar és szerzőtársai írnak le, ahol egy kis eltérés olyan állapotokba dobja a policyt, amelyeket a demonstrációk sosem fedtek le. Egy olyan adathalmaz pedig, amely csak ezekből a nehéz részekből áll, rosszul formált adathalmaz - Belkhale, Cui és Sadigh az adatok oldaláról érvelnek amellett, hogy az állapotdiverzitás nem mindig előnyös, és hogy az akciódivergencia és a tranzíciódiverzitás együtt dönti el az adathalmaz minőségét. A kevert adathalmaz nem kompromisszum, hanem maga a lényeg.
Ezeket rögzítsd az első kör előtt
Egy DAgger-kör a policyt saját magával hasonlítja össze időben. Bármi, amit a körök között megváltoztatsz, és ami nem az adathalmaz, értelmetlenné teszi ezt az összehasonlítást.
- Kamerapozíciók és rögzítések, a csuklókamerát is beleértve. Ha meglazul egy szorító, akkor a megfigyelési eloszlást változtattad meg, nem a policyt.
- Expozíció és fehéregyensúly, ha a rögzítő rendszered lehetővé teszi ezek rögzítését. Az automatikus expozíció körök közötti sodródása lassú, láthatatlan domain-eltolódás.
- A kar kalibrációja és a szervók nullapozíciói. Ha újra kell kalibrálnod, kezelj mindent, amit előtte rögzítettél, külön adathalmazként.
- A feladatszöveg. Minden itt szereplő VLA erre kondicionál; ha a ciklus közben átfogalmazod, az már egy másik feladat.
- Megvilágítás, asztalfelület, tárgykészlet. Egy új tárgy egy új kísérlet, nem a következő kör.
- A rögzítés képkockasebessége. Ha két különböző mintavételi raszter közötti beavatkozási arányokat hasonlítasz össze, a különbségek a raszterből fognak eredni.
Hsu és szerzőtársai összehasonlították a kéz-központú nézetet a szokásos harmadik személyű nézettel, és azt találták, hogy a kézbe épített (eye-in-hand) perspektíva következetesen javította a tréninghatékonyságot és az eloszláson kívüli általánosítást, annak ellenére, hogy kevesebbet lát a jelenetből. Egy öt ízületű karnál a korrekcióid általában a fogó időzítését javítják ki, és a fogó időzítését pont a csuklókamera hordozza.
A kör, elejétől a végéig
- 1Futtasd az inferenciát és rögzítsd
Indítsd el a futást azzal a checkpointtal szemben, amelyet javítani szeretnél, majd indítsd el a rögzítést az inferencia-gyökérbe. Így rögzítve a futás megörökli a saját feladatszövegét, amelyen a policy tréningezve lett, nem pedig az alapértelmezett teleoperációs címkét. Rögzítés nélkül megnézheted a hibát, de nem tudsz rajta tréningezni.
bash# two calls, not one: the run, then its recording POST /inference/start # model_id, and hf_repo_id = the checkpoint to drive POST /recording/start # root=inference # root=inference also makes the recording inherit the run's task text - 2Vedd át, amikor elromlik
Nyomd meg a Take over gombot, és válaszd ki a bemeneti módot: leader kar, billentyűzet vagy csúszkák. A futtató szünetel, te korrigálsz, majd visszaadod az irányítást. Az alatt rögzített képkockák, amíg te vezettél, automatikusan beavatkozásként lesznek megjelölve.
bashPOST /inference/takeover/start # input = leader | keyboard | sliders POST /inference/takeover/nudge # keyboard, relative delta per call POST /inference/takeover/set # sliders, absolute target POST /inference/takeover/stop # back to the policy - 3Triázsold az epizódokat
Epizódonként döntsd el: jelöld korrekcióként, tartsd meg kiértékelésként, vagy dobd el. Egy olyan futás, amelyet a policy segítség nélkül fejezett be, kiértékelő adat.
- 4Szinkronizáld a korrekciós adathalmazt
A korrekciók policyonként egy helyi adathalmazban gyűlnek össze, és az automatikus szinkronon keresztül kerülnek a felhőtárolóba. Semmi nem keveredik bele, amit nem te tettél oda.
- 5Állítsd össze a kevert adathalmazt
Kombináld az eredeti adathalmazt a korrekciókkal, forrásonként explicit módon kiválasztva az epizódokat. Az eredmény ettől kezdve egy hétköznapi adathalmaz.
bashPOST /training/datasets/compose sources = [ original_dataset, korrekturen_<policy> ] episodes = explicit selection per source - 6Folytasd a tréninget a checkpointból
A keveréket az előző checkpointból tréningezd, ne az alapmodellből. Jegyezd fel, melyik checkpointot és melyik keveréket; e pár nélkül a kör nem reprodukálható.
bash# field on the training job base_checkpoint = s3://ay-robots/checkpoints/<run>/<checkpoint> # the platform passes it to the training pod as BASE_CKPT_S3
2. lépés részletesen: a két módja az átvételnek
Leader karral
A leader-follower módban az átvétel egy átadás két olyan kar között, amelyek nincsenek azonos pózban. A Take over megnyomása szünetelteti a futtatót, és a leader kart a follower aktuális pózára hajtja, így semmi nem ugrik meg, amikor a nyomaték átadódik. Ha ez az igazító mozgás időtúllépést kap, akkor kézzel igazítod a leadert, és csak akkor engeded el, amikor a kettő öt fokon belülre kerül. Innentől kezdve normálisan teleoperálsz, és az akció oszlop rögzíti, amit parancsoltál.
Legyünk őszinték ezzel az úttal kapcsolatban: az igazító mozgás és a nyomatékátadás a ciklus legkevésbé tesztelt része valós hardveren. Teszteld az átadást egy lassú, ártalmatlan pózban, mielőtt olyan futásban támaszkodnál rá, amely számít neked. A leader kar adja a három mód közül a legsimább korrekciókat, ugyanakkor mechanikailag itt a legtöbb, ami elromolhat.
Leader kar nélkül: billentyűzet és csúszkák
A legtöbben, akik ezt olvassák, egyetlen karral rendelkeznek. Ez elég. Válaszd a billentyűzetes vagy csúszkás bemenetet abban a pillanatban, amikor megnyomod a Take over gombot, és az átvétel azonnali és manuális lesz - nincs második kar, amit igazítani kellene, így igazítási lépés sincs. A follower tartja a pózát, és várja a bemenetet.
| Bemeneti mód | Hogyan mozog a kar | A szerver által érvényesített hívásonkénti korlát | Mikor van zárolva |
|---|---|---|---|
| Leader kar | A tükrözés a leader ízületi szögeiből vezérli a followert | Ebben a módban nincsenek nudge vagy set hívások; a tükrözés folyamatosan írja a follower célértékeit | Soha nincs zárolva, és ez az alapértelmezett, ha nincs megadva bemeneti mód - de második kart igényel; leader id nélkül az átvétel elutasításra kerül |
| Billentyűzet | Relatív elmozdítás billentyűnyomásonként, a takeover nudge végpontra küldve | Kemény korlát 2 fok ízületenként, 4 fok a fogónál | 409-cel elutasítva, ha az átvétel leader módban indult |
| Csúszkák | Abszolút célpóz, a takeover set végpontra küldve | Hívásonként legfeljebb 6 fok elmozdulás a cél felé; a felület kb. másodpercenként tízszer küld | 409-cel elutasítva, ha az átvétel leader módban indult |
A korlátokat szerveroldalon érvényesítik, nem a felületen, mert egy elgépelt delta egy busz-szervós karon ütközést jelent. A billentyűzetes korrekciók lépcsőzetesen és kicsit durván jönnek ki; a csúszkás korrekciók simábbak, mert a szerver a cél felé lépeget, miközben a felület folyamatosan küld. Mindkét esetben az akció oszlop megkapja a teljes parancsolt pózvektort, és a beavatkozás-jelölés megegyezik a leader úttal, így a billentyűzetes korrekciók formátumkülönbség nélkül kerülnek ugyanabba az adathalmazba.
Q / A joint 1 R / F joint 4
W / S joint 2 T / G joint 5
E / D joint 3 Z / X gripper
Mikor nyomd meg a gombot
Inkább korán, mint későn. Egy olyan korrekció, amely azután indul, hogy a fogó a semmin zárt be, olyan hibából való helyreállítást tanít, amelybe a policynak nem lett volna szabad belekerülnie, a helyreállítási adat pedig sokkal kevesebbet ér, mint az elkerülési adat. Szakítsd meg abban a pillanatban, amikor először vagy biztos benne, hogy a trajektória hibás, korrigálj végig a nehéz részen, és add vissza az irányítást, amint olyan állapotba kerültél, amelyet a policy már korábban is kezelt. A ThriftyDAgger automatizálja ezt a döntést azáltal, hogy a beavatkozásokat újdonság és becsült kockázat alapján kapuzza egy rögzített emberi büdzsé mellett, de egyetlen karon, ahol egy ember már úgyis figyel, az emberi kapu olcsóbb és jobban kalibrált, mint bármi, amit te be tudnál hangolni.
Megvalósítható a nyílt forráskódú rendszerrel és néhány szkripttel. Amibe kerül, az a könyvelés, és a DAgger-körök a könyvelésen buknak el.
- Írd a képkockákat a saját inferencia-szkriptedből egy LeRobot adathalmazba, azzal a feladat-stringgel, amelyen a policy tréningezve lett.
- Állítsd meg a policy ciklust, váltsd át a parancsforrást, és minden képkockát, amelyet te vezetsz, jelölj meg beavatkozásként. A jelölés nélkül a korrekciók hétköznapi demonstrációknak tűnnek.
- Tudatosan döntsd el, mi történjen az átmeneti képkockákkal, amelyek a policy irányításról való lemondása és az első bemeneted között keletkeznek.
- Tartsd a korrekciókat policyonként saját adathalmazban, és kövesd kézzel az epizódindexeket, hogy a keverék rekonstruálható legyen.
- Irányítsd a finomhangolási belépési pontot az előző checkpointra, és ellenőrizd a logban, hogy azokat a súlyokat töltötte be.
Ugyanez a hat lépés gombokként létezik. Ami automatizált, az az, amit kézzel könnyű elrontani: a képkockánkénti beavatkozás-jelölés, a korrekciók és kiértékelések közötti szétválasztás, valamint annak nyilvántartása, hogy melyik checkpoint melyik keveréket eredményezte. Semmi nem kerül egy összeállított adathalmazba, amit nem te választottál ki.
Nem dönt helyetted. Hogy melyik futás számít korrekciónak, mely epizódok kerülnek a keverékbe, és mikor kell leállni, továbbra is mérlegelést igénylő döntések maradnak. A mezők leírása itt található: tréning, a bemeneti módoké pedig itt: teleoperáció.
3. lépés részletesen: a triázs dönti el a minőséget
A futás után van egy felvételed, amelyben néhány képkocka beavatkozásként van megjelölve. Három célhely létezik, és a rossz választás csendben megmérgezi a következő kört.
- Jelöld korrekcióként, ha a beavatkozás valódi javítás volt: a policy rossz irányba tartott, és a bemeneted a helyes dolgot mutatta meg egy olyan állapotból, amelyet maga a policy hozott létre.
- Tartsd meg kiértékelésként a tiszta autonóm futásokat és azokat, amelyeket óvatosságból vettél át. A kiértékelő epizódok segítségével méred a következő checkpointot, és ezeken sosem szabad tréningezni.
- Dobd el azokat a futásokat, amelyeket valami ezzel nem összefüggő dolog tett tönkre - egy kimaradt kamera-képkocka, egy leállt szervó, egy tárgy, amelyet felborítottál. Egy zavaros korrekció rosszabb, mint a korrekció hiánya.
A policy irányításról való lemondása és az első bemeneted között a kar mozdulatlanul áll, miközben a rögzítő tovább ír - egy sor egyforma póz, kicsit eltérő képekkel párosítva. Itt ezek az átadási képkockák a nyers felvételben maradnak, és kimaradnak a korrekciós adathalmazból. Ha te magad építed a ciklust, tudatosan vágd ki őket: az ezeken tréningezett policy megtanul megállni ott, ahol cselekednie kellene.
5. lépés részletesen: a keverék összeállítása
Az összeállítás az eredeti adathalmazt plusz a korrekciós adathalmazt veszi, és egy új, hétköznapi LeRobot adathalmazt hoz létre, amely úgy tréningezhető, mint bármelyik másik. A fontos tulajdonság az, hogy az epizódválasztás forrásonként explicit - semmi nem keveredik bele automatikusan. Ez apróságnak tűnik addig, amíg először egy policy furcsán nem kezd viselkedni, és rekonstruálnod kell, min lett tréningezve.
A nyitott kérdés az arány, és senkinek sincs olyan száma, amely átvihető lenne. Amiben a szakirodalom egyetért, az az, hogy a korrekcióknak többet kell számítaniuk, mint amennyi a képkocka-arányuk. Mandlekar és szerzőtársai iteratívan tréningeznek újra azon az adaton, amelyet a beavatkozási rendszerük gyűjt, így a policy megtanulja átjárni a szűk keresztmetszeteket, és beszámolójuk szerint az így tréningezett ágensek felülmúlják azokat az ágenseket, amelyeket ugyanannyi, nem beavatkozásos demonstrátoroktól származó mintán tréningeztek. A Sirius továbbmegy, és a tréningmintákat a becsült emberi bizalom alapján súlyozza újra, 8 százalékos javulásról számolva be szimulációban és 27 százalékosról valós hardveren a policy sikerességi arányában, az összehasonlított módszerekhez képest, kétszeres konvergenciasebesség mellett. Az itteni tréning-belépési pontok egyike sem tesz elérhetővé mintasúlyozó gombot, így a durva helyettesítő megoldás az, hogy minden korrekciós epizódot megtartasz, miközben az eredeti demonstrációkat almintázod - és feljegyzed, mit csináltál.

6. lépés részletesen: mit is jelent valójában a checkpointból való folytatás
A keverék tréningezése az alapmodellből működik, de eldobja az előző kört, és egy teljes futásba kerül. Az előző checkpointból való folytatás gyorsabb, és általában jobb is. Ugyanakkor korlátozottabb is, mint azt a kifejezés sugallja.
Egy csak súlyokat tartalmazó checkpoint kizárólag a paramétereket tartalmazza, semmi mást. Betöltése jobb kiindulópontot ad a következő futásnak, mint az alapmodell, de az optimalizáló momentumai, a tanulási ráta ütemezésének pozíciója és az adatsorrend mind nulláról indul. Számíts egy loss-tüskére a folytatott futás elején, ne olvasd hibaként, és ne nevezd a kört folytatásnak (resume). Ez egy meleg indítás (warm start).
| Policy | Méret | GPU-kategória | Inferencia akciólépésenként | Adathalmaz-formátum | Epizódok, mielőtt megéri kipróbálni |
|---|---|---|---|---|---|
| GR00T N1.7 | kb. 3 milliárd, ebből nagyjából 40 millió tréningezve a finomhangolás során | A100 80 GB vagy H100 80 GB | kb. 152 ms | LeRobot v2.0 vagy v2.1 | 50 |
| GR00T N1.5 | kb. 3 milliárd | A100 80 GB vagy H100 80 GB | kb. 165 ms | LeRobot v2.0 vagy v2.1 | 50 |
| Pi0.5 | kb. 3 milliárd, PaliGemma-gerincmodellen | A100 80 GB vagy H100 80 GB | kb. 485 ms | LeRobot v3.0 | 50 |
| SmolVLA | kb. 450 millió | RTX 4090 vagy bármilyen 24 GB-os kártya | kb. 245 ms | LeRobot v3.0 | 30 |
| ACT | kb. 80 millió, nulláról tréningezve | RTX 4090 vagy bármilyen 24 GB-os kártya | kb. 20 ms | LeRobot v3.0 | 50 |
A latencia egy DAgger-ciklusban másképp halmozódik, mint egy demonstráció során: nagyjából 485 ms-os akciólépésenkénti idő mellett azért veszel át, mert a kar habozott, nem azért, mert hibázott, a habozásból eredő korrekciók pedig nem hasznos tréningadatok. Ha az adatokon iterálsz, nem pedig a végső sikerességi arányt hajszolod, iterálj egy gyors modellen. Shukor és szerzőtársai a SmolVLA-t úgy írják le, mint amelyet egyetlen GPU-n való tréningre és fogyasztói GPU-kon vagy CPU-kon való telepítésre terveztek, aszinkron inferencia-rendszerrel, amely leválasztja az akció-előrejelzést a végrehajtásról, hogy magasabb vezérlési rátákat tegyen lehetővé - ez az a tulajdonság, amely reszponzívan tartja az átvételi ciklust.
Az adathalmaz-formátumok sem felcserélhetők. A GR00T LeRobot v2.0-t vagy v2.1-et vár, és az Isaac-GR00T repó a bemenetét a LeRobot v2 formátum egy változataként írja le, hozzáadott modalitás-leíró fájllal; az itteni újabb tréner-eszközök v3.0-t várnak el. Egy rossz verzióban összeállított keverék betöltéskor bukik el, nem egy rossz policyt eredményez - ez a jobbik hibamód, de így is egy elpazarolt sorhely. A adathalmaz-dokumentáció felsorolja, hogy melyik tréner melyik formátumot várja.
A ciklus, a könyveléssel már elvégezve
Átvétel leader karral, billentyűzettel vagy csúszkákkal; képkockánkénti beavatkozás-jelölés; futások korrekcióként vagy kiértékelésként való megjelölése; kevert adathalmaz összeállítása forrásonként explicit epizódválasztással; és a tréning folytatása checkpointból az alapmodell helyett. Ami a te döntésed marad, az az, hogy melyik futás számít korrekciónak, mi kerül a keverékbe, és mikor állt meg a beavatkozási arány csökkenése.
Nézd meg, hogyan van felépítve a DAgger-ciklusNégy módja annak, hogy elpazarolj egy kört
1. Kizárólag a korrekciókon tréningezni
A leggyakoribb hiba és a legcsábítóbb rövidítés. Egy kizárólag korrekciókból álló adathalmaz szinte teljes egészében a feladat nehéz középső részéből áll, a megközelítés és a visszavonulás hiányzik; a policy jobb lesz a nehéz résznél, de elfelejti, hogyan jusson el oda. Az aggregáció nem a módszer implementációs részlete, hanem maga a mechanizmus: a régi adat tartja helyben a viselkedés többi részét, miközben a korrekciók egy részét elmozdítják.
2. Kamerát mozgatni a körök között
Egy kamera, amely két centimétert elmozdul a körök között, olyan policyt eredményez, amely rosszabb, mint amivel elindultál, és egy diagnózist, amely egy napodba kerül. Minden itteni VLA képekre kondicionál; az ízületi állapot önmagában nem dönti el, hol van a tárgy. Fényképezd le az elrendezést az első kör előtt, és minden későbbi kör előtt ellenőrizd azt a fényképet.
3. Átadási műtermékeket beengedni a tréningbe
Fentebb már szó volt róla, és azért van a listán, mert láthatatlan. A tünet egy policy, amely egy pillanattörtre megakad pontosan ott, ahol az előző kör operátora átvette az irányítást. Habozásnak tűnik; valójában utánzás.
4. Meleg indítást folytatásnak nevezni
Ha azt hiszed, hogy az optimalizáló állapota átöröklődött, a kezdeti loss-tüske hibának tűnik, és korrupt adatra kezdesz vadászni. Ha tudod, hogy az optimalizáló újonnan indult, a tüske várható, és inkább arra figyelsz, ami utána következik. Ugyanazok a számok, ellentétes következtetések.
A kör mérése
Egy emberi kapuzású ciklus metrikája a beavatkozási arány: az alatt rögzített képkockák, amíg te irányítottál, osztva a futás összes képkockájával. Ez megtalálható a takeover státuszban, és ez az egyetlen szám, amely megválaszolja a kör által feltett kérdést. A tréningi loss akkor is csökken, ha a policy nem javult; a sikerességi arány bináris és zajos azokon a mintaméreteken, amelyeket egy asztali kar produkál. A beavatkozási arány folytonos, azokon az állapotokon mérve, amelyeket maga a policy okozott, és csökken, ahogy a policynak egyre kevésbé van szüksége rád.
Csak azonos körülmények között rögzített futások között hasonlítsd össze. A teljes érvelés, és hogy hogyan építs olyan kiértékelő halmazt, amely kettőnél több körön át is megállja a helyét, a DAgger-ciklus mérésével foglalkozó cikkben található. Az első kör realisztikusan egy megvalósíthatósági teszt: azt ellenőrzöd, hogy az átvétel működik-e a hardvereden, hogy a korrekciók a jelölésükkel együtt landolnak-e, és hogy a folytatott futás betöltötte-e a megnevezett checkpointot. A második és harmadik kör az, ahol az aránynak el kellene kezdenie mozogni. Ha a negyedik körig nem mozdult, a probléma a DAggeren túl, feljebb keresendő.
| Jegyezd fel körönként | Miért számít ez később |
|---|---|
| A vezérelt checkpoint | Enélkül nem tudod egy javulást egy adott keverékhez kötni |
| Az átvételhez használt bemeneti mód | A billentyűzetes korrekciók durvábbak, mint a leader korrekciók, és ez meglátszik az adatokon |
| A futások száma, és hogy mindegyiket hogyan triázsolták | Hogy a körnek volt-e elég korrekciója ahhoz, hogy számítson |
| Beavatkozási arány futásonként, és az átlag | A ciklus előrehaladási metrikája |
| Pontos epizódválasztás forrásonként | Az egyetlen mód egy kör reprodukálására vagy visszavonására |
| Meleg indítás vagy friss tréning | Megmagyarázza azt a loss-görbét, amelyet egy hét múlva meg fogsz nézni |
Ha még nincs checkpointod
A ciklusnak nincs belépési pontja nélküle. Rögzíts egy első adathalmazt, tréningezz egy első policyt, futtasd - a rögzítés, a tréning és a policy futtatása fedik le ezt az utat. A rögzítő kliens itt található: a letöltési oldal, a GPU-kategóriák és óradíjak itt: az árazási oldal, és hogy néz ki egy használható epizód, azt a SO-100 adatgyűjtési útmutató mutatja meg. Az elsődleges dolgod, hogy a demonstrációk legyenek jók, mielőtt a korrekciókkal foglalkoznál: a DAgger egy javító mechanizmus, és sokkal jobban működik valamin, ami már majdnem jó volt.
Futtathatok DAgger-ciklust leader kar nélkül?▾
Igen. Válaszd a billentyűzetes vagy csúszkás bemenetet, amikor megnyomod a Take over gombot: az átvétel azonnali és manuális, nincs második kar, amit igazítani kellene. A billentyűzet relatív elmozdításokat küld, amelyeket a szerver keményen 2 fokra korlátoz ízületenként és 4 fokra a fogónál; a csúszkák abszolút célt küldenek, és a szerver hívásonként legfeljebb 6 fokkal mozdul el felé, miközben a felület folyamatosan küld. Az akció oszlop és a beavatkozás-jelölés ugyanaz, mint leader módban, így a korrekciók megkülönböztethetetlenek az adathalmazban.
Hány korrekcióra van szükség egy körhöz?▾
Nincs védhető univerzális szám, és a képkockák száma jobban számít, mint az epizódok száma. A működő szabály az, hogy a korrekciók ne vesszenek el a keverékben: 200 eredeti epizód és három korrekciós epizód mellett semmi nem fog megmozdulni. Törekedj olyan korrekciókra, amelyek több kiindulási konfigurációból fedik le a hibás viselkedést, ne pedig ugyanannak a mentésnek három megismétlésére.
Miért olyan rossz ötlet kizárólag korrekciókon tréningezni?▾
Mert a korrekciók szinte teljes egészében a feladat nehéz középső részét alkotják. A megközelítés, az igazítás és a visszavonulás hiányzik, így a policy elveszíti azt, amit már jól csinált, miközben javul azon a részen, amit kijavítottál. A régi adat megtartása és bővítése maga a mechanizmus, nem egy opcionális extra.
A checkpointból való folytatás folytatja az előző tréningfutást?▾
Nem. Egy csak súlyokat tartalmazó checkpoint kizárólag a paramétereket állítja vissza, semmi mást: az optimalizáló momentumai, a tanulási ráta ütemezésének pozíciója és az adatsorrend újra nulláról indul. Ez egy meleg indítás, és a kezdeti loss-tüske várható, nem tünet. Jegyezd fel, hogy a kettő közül valójában melyiket csináltad, hogy egy hét múlva helyesen tudd olvasni a görbét.
Mi van, ha a beavatkozási arány nem csökken?▾
Hagyd abba az újabb körök hozzáadását. Egy lapos arány azt jelenti, hogy a korrekciók nem azt tanítják, amit gondolsz. A szokásos okok feljebb keresendők: elmozdult egy kamera, a korrekciók túl későn indulnak ahhoz, hogy elkerülési adatnak számítsanak, átadási képkockák vannak a tréninghalmazban, vagy a feladat alulmeghatározott azokból a megfigyelésekből, amelyeket a policy ténylegesen kap.
Ebből semmi sem megoldott probléma, és semmi sem egyetlen kattintás. Az interaktív utánzásos tanulás pontosan azért aktív kutatási terület, mert a kérdéseire - mikor avatkozzunk be, hogyan súlyozzuk azt, amit az ember csinált, mennyi régi adatot tartsunk meg - nincs lezárt válasz; a Celemin és szerzőtársai által jegyzett áttekintő tanulmány feltérképezi, mi maradt még nyitott. Amivel a ciklus viszont rendelkezik, az a mérhető konvergencia, ha gondosan futtatják, néhány száz eurós hardveren. Rögzítsd az elrendezést, avatkozz be korán, triázsolj őszintén, keverj tudatosan, és minden alkalommal jegyezd fel a beavatkozási arányt.
Ha a lefutás, amit korrigálni készülsz, úgy hibázik, hogy az inkább mechanikai problémának tűnik, mint viselkedésbelinek, állj meg, és először olvasd el az elsodródó policy javítása című írást. Egy kamerahiba javításával töltött kör a policy-t magára a hibára tanítja meg.
Sources
- Ross, Gordon, Bagnell (AISTATS 2011): A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
- Kelly, Sidrane, Driggs-Campbell, Kochenderfer (2019): HG-DAgger - Interactive Imitation Learning with Human Experts
- Mandlekar et al. (2020): Human-in-the-Loop Imitation Learning using Remote Teleoperation
- Liu, Nasiriany, Zhang, Bao, Zhu (2022): Robot Learning on the Job - Human-in-the-Loop Autonomy and Learning During Deployment (Sirius)
- Hoque et al. (2021): ThriftyDAgger - Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning
- Celemin et al. (2022): Interactive Imitation Learning in Robotics - A Survey
- Belkhale, Cui, Sadigh (2023): Data Quality in Imitation Learning
- Hsu et al. (2022): Vision-Based Manipulators Need to Also See from Their Hands
- Zhao et al. (2023): Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ACT / ALOHA)
- Black et al. (2024): Pi0 - A Vision-Language-Action Flow Model for General Robot Control
- Bjorck et al. (2025): GR00T N1 - An Open Foundation Model for Generalist Humanoid Robots
- Shukor et al. (2025): SmolVLA - A Vision-Language-Action Model for Affordable and Efficient Robotics
- LeRobot documentation (Hugging Face)
- NVIDIA Isaac-GR00T repository
Was this page helpful?
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started