Przejmij kontrolę, gdy policy się myli, i wytrenuj ją na tej korekcie.
Policy wytrenowana metodą behavior cloning zna tylko stany, które odwiedziły twoje demonstracje. DAgger zamyka tę lukę danymi ze stanów, do których dociera sama policy. AY-Robots prowadzi całą pętlę na SO-100: uruchom checkpoint, przejmij kontrolę w trakcie przebiegu, zachowaj poprawione epizody, złóż mieszankę i trenuj dalej od checkpointu z tego przebiegu.
- HG-DAgger, human-gated
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Wskaźnik interwencji na rundę
Dlaczego wytrenowana policy robi coś, czego nigdy nie zademonstrowano
Behavior cloning traktuje sterowanie jak zwykłe uczenie nadzorowane: na wejściu obserwacja, na wyjściu cel dla stawu, dopasowany do klatek nagranych przez człowieka. To działa tylko dopóki robot pozostaje w stanach, które ten człowiek odwiedził, a tak się nie dzieje. Chwytak, który zamyka się czterdzieści milisekund za wcześnie, przesuwa kostkę o dwa milimetry od zademonstrowanej pozycji. Kolejna obserwacja nie występuje w zbiorze treningowym, więc akcja w tym miejscu jest ekstrapolacją, a następny stan leży jeszcze dalej poza zbiorem. Rozkład treningowy i rozkład, który faktycznie generuje wytrenowana policy, to dwie różne rzeczy, a ten drugi oddala się od pierwszego w miarę trwania epizodu.
Ross, Gordon i Bagnell opisali dokładnie to niepowodzenie redukcji w 2011 roku i oszacowali szkodę: klasyfikator, który myli się z prawdopodobieństwem e pod rozkładem eksperta, może pod własnym, indukowanym przez siebie rozkładem popełnić w horyzoncie T kroków rzędu T do kwadratu razy e błędów, ponieważ jeden błąd tworzy obserwacje, jakich ekspert nigdy nie wygenerował, a błędy się kumulują. Ich rozwiązaniem jest algorytm, o którym mowa na tej stronie: uruchomić bieżącą policy, zebrać etykiety eksperta dla odwiedzanych przez nią stanów, dołączyć je do wszystkiego, co zebrano dotychczas, dotrenować, powtórzyć. Więcej demonstracji tego samego rodzaju nie pomaga, bo próbkują ten sam rozkład. Pomagają etykiety ze stanów, do których dociera policy. Zaimplementowany tu wariant jest human-gated (HG-DAgger, Kelly i in.): policy zachowuje kontrolę, dopóki człowiek nie uzna, że coś idzie źle, i nie przejmie sterowania, dzięki czemu korekty powstają tylko tam, gdzie są potrzebne, a ramię nigdy nie jest proszone o wjazd w stan, na jaki operator by nie pozwolił.
- Behavior cloning jest ważny tylko na rozkładzie stanów, na którym został wytrenowany.
- Błąd wzmacnia się sam: małe odchylenie tworzy nieznany stan, ten tworzy większe odchylenie.
- Lekarstwem nie są kolejne demonstracje, lecz etykiety ze stanów, do których dociera sama policy.
- Human-gated znaczy, że o interwencji decyduje operator, a nie jakiś wskaźnik autonomii.
Dlaczego błąd się kumuluje
Przesuń horyzont. Przy behavior cloning oczekiwany koszt dodatkowy rośnie w przybliżeniu z kwadratem liczby kroków, bo każdy błąd tworzy stany, których demonstracje nigdy nie objęły; pętla agregacji utrzymuje ten wzrost blisko liniowego (Ross i in., 2011).
Krzywe poglądowe wynikające z granic podanych w Ross i in. (2011), nie pomiary z twojego robota. Liczy się kształt krzywej, nie same liczby.
Jedna runda DAgger, sześć kroków
Tak pętla faktycznie działa na platformie, nie jest to schemat. Każdy krok poniżej odpowiada elementowi sterującemu w kokpicie.
Przejdź przez pętlę krok po kroku
Te same sześć kroków, po kolei, z tym, co dzieje się przy każdym z nich na ramieniu i w zbiorze danych.
Uruchom policy i nagraj przebieg
Uruchom przebieg inferencji na wytrenowanym checkpoincie. Przebieg jest nagrywany w czasie rzeczywistym, wraz z tekstem zadania samego przebiegu, dzięki czemu klatki nadają się potem jako dane treningowe, a nie tylko jako nagranie do oglądania.
Przejmij kontrolę i koryguj
W chwili gdy ramię robi coś złego, naciśnij Przejmij kontrolę. Runner zatrzymuje się, a ramię należy do ciebie. Z ramieniem leader ramię najpierw dojeżdża do pozycji follower i dopiero wtedy przekazuje sterowanie; przy wejściu z klawiatury lub suwaków, wybranym na starcie przebiegu, przejęcie jest od razu ręczne. Popraw ruch, a potem oddaj sterowanie z powrotem policy. Klatki nagrane podczas przejęcia są automatycznie oznaczane jako interwencje.
Zakwalifikuj przebieg
Dla każdego przebiegu podejmij decyzję, czym on był: zapisz go jako korektę, zachowaj jako przebieg ewaluacyjny albo odrzuć. Zamrożone klatki wokół przekazania sterowania zostają w katalogu raw i nigdy nie trafiają do zbioru danych.
Zsynchronizuj zbiór korekt
Korekty gromadzą się w osobnym zbiorze korekt dla danej policy i trafiają do twojego bucketu przez automatyczną synchronizację w chmurze. Na tym etapie nic nie jest ze sobą łączone; korekty są po prostu odrębnym zbiorem danych.
Złóż mieszankę samodzielnie
Za pomocą Złóż zbiór danych zbuduj materiał treningowy dla kolejnej rundy: oryginalny zbiór danych plus korekty, z jawnym wyborem epizodów dla każdego źródła. Wynikiem jest zwykły zbiór danych, który synchronizuje się i trenuje jak każdy inny. Nic nie jest domieszywane w tle, a dane symulacyjne nie są dodawane automatycznie.
Trenuj dalej od checkpointu
Wytrenuj złożony zbiór danych za pomocą Trenuj dalej od checkpointu zamiast zaczynać od modelu bazowego, dzięki czemu runda zaczyna się od policy z tego przebiegu. Ściśle rzecz biorąc: to inicjalizuje wagi z tego checkpointu, nie jest to wznowienie optymalizatora.
Co platforma bierze na siebie
Każdy punkt to krok pętli, który w innym wypadku trzeba by zbudować i utrzymywać samodzielnie.
Przejęcie bez ramienia leader
Przy starcie przebiegu wybierz wejście z klawiatury lub suwaków, a do korekty wystarczy sam laptop. Impulsy z klawiatury są ograniczone po stronie serwera do dwóch stopni na staw i czterech na chwytaku; cele suwaków są bezwzględne, a serwer przesuwa się w ich stronę o maksymalnie sześć stopni na wywołanie. Ograniczenia egzekwuje serwer, nie interfejs, więc zacięty klawisz nie może rzucić ramieniem.
Dokumentacja teleoperacjiInterwencje oznaczone dla każdej klatki
Każda klatka nagrana w czasie, gdy trzymasz ramię, niesie flagę interwencji, a kolumna action zawiera pełną zadaną pozycję. Nie trzeba ręcznie prowadzić kolumny z flagą ani później dopasowywać jej do indeksów klatek.
Format zbioru danych LeRobotKwalifikacja: korekta, ewaluacja albo kosz
Każdy przebieg dostaje jedną decyzję na karcie zapisu. Przebiegi korekcyjne zasilają kolejną rundę treningową, przebiegi ewaluacyjne zostają poza treningiem i dzięki temu pozostają czystym pomiarem, a nieudane przebiegi znikają, zamiast po cichu zatruwać mieszankę.
Sesje i epizodyZłóż mieszankę jawnie
Zbiór treningowy dla rundy n składasz sam: oryginalny zbiór danych plus korekty, z epizodami wybranymi dla każdego źródła. Bez automatycznego domieszywania, bez ukrytych danych symulacyjnych, a złożony wynik zachowuje się jak każdy inny zbiór danych.
Zbiory danychKontynuacja od checkpointu
Trening kierujesz na checkpoint z ostatniego przebiegu zamiast na model bazowy, dzięki czemu każda runda zaczyna się tam, gdzie skończyła się poprzednia. Inicjalizowane są tylko wagi; stan optymalizatora nie jest przywracany, dlatego pierwszą rundę warto traktować jako test wykonalności.
TreningGPU wynajmowane na rundę
ACT i SmolVLA na 4090, Pi0 oraz GR00T N1.5 lub N1.7 na A100 z 80 GB. Uruchamiasz rundę, pod się podnosi, checkpointy trafiają do twojego bucketu, a płacisz za godziny, które runda zajęła.
Ceny GPUZaplanuj swoje rundy
Wskaźnik interwencji to metryka postępu pętli: poprawione klatki podzielone przez wszystkie klatki przebiegu. Ustaw punkt startowy i to, ile daje każda runda, i zobacz, ile rund potrzeba, żeby dojść do celu.
| Runda | Wskaźnik interwencji | Poprawione klatki |
|---|---|---|
| 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 | |
To model, nie prognoza. Prawdziwe rundy przebiegają nierówno, a runda, która nie zmienia wskaźnika, niczego nie dała; właśnie to warto obserwować.
Zbudować pętlę samemu czy prowadzić ją tutaj
Nic z tego nie jest niemożliwe do zrobienia ręcznie. Chodzi o to, ile wieczorów pochłania infrastruktura zamiast rund, i jest jeden wiersz, w którym praca własnymi rękami wyraźnie wygrywa.
| Krok pętli | Zbudowane ręcznie | Na AY-Robots |
|---|---|---|
| Przejęcie w trakcie przebiegu | Ramię leader albo własny kod na magistrali serw. Przejęcie z klawiatury i suwaków, wraz z bezpiecznymi limitami, trzeba samemu napisać, a potem debugować na prawdziwym sprzęcie. | Ramię leader, klawiatura albo suwaki, wybierane na starcie przebiegu. Ograniczenia kątów siedzą w serwerze. |
| Oznaczanie interwencji | Kolumnę z flagą trzeba dodać samemu, utrzymywać jej zgodność z indeksem klatki i sprawdzać na nowo przy każdej zmianie formatu nagrywania. | Każda klatka nagrana podczas przejęcia jest oznaczana automatycznie, z zadaną pozycją w kolumnie action. |
| Sortowanie przebiegów | Konwencje katalogów i skrypty powłoki. Zamrożone klatki wokół przekazania sterowania trzeba samemu znaleźć i odfiltrować. | Jedna decyzja na przebieg na karcie zapisu. Klatki przekazania zostają w katalogu raw. |
| Budowa mieszanego zbioru danych | Skrypty scalające dla każdej wersji formatu. Żmudną częścią jest utrzymanie spójności indeksów epizodów, metadanych i odniesień do wideo. | Złożenie z oryginału plus korekt z wyborem epizodów dla każdego źródła; wynik to zwykły zbiór danych. |
| Rozpoczęcie kolejnej rundy od ostatniej policy | Checkpoint trzeba samemu podłączyć do trenera, można przy tym też przywrócić stan optymalizatora, jeśli zależy na prawdziwym wznowieniu. | Jedno pole na checkpoint bazowy. Tylko wagi: inicjalizacja z checkpointu, nie jest to wznowienie optymalizatora. |
| Kontrola nad pętlą treningową | Pełna. Własna funkcja straty, własny harmonogram, własne ablacje, własna instrumentacja, żadnej platformy pomiędzy. Jeśli pytaniem badawczym jest sama pętla treningowa, trzeba zbudować ją ręcznie. | Ustalona ścieżka z zamkniętą listą policy i hiperparametrami udostępnionymi w formularzu, nie dowolny kod. |
Prace, na których to się opiera
Przeczytaj je, zanim zaczniesz spierać się o pętlę. Każdy link prowadzi do strony ze streszczeniem, nie za paywall.
- 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)
Oryginalna praca o DAgger: formułuje problem kumulującego się błędu, podaje granicę rzędu T do kwadratu dla czysto nadzorowanego podejścia i proponuje agregację danych ze stanów odwiedzanych przez samego uczącego się.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
Wariant human-gated: ekspert sam decyduje, kiedy przejąć kontrolę, zamiast być pytanym o stany wybrane przez policy; to właśnie ten tryb wdraża ta platforma.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
Inny sposób bramkowania interwencji: niezgodność w zespole modeli jako sygnał pewności co do tego, kiedy uczący się może działać sam. Przydatny kontrast wobec pozostawienia tej oceny człowiekowi.
- 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
Traktuje uwagę człowieka jako zasób deficytowy i prosi o pomoc tylko w nowych lub ryzykownych stanach; właściwe ujęcie, gdy jedna osoba nadzoruje ramię przez całe popołudnie.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Uczciwa alternatywa: zamiast korygować policy na bieżąco, zaburzyć demonstracje tak, by ekspert pokazywał powrót do właściwego toru. Warto to znać, zanim zdecydujesz się na interwencje.
- 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
Mapa dziedziny: jakie formy ludzkiej informacji zwrotnej istnieją, przez jakie interfejsy są przekazywane i gdzie pośród nich sytuuje się interwencja w stylu DAgger.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
Praca o ACT. Action chunking to powód, dla którego tanim ramieniem w ogóle da się sterować za pomocą policy imitacyjnej, a ACT to policy, z którą najszybciej można przejść rundę DAgger.
- π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
VLA oparty na flow matching i wstępnie wytrenowanym modelu wizyjno-językowym, jeden z checkpointów dostępnych tu do fine-tuningu; praca wprost mówi, że nowe umiejętności biorą się z fine-tuningu, nie z samego modelu bazowego.
Pytania, które naprawdę padają
Czy do DAgger potrzebne jest ramię leader?
Nie. Przy starcie przebiegu wybierz wejście z klawiatury lub suwaków, a przejęcie jest ręczne od pierwszej klatki, sterowane z przeglądarki. Ramię leader jest przyjemniejsze przy precyzyjnych ruchach i to jedyny tryb, w którym ramię samo się dopasowuje przed przekazaniem sterowania, ale pętla działa też bez niego.
Ile rund DAgger jest potrzebnych?
Uczciwej stałej liczby nie ma. Liczy się wskaźnik interwencji: jeśli nie spada z rundy na rundę, ta runda niczego nie dała, a przyczyna leży zwykle w ustawieniu zadania, kamerach albo oryginalnym zbiorze danych, a nie w liczbie rund.
Czy to prawdziwy DAgger, czy coś luźniejszego?
To HG-DAgger, wariant human-gated. Klasyczny DAgger pyta eksperta o stany wybrane przez policy, w tym takie, do których żaden rozsądny operator nie pozwoliłby dojechać prawdziwemu ramieniu. Tutaj o interwencji decyduje człowiek, i tylko te odcinki stają się etykietami.
Czy trenuję tylko na korektach?
Nie, i nie powinno się tak robić. Trenowanie samych korekt daje policy, która umie tylko wracać na kurs. Złożony zbiór danych to oryginalne dane plus korekty, z jawnie wybranymi epizodami z każdego źródła.
Czy kontynuacja od checkpointu wznawia przebieg treningowy?
Inicjalizuje wagi z tego checkpointu. Stan optymalizatora nie jest przywracany, więc w ścisłym sensie nie jest to wznowienie. W praktyce to wagi przenoszą wyuczone zachowanie między rundami, ale warto wiedzieć, które z tych dwóch się dostaje.
Jak liczony jest wskaźnik interwencji?
Klatki oznaczone jako interwencja podzielone przez wszystkie klatki przebiegu. Widać go w statusie przejęcia i to jedna liczba warta zanotowania przy każdej rundzie, obok użytego checkpointu i wytrenowanej mieszanki.
Z jakimi policy da się prowadzić tę pętlę?
ACT, SmolVLA, Pi0 oraz GR00T N1.5 lub N1.7. Sama pętla jest niezależna od policy, bo produkuje tylko zbiory danych i checkpointy; praktyczna różnica dotyczy czasu trwania rundy i potrzebnego GPU.
Czy da się to robić bez własnego robota?
Nagrywać i trenować da się bez robota, kupując zbiory danych na marketplace albo zlecając pracę operatorom, a prawdziwym SO-100 można sterować w przeglądarce na stronie live. Runda DAgger to co innego: potrzebuje ramienia, które można przejąć w trakcie przebiegu, więc do samej pętli potrzebny jest sprzęt na własnym biurku.
A real SO-100, live in the browser. No signup, no hardware needed.
Przeprowadź pierwszą rundę w tym tygodniu
Zainstaluj klienta, uruchom checkpoint, który już masz, i przejmij kontrolę, gdy ramię pierwszy raz sięgnie za kostkę. Ten jeden przebieg to DAgger w miniaturze: wszystko potem to już tylko składanie mieszanki i płacenie za godziny GPU.