DAgger com controle humano, de ponta a ponta

Assuma o controle quando a policy errar, depois treine exatamente essa correção.

Uma policy treinada por Behavior Cloning só conhece os estados visitados pelas suas demonstrações. O DAgger fecha essa lacuna com dados dos estados que a própria policy alcança. A AY-Robots roda o loop completo em um SO-100: rodar um checkpoint, assumir o controle no meio da execução, manter os episódios corrigidos, montar a mistura e continuar o treinamento a partir do checkpoint que você acabou de rodar.

  • HG-DAgger, com controle humano
  • SO-100 / SO-101
  • ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
  • Taxa de intervenção por rodada

Por que uma policy treinada faz algo que nunca foi demonstrado

Behavior Cloning trata o controle como aprendizado supervisionado comum: observação na entrada, alvo de junta na saída, ajustado aos frames que uma pessoa gravou. Isso só é válido enquanto o robô permanece nos estados que essa pessoa visitou, e ele não permanece. Uma garra que fecha quarenta milissegundos cedo demais desloca o cubo dois milímetros da pose demonstrada. A observação seguinte é uma que o conjunto de treino não contém, logo a ação ali é uma extrapolação, e o estado seguinte a esse fica ainda mais distante. A distribuição de treino e a distribuição que a policy aprendida realmente induz são duas coisas diferentes, e a segunda se afasta da primeira à medida que o episódio avança.

Ross, Gordon e Bagnell descreveram exatamente esse fracasso em 2011 e quantificaram o dano: um classificador que erra com probabilidade e sob a distribuição do especialista pode cometer da ordem de T ao quadrado vezes e erros ao longo de um horizonte de T passos sob a distribuição que ele mesmo induz, porque um erro produz observações que o especialista nunca gerou, e os erros se acumulam. A solução deles é o algoritmo do qual esta página trata: rodar a policy atual, coletar labels do especialista para os estados que ela visita, agregá-los a tudo que já foi coletado, retreinar, repetir. Mais demonstrações do mesmo tipo não ajudam, porque reamostram a mesma distribuição. Labels sobre os estados que a policy alcança ajudam. A variante implementada aqui é com controle humano (HG-DAgger, Kelly et al.): a policy mantém o controle até que uma pessoa decida que algo está errado e assuma, de modo que correções só surgem onde são necessárias, e o braço nunca é levado a um estado que o operador não permitiria.

  • Behavior Cloning só vale para a distribuição de estados na qual foi treinado.
  • O erro se autoamplifica: um pequeno desvio gera um estado desconhecido, que gera um desvio maior.
  • O remédio não são mais demonstrações, e sim labels sobre os estados que a própria policy alcança.
  • Controle humano significa que o operador decide quando intervir, não uma pontuação de autonomia.

Por que o erro se acumula

Arraste o horizonte. Sob Behavior Cloning, o custo extra esperado cresce aproximadamente com o quadrado do número de passos, porque cada erro produz estados que as demonstrações nunca cobriram; um loop de agregação mantém esse crescimento próximo do linear (Ross et al., 2011).

200
1.0 %
Behavior Cloning
400
DAgger
2.00
200×
Behavior Cloning ÷ DAgger
0.000100200300400050100150200Custo extra esperado (limite)
Horizonte da tarefa (passos)

Curvas ilustrativas a partir dos limites de Ross et al. (2011), não medições do seu robô. O que importa é a forma, não os números.

Uma rodada de DAgger em seis passos

É assim que o loop realmente roda na plataforma, não um esquema. Cada passo abaixo corresponde a um controle no cockpit.

Percorra o loop

Os mesmos seis passos, um de cada vez, com o que acontece no braço e no dataset em cada um deles.

01

Rodar a policy e gravar

Inicie uma execução de inferência com um checkpoint que você treinou. A execução é gravada enquanto acontece, com o texto da tarefa da própria execução, de modo que os frames sirvam depois como dados de treino, e não apenas como um vídeo para assistir.

1 de 6

O que a plataforma tira das suas mãos

Cada item aqui é um passo do loop que você, de outra forma, teria que construir e manter sozinho.

Retomada sem braço leader

Escolha entrada por teclado ou slider no início da execução e você já pode corrigir só com um laptop. Os ajustes de teclado são limitados no servidor a dois graus por junta e quatro na garra; os alvos de slider são absolutos, e o servidor move no máximo seis graus na direção deles por chamada. Os limites são aplicados pelo servidor, não pela interface, então uma tecla travada não consegue jogar o braço para fora do lugar.

Documentação de teleoperação

Intervenções marcadas por frame

Todo frame gravado enquanto você segura o controle do braço carrega uma marca de intervenção, e a coluna action carrega a pose completa comandada. Você não mantém uma coluna de flag manualmente nem a alinha aos índices de frame depois.

Formato de dataset do LeRobot

Triagem: correção, avaliação ou lixeira

Cada execução recebe uma decisão no cartão de salvar. Execuções de correção alimentam a próxima rodada de treino, execuções de avaliação ficam fora do treino e continuam sendo uma medição limpa, e execuções ruins somem em vez de contaminar a mistura silenciosamente.

Sessões e episódios

Monte a mistura de forma explícita

O conjunto de treino da rodada n é montado por você: dataset original mais correções, episódios selecionados por origem. Sem mistura automática, sem dados de simulação escondidos, e o resultado montado se comporta como qualquer outro dataset.

Datasets

Continue a partir de um checkpoint

Aponte uma execução de treino para o checkpoint que você acabou de rodar em vez do modelo base, de modo que cada rodada comece onde a anterior terminou. Só os pesos são inicializados; o estado do otimizador não é restaurado, por isso vale tratar a primeira rodada como um teste de viabilidade.

Treinamento

GPUs alugadas por rodada

ACT e SmolVLA em uma 4090, Pi0 e GR00T N1.5 ou N1.7 em uma A100 com 80 GB. Você inicia uma rodada, o pod sobe, os checkpoints chegam no seu bucket, e você paga pelas horas que a rodada levou.

Preços de GPU

Planeje suas rodadas

A taxa de intervenção é a métrica de progresso do loop: frames corrigidos dividido pelos frames da execução. Defina o ponto de partida e quanto cada rodada melhora, e veja quantas rodadas são necessárias para chegar aonde você quer.

30 %
25 %
3 000
RodadaTaxa de intervençãoFrames corrigidos
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

Um modelo, não uma previsão. Rodadas reais são irregulares, e uma rodada que não move a taxa não trouxe nada; esse é exatamente o sinal que vale observar.

Construir o loop você mesmo ou rodar aqui

Nada disso é impossível de fazer à mão. É uma questão de quantas noites vão para infraestrutura em vez de para rodadas, e há uma linha em que fazer sozinho é claramente a resposta melhor.

Passo do loopMontar à mãoNa AY-Robots
Assumir o controle no meio da execuçãoUm braço leader, ou seu próprio código no barramento dos servos. Retomada por teclado e slider, incluindo limites seguros, é algo que você escreve e depois depura em hardware real.Braço leader, teclado ou sliders, escolhidos no início da execução. Os limites de ângulo ficam no servidor.
Marcar intervençõesVocê adiciona a coluna de flag, mantém ela alinhada ao índice de frame e revisa tudo de novo a cada mudança no formato de gravação.Todo frame gravado durante uma retomada é marcado automaticamente, com a pose comandada na coluna action.
Organizar as execuçõesConvenções de diretório e scripts de shell. Os frames congelados ao redor de uma transferência são seus para encontrar e filtrar.Uma decisão por execução no cartão de salvar. Os frames de transferência ficam no diretório raw.
Construir o dataset misturadoScripts de merge por versão de formato. Manter índices de episódio, metadados e referências de vídeo consistentes é a parte tediosa.Montagem a partir do original mais correções com seleção de episódios por origem; o resultado é um dataset normal.
Começar a próxima rodada a partir da última policyVocê mesmo conecta o checkpoint ao trainer, e também pode restaurar o estado do otimizador se quiser uma retomada de verdade.Um campo para o checkpoint base. Só pesos: inicializa a partir do checkpoint, não é uma retomada do otimizador.
Controle sobre o loop de treinoTotal. Sua loss, seu cronograma, suas ablações, sua instrumentação, nenhuma plataforma no caminho. Se a pergunta de pesquisa é o próprio loop de treino, faça à mão.Um caminho fixo com uma lista definida de policies e os hiperparâmetros que o formulário expõe, não código arbitrário.

Os artigos em que isso se baseia

Leia antes de discordar do loop. Cada link vai para a página do abstract, não para um paywall.

  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)

    O artigo original do DAgger: apresenta o problema do erro cumulativo, dá o limite de T ao quadrado para a abordagem puramente supervisionada e propõe agregar dados dos estados que o próprio aprendiz visita.

  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

    A variante com controle humano: o especialista decide quando assumir o controle, em vez de ser consultado sobre estados escolhidos pela policy; esse é o modo implementado nesta plataforma.

  3. EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning

    Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019

    A outra forma de controlar intervenções: divergência entre um ensemble como sinal de confiança para quando o aprendiz pode agir sozinho. Contraste útil em relação a deixar uma pessoa julgar.

  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

    Trata a atenção humana como o recurso escasso e só pede ajuda em estados novos ou arriscados, o enquadramento certo quando uma pessoa supervisiona o braço a tarde inteira.

  5. DART: Noise Injection for Robust Imitation Learning

    Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017

    A alternativa honesta: em vez de corrigir a policy em tempo real, perturbar as demonstrações para que o especialista mostre a recuperação. Vale conhecer antes de se comprometer com intervenções.

  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

    O mapa da área: quais formas de feedback humano existem, quais interfaces as transportam e onde a intervenção ao estilo DAgger se encaixa entre elas.

  7. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware

    Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705

    O artigo do ACT. Action chunking é o motivo pelo qual um braço barato consegue ser controlado por uma policy de imitação, e o ACT é a policy mais rápida para iterar uma rodada de DAgger.

  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

    Um VLA de flow matching construído sobre um modelo de visão e linguagem pré-treinado, e um dos checkpoints que você pode ajustar por fine-tuning aqui; o artigo é explícito ao dizer que novas habilidades vêm do fine-tuning, não do modelo base sozinho.

Perguntas que as pessoas realmente fazem

Preciso de um braço leader para o DAgger?

Não. Escolha entrada por teclado ou slider no início da execução e a retomada já é manual desde o primeiro frame, controlada pelo navegador. Um braço leader é mais agradável para movimentos finos, e é o modo em que o braço se alinha sozinho antes de transferir o controle, mas o loop roda sem ele.

Quantas rodadas de DAgger eu preciso?

Não existe um número fixo honesto. Observe a taxa de intervenção: se ela não cair de uma rodada para a outra, essa rodada não trouxe nada, e o problema geralmente está na configuração da tarefa, nas câmeras ou no dataset original, não no número de rodadas.

Isso é DAgger de verdade ou algo mais solto?

É HG-DAgger, a variante com controle humano. O DAgger clássico consulta o especialista sobre estados escolhidos pela policy, incluindo estados aos quais nenhum operador sensato deixaria um braço real chegar. Aqui, uma pessoa decide quando intervir, e só esses trechos viram labels.

Eu treino só nas correções?

Não, e você não deveria. Treinar só nas correções produz uma policy que só sabe se recuperar. O dataset montado é o dado original mais as correções, com os episódios de cada origem escolhidos explicitamente.

Continuar de um checkpoint retoma a execução de treino?

Isso inicializa os pesos a partir desse checkpoint. O estado do otimizador não é restaurado, então, em sentido estrito, não é uma retomada. Na prática, os pesos são o que carrega o comportamento aprendido entre as rodadas, mas vale saber qual dos dois você está obtendo.

Como a taxa de intervenção é calculada?

Frames marcados como intervenção divididos pelo total de frames da execução. Ela aparece no status de retomada, e é o único número que vale a pena anotar por rodada, junto com o checkpoint rodado e a mistura treinada.

Com quais policies esse loop funciona?

ACT, SmolVLA, Pi0 e GR00T N1.5 ou N1.7. O loop em si é agnóstico à policy, porque só produz datasets e checkpoints; na prática, o que muda entre elas é quanto tempo uma rodada leva e qual GPU ela precisa.

Dá para fazer isso sem ter um robô?

Dá para gravar e treinar sem um robô, comprando datasets no marketplace ou contratando operadores, e dá para pilotar um SO-100 real pelo navegador na página ao vivo. Uma rodada de DAgger é diferente: precisa de um braço que você possa assumir no meio da execução, então, para o loop em si, você precisa de hardware na sua própria mesa.

Drive a real arm

A real SO-100, live in the browser. No signup, no hardware needed.

Rode sua primeira rodada esta semana

Instale o cliente, rode um checkpoint que você já tem e assuma o controle na primeira vez que o braço passar do cubo. Essa única execução já é uma rodada de DAgger em miniatura: tudo depois disso é montar a mistura e pagar pelas horas de GPU.