E1 · Treinar 200 passos
15 minRode o lerobot-train do quadro (com cpu ou cuda). Cronometre.
Pronto quando: ls outputs/train/act_pusht_teste/checkpoints/ mostra 000200 e last.
Aula 5 · 18 min
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
Objetivo: instalar o LeRobot 0.6, treinar uma política pequena e entender o ciclo gravar → treinar → rodar.
Quatro comandos. Os dois do meio não precisam de robô. Clique em cada um.
Gravar e rodar precisam do braço. Treinar e avaliar rodam em qualquer computador.
Clique em cada etapa.
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.
Os 200 passos desta prática levaram 26 s numa GPU NVIDIA (GB10) e 321 s, uns 5 minutos, só na CPU de 20 núcleos da mesma máquina (19/10/2026). Um notebook comum vai ser mais lento.
Treino de verdade é outra escala: a documentação do LeRobot diz que treinar no seu robô leva várias horas. O guia de hardware da 0.6 mede memória e tempo por família de política.
Para esta prática, CPU basta. Para treinos longos, a 0.6 aceita o mesmo lerobot-train na nuvem com --job.target, pelo HF Jobs, que é cobrado por uso e exige conta.
Não é preciso para o curso: tudo aqui roda local.
O SO-101 é o braço de entrada do LeRobot. Com o par líder e seguidor você grava o seu dataset com lerobot-record e treina igual.
O LeLab faz o fluxo inteiro no navegador, sem linha de comando, e hoje só suporta o SO-ARM101.
Mesmo venv da aula 4. Troque cuda por cpu se não tiver GPU NVIDIA.
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
ls outputs/train/act_pusht_teste/checkpoints/ ls outputs/train/act_pusht_teste/checkpoints/last/pretrained_model/
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
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.
--policy.push_to_hub=false: sem ele, o treino para logo no início com ValueError: 'repo_id' argument missing. Please specify it to push the model to the hub. (testado em 19/10/2026): por padrão ele quer enviar a política ao Hub.--policy.device=cuda sem GPU NVIDIA: troque por cpu.Uns 5 minutos em CPU, menos de 1 minuto em GPU.
Rode o lerobot-train do quadro (com cpu ou cuda). Cronometre.
Pronto quando: ls outputs/train/act_pusht_teste/checkpoints/ mostra 000200 e last.
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.
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).
A explicação aparece depois da sua resposta.
Pergunta 1 de 4
Quais comandos do ciclo rodam sem robô?competência
Pergunta 2 de 4
Onde fica o checkpoint depois do treino?
Pergunta 3 de 4
A loss caiu de 14,6 para 3,5. O que isso garante?
Pergunta 4 de 4
Para que serve a estratégia dagger do lerobot-rollout?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.