Prendi il controllo quando la policy sbaglia, poi addestrala sulla tua correzione.
Una policy addestrata con behavior cloning conosce solo gli stati visitati dalle tue dimostrazioni. DAgger colma questo divario con dati provenienti dagli stati che la policy stessa raggiunge. AY-Robots esegue l'intero ciclo su un SO-100: guidare un checkpoint, prendere il controllo a metà run, conservare gli episodi corretti, comporre il mix e continuare l'addestramento dal checkpoint appena guidato.
- HG-DAgger, human-gated
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- Tasso di intervento per round
Perché una policy addestrata fa qualcosa che non è mai stato dimostrato
Il behavior cloning tratta il controllo come un normale apprendimento supervisionato: osservazione in ingresso, target articolare in uscita, adattato ai frame registrati da una persona. Questo vale solo finché il robot resta sugli stati visitati da quella persona, e non è così. Una pinza che si chiude quaranta millisecondi troppo presto sposta il cubo di due millimetri rispetto alla posa dimostrata. L'osservazione successiva non è contenuta nel training set, quindi l'azione in quel punto è un'estrapolazione, e lo stato dopo si trova ancora più fuori. La distribuzione di addestramento e la distribuzione che la policy appresa produce davvero sono due cose diverse, e la seconda si allontana dalla prima man mano che l'episodio procede.
Ross, Gordon e Bagnell hanno descritto esattamente questo fallimento della riduzione nel 2011 e ne hanno quantificato il danno: un classificatore che sbaglia con probabilità e sotto la distribuzione dell'esperto può commettere, su un orizzonte di T passi e sotto la distribuzione che genera da solo, un numero di errori dell'ordine di T al quadrato per e, perché un errore produce osservazioni che l'esperto non ha mai generato e gli errori si accumulano. La loro soluzione è l'algoritmo di cui parla questa pagina: eseguire la policy attuale, raccogliere etichette dell'esperto per gli stati che visita, aggregarle con tutto ciò che è stato raccolto finora, riaddestrare, ripetere. Più dimostrazioni dello stesso tipo non aiutano, perché ricampionano la stessa distribuzione. Le etichette sugli stati che la policy raggiunge sì. La variante implementata qui è human-gated (HG-DAgger, Kelly et al.): la policy mantiene il controllo finché una persona non decide che sta sbagliando e prende il controllo, così le correzioni nascono solo dove servono, e al braccio non viene mai chiesto di entrare in uno stato che l'operatore non permetterebbe.
- Il behavior cloning vale solo sulla distribuzione di stati su cui è stato addestrato.
- Il fallimento si autoamplifica: una piccola deviazione produce uno stato sconosciuto, che produce una deviazione più grande.
- Il rimedio non sono più dimostrazioni, sono etichette sugli stati che la policy stessa raggiunge.
- Human-gated significa che è l'operatore a decidere quando intervenire, non un punteggio di autonomia.
Perché l'errore si accumula
Trascina l'orizzonte. Con behavior cloning il costo aggiuntivo atteso cresce all'incirca con il quadrato del numero di passi, perché ogni errore produce stati che le dimostrazioni non hanno mai coperto; un ciclo di aggregazione mantiene la crescita vicina alla linearità (Ross et al., 2011).
Curve illustrative basate sui limiti in Ross et al. (2011), non misurazioni del tuo robot. Conta la forma, non i numeri.
Un round DAgger in sei passaggi
Così funziona davvero il ciclo sulla piattaforma, non uno schema. Ogni passaggio qui sotto corrisponde a un comando nel cockpit.
Percorri il ciclo passo per passo
Gli stessi sei passaggi, uno alla volta, con quello che succede sul braccio e nel dataset a ciascuno di essi.
Guidare la policy e registrarla
Avvia un run di inferenza su un checkpoint che hai addestrato tu. Il run viene registrato mentre avviene, con il testo del compito del run stesso, così i frame restano utilizzabili come dati di addestramento in seguito, invece di essere solo un video da guardare.
Prendere il controllo e correggere
Nel momento in cui il braccio fa la cosa sbagliata, premi Prendi il controllo. Il runner si mette in pausa e il braccio è tuo. Con un leader arm, questo prima si porta nella posa del follower e poi passa il controllo; con input da tastiera o slider, scelto all'inizio del run, la presa di controllo è immediatamente manuale. Correggi il movimento, poi restituisci il controllo alla policy. I frame registrati durante la presa di controllo vengono contrassegnati automaticamente come interventi.
Selezionare il run
Decidi per ogni run cos'era: archivialo come correzione, tienilo come run di valutazione, oppure scartalo. I fermo immagine attorno a un passaggio di consegne restano nella cartella raw e non entrano mai nel dataset.
Sincronizzare il dataset delle correzioni
Le correzioni si accumulano in un dataset di correzioni specifico per policy e vanno nel tuo bucket tramite la sincronizzazione automatica sul cloud. A questo punto non viene unito nulla a nient'altro; le correzioni sono semplicemente un dataset a sé.
Comporre il mix da soli
Usa Componi dataset per costruire il set di addestramento per il round successivo: il dataset originale più le correzioni, con gli episodi scelti esplicitamente per fonte. Il risultato è un dataset normale che si sincronizza e si addestra come qualsiasi altro. Niente viene mescolato di nascosto, e nessun dato di simulazione viene aggiunto automaticamente.
Continuare l'addestramento dal checkpoint
Addestra il dataset composto con Continua da checkpoint invece di partire dal modello base, così il round inizia dalla policy che hai appena guidato. Per essere precisi: questo inizializza i pesi da quel checkpoint, non è una ripresa dell'optimizer.
Quello che la piattaforma ti toglie dalle mani
Ogni voce qui è un passaggio del ciclo che altrimenti dovresti costruire e mantenere da solo.
Presa di controllo senza leader arm
Scegli input da tastiera o slider all'inizio del run e puoi correggere con il solo laptop. I movimenti da tastiera sono limitati lato server a due gradi per giunto e quattro sulla pinza; i target dello slider sono assoluti e il server si muove al massimo di sei gradi verso di essi per chiamata. I limiti sono imposti dal server, non dall'interfaccia, quindi un tasto bloccato non può far impazzire il braccio.
Documentazione sulla teleoperazioneInterventi contrassegnati per frame
Ogni frame registrato mentre tieni il controllo del braccio porta un flag di intervento, e la colonna action contiene la posa comandata per intero. Non devi mantenere a mano una colonna di flag né allinearla agli indici dei frame in seguito.
Formato dataset LeRobot (in inglese)Selezione: correzione, valutazione o cestino
Ogni run riceve una decisione sulla scheda di salvataggio. I run di correzione alimentano il round di addestramento successivo, i run di valutazione restano fuori dall'addestramento così da rimanere una misura pulita, e i run andati male spariscono invece di avvelenare in silenzio il mix.
Sessioni ed episodiComporre il mix in modo esplicito
Il set di addestramento per il round n lo assembli tu: dataset originale più correzioni, episodi selezionati per fonte. Nessuna miscelazione automatica, nessun dato di simulazione nascosto, e il risultato composto si comporta come qualsiasi altro dataset.
DatasetContinuare da un checkpoint
Punta un run di addestramento al checkpoint che hai appena guidato invece che al modello base, così ogni round inizia dove è finito l'ultimo. Inizializza solo i pesi; lo stato dell'optimizer non viene ripristinato, per questo conviene trattare il primo round come un test di fattibilità.
AddestramentoGPU affittate per round
ACT e SmolVLA su una 4090, Pi0 e GR00T N1.5 o N1.7 su una A100 con 80 GB. Avvii un round, il pod si avvia, i checkpoint arrivano nel tuo bucket, e paghi solo le ore che il round ha impiegato.
Prezzi GPUPianifica i tuoi round
Il tasso di intervento è la metrica di avanzamento del ciclo: frame corretti diviso frame del run. Imposta il punto di partenza e quanto rende ogni round, e guarda quanti round servono per arrivare dove vuoi.
| Round | Tasso di intervento | Frame corretti |
|---|---|---|
| 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 | |
Un modello, non una previsione. I round reali sono irregolari, e un round che non muove il tasso non ha portato nulla; è esattamente questo il segnale da tenere d'occhio.
Costruire il ciclo da soli oppure farlo girare qui
Niente di tutto questo è impossibile a mano. È una questione di quante serate finiscono nell'idraulica invece che nei round, e c'è una riga in cui farlo da soli è chiaramente la scelta migliore.
| Passaggio del ciclo | Costruito a mano | Su AY-Robots |
|---|---|---|
| Prendere il controllo a metà run | Un leader arm, oppure codice tuo sul bus dei servo. La presa di controllo da tastiera e slider, compresi i limiti di sicurezza, la scrivi e la debugghi tu su hardware reale. | Leader arm, tastiera o slider, scelti all'avvio del run. I limiti d'angolo vivono nel server. |
| Contrassegnare gli interventi | Aggiungi tu la colonna di flag, la mantieni allineata all'indice dei frame e la ricontrolli ogni volta che cambia il formato di registrazione. | Ogni frame registrato durante una presa di controllo viene contrassegnato automaticamente, con la posa comandata nella colonna action. |
| Ordinare i run | Convenzioni di cartelle e script di shell. I fermo immagine attorno a un passaggio di consegne li trovi ed escludi tu. | Una decisione per run sulla scheda di salvataggio. I frame di passaggio di consegne restano nella cartella raw. |
| Costruire il dataset misto | Script di merge per ogni versione di formato. Tenere coerenti indici degli episodi, metadati e riferimenti video è la parte noiosa. | Componi da originale più correzioni con selezione degli episodi per fonte; il risultato è un dataset normale. |
| Iniziare il round successivo dall'ultima policy | Colleghi tu il checkpoint nel trainer, e puoi anche ripristinare lo stato dell'optimizer se vuoi una vera ripresa. | Un campo per il checkpoint di base. Solo pesi: inizializza dal checkpoint, non è una ripresa dell'optimizer. |
| Controllo sul ciclo di addestramento | Totale. Il tuo loss, il tuo schedule, le tue ablation, la tua strumentazione, nessuna piattaforma in mezzo. Se la domanda di ricerca è il ciclo di addestramento stesso, fallo a mano. | Un percorso fisso con un elenco definito di policy e gli iperparametri che il modulo espone, non codice arbitrario. |
Gli articoli su cui si basa tutto questo
Leggeteli prima di discutere il ciclo. Ogni link porta alla pagina dell'abstract, non a un 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)
L'articolo originale su DAgger: espone il problema dell'errore che si accumula, fornisce il limite di T al quadrato per l'approccio puramente supervisionato e propone di aggregare dati dagli stati che il learner visita da solo.
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
La variante human-gated: è l'esperto a decidere quando prendere il controllo invece di essere interrogato sugli stati scelti dalla policy, ed è la modalità che questa piattaforma implementa.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
L'altro modo di regolare gli interventi: il disaccordo tra ensemble come segnale di fiducia su quando il learner può agire da solo. Un utile contrasto rispetto a lasciar decidere a una persona.
- 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
Tratta l'attenzione umana come la risorsa scarsa e chiede aiuto solo negli stati nuovi o rischiosi, l'inquadramento giusto quando una persona sorveglia il braccio per un intero pomeriggio.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
L'alternativa onesta: invece di correggere la policy online, perturbare le dimostrazioni così che l'esperto mostri il recupero. Da conoscere prima di impegnarsi negli interventi.
- 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
La mappa del campo: quali forme di feedback umano esistono, quali interfacce le veicolano e dove si colloca tra queste l'intervento in stile DAgger.
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
L'articolo su ACT. L'action chunking è il motivo per cui un braccio economico può essere guidato da una policy di imitazione, ed ACT è la policy più veloce con cui iterare un round 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
Un VLA a flow matching costruito su un modello vision-language pre-addestrato, ed è uno dei checkpoint che puoi affinare qui; l'articolo è esplicito nel dire che le nuove abilità vengono dal fine-tuning, non dal solo modello base.
Le domande che le persone fanno davvero
Mi serve un leader arm per DAgger?
No. Scegli input da tastiera o slider all'inizio del run e la presa di controllo è manuale fin dal primo frame, pilotata dal browser. Un leader arm è più piacevole per i movimenti fini, ed è la modalità in cui il braccio si allinea da solo prima del passaggio di consegne, ma il ciclo funziona anche senza.
Quanti round DAgger mi servono?
Non esiste un numero fisso onesto. Osserva il tasso di intervento: se non scende da un round all'altro, quel round non ha portato nulla, e il problema di solito sta nell'impostazione del compito, nelle telecamere o nel dataset originale, non nel numero di round.
È vero DAgger o qualcosa di più libero?
È HG-DAgger, la variante human-gated. Il DAgger classico interroga l'esperto sugli stati scelti dalla policy, compresi stati in cui nessun operatore sensato lascerebbe arrivare un braccio reale. Qui è una persona a decidere quando intervenire, e solo quei segmenti diventano etichette.
Mi alleno solo sulle correzioni?
No, e non dovresti. Addestrarsi solo sulle correzioni produce una policy che sa solo recuperare. Il dataset composto è i dati originali più le correzioni, con gli episodi di ogni fonte scelti esplicitamente.
Continuare da un checkpoint riprende il run di addestramento?
Inizializza i pesi da quel checkpoint. Lo stato dell'optimizer non viene ripristinato, quindi non è una ripresa in senso stretto. In pratica sono i pesi a portare il comportamento appreso da un round all'altro, ma vale la pena sapere quale dei due si sta ottenendo.
Come si calcola il tasso di intervento?
Frame contrassegnati come intervento diviso il totale dei frame del run. Compare nello stato della presa di controllo, ed è l'unico numero che vale la pena annotare per ogni round, insieme al checkpoint guidato e al mix addestrato.
Con quali policy posso far girare questo ciclo?
ACT, SmolVLA, Pi0 e GR00T N1.5 o N1.7. Il ciclo in sé è indipendente dalla policy perché produce solo dataset e checkpoint; in pratica la differenza sta in quanto dura un round e quale GPU serve.
Posso farlo senza possedere un robot?
Puoi registrare e addestrare senza uno, acquistando dataset sul marketplace o commissionando operatori, e puoi guidare un vero SO-100 nel browser sulla pagina live. Un round DAgger è diverso: serve un braccio che tu possa prendere in mano a metà run, quindi per il ciclo vero e proprio serve hardware sulla tua scrivania.
A real SO-100, live in the browser. No signup, no hardware needed.
Fai il tuo primo round questa settimana
Installa il client, guida un checkpoint che hai già e prendi il controllo la prima volta che il braccio sbaglia la presa sul cubo. Quell'unico run è un round DAgger in miniatura: tutto il resto è comporre il mix e pagare le ore di GPU.