VLA: robôs que veem, entendem e agem|INEMA.CLUB-PRO

Aula 5 · 18 min

Mão na massa com LeRobot 0.6

O LeRobot, da Hugging Face, junta num lugar só os dados, as políticas e os comandos para gravar, treinar e rodar. Nesta aula você treina uma política ACT de verdade, por poucos passos, e sai com um checkpoint no disco. Sem robô e sem conta.

Começar a aula
Mesa de desenvolvedor com notebook mostrando uma curva de treino ao lado de um braço robótico pequeno e uma câmera USB.

Nesta aula você vai

  1. 1O ciclo record → train → eval → rollout
  2. 2Treinar uma ACT em 200 passos e achar o checkpoint
  3. 3Ler a loss no log sem se enganar
  4. 4Quanto tempo leva em GPU e em CPU

Objetivo: instalar o LeRobot 0.6, treinar uma política pequena e entender o ciclo gravar → treinar → rodar.

01O ciclo do LeRobot

Quatro comandos. Os dois do meio não precisam de robô. Clique em cada um.

ACT = Action Chunking with Transformers: uma política pequena que devolve chunks de ações, a ideia da aula 2.

Gravar e rodar precisam do braço. Treinar e avaliar rodam em qualquer computador.

02O que você precisa saber antes de treinar

Clique em cada etapa.

1. Instalação 0.6

Desde a 0.6 o pacote base é enxuto: para treinar, instale lerobot[training]. Para simulação, extras como [pusht] ou [aloha].

Python 3.12 e PyTorch 2.7 ou mais novo. Algumas opções mudaram de nome: eval_freq virou env_eval_freq, e --dataset.vcodec virou --dataset.rgb_encoder.vcodec.

03Treinar uma ACT por 200 passos

Mesmo venv da aula 4. Troque cuda por cpu se não tiver GPU NVIDIA.

Terminal · treino curto
lerobot-train \
  --policy.type=act \
  --dataset.repo_id=lerobot/pusht \
  --steps=200 \
  --save_freq=200 \
  --log_freq=50 \
  --batch_size=8 \
  --policy.device=cuda \
  --policy.push_to_hub=false \
  --wandb.enable=false \
  --output_dir=outputs/train/act_pusht_teste \
  --job_name=act_pusht_teste
Terminal · conferir o checkpoint
ls outputs/train/act_pusht_teste/checkpoints/
ls outputs/train/act_pusht_teste/checkpoints/last/pretrained_model/
Com o SO-101 (da documentação, precisa do braço)
lerobot-record \
  --robot.type=so101_follower \
  --robot.port=<porta do seguidor> \
  --teleop.type=so101_leader \
  --teleop.port=<porta do líder> \
  --dataset.repo_id=<seu usuário>/meu-dataset \
  --dataset.num_episodes=5 \
  --dataset.single_task="Pegue o cubo preto" \
  --dataset.streaming_encoding=true \
  --dataset.encoder_threads=2
Exemplo do repositório
INFO ... cfg.steps=200 (200)
INFO ... dataset.num_frames=25650 (26K)
INFO ... dataset.num_episodes=206
INFO ... num_learnable_params=51588994 (52M)
INFO ... step:50 ... loss:14.587 ...
INFO ... step:100 ... loss:4.694 ...
INFO ... step:150 ... loss:3.878 ...
INFO ... step:200 ... loss:3.473 ... mem_gb:0.95
INFO ... Checkpoint policy after step 200
INFO ... End of training

$ ls outputs/train/act_pusht_teste/checkpoints/
000200  last

$ ls outputs/train/act_pusht_teste/checkpoints/last/pretrained_model/
config.json  model.safetensors  policy_postprocessor.json ...
train_config.json

LeRobot 0.6.1, GPU NVIDIA GB10: 26 s no total. Só na CPU: 321 s, loss final 3.536. Linhas encurtadas com "...". Na primeira vez ele também baixa os pesos do ResNet-18 que a ACT usa para ver.

04Prática: o seu primeiro checkpoint

Uns 5 minutos em CPU, menos de 1 minuto em GPU.

E1 · Treinar 200 passos

15 min

Rode o lerobot-train do quadro (com cpu ou cuda). Cronometre.

Pronto quando: ls outputs/train/act_pusht_teste/checkpoints/ mostra 000200 e last.

E2 · Ler a loss

5 min

No log, ache as linhas step:50 e step:200 e anote a loss das duas.

Pronto quando: a loss do passo 200 é menor que a do passo 50 e você anotou quanto tempo o treino levou na sua máquina.

E3 · Mais passos (opcional, com GPU)

15 min

Repita com --steps=5000 --save_freq=5000 --batch_size=32 e outro --output_dir. Guarde o checkpoint: a aula 6 compara os dois.

Pronto quando: existe a pasta checkpoints/005000 (aqui levou 474 s na GPU, com loss final 0.329).

05Teste o que aprendeu

A explicação aparece depois da sua resposta.

Pergunta 1 de 4

Quais comandos do ciclo rodam sem robô?competência

06Resumo

Quatro comandosrecord, train, eval, rollout. Train e eval não precisam de robô.
Instalação 0.6lerobot[training], Python 3.12, push_to_hub=false para treinar sem conta.
Tempo real200 passos: 26 s em GPU, 5 min em CPU aqui. Treino de verdade: horas.

Fontes desta aula

Aula anteriorPróxima aula