E1 · Entrenar 200 pasos
15 minEjecuta el lerobot-train del cuadro (con cpu o cuda). Cronometra.
Listo cuando: ls outputs/train/act_pusht_teste/checkpoints/ muestra 000200 y last.
Clase 5 · 18 min
LeRobot, de Hugging Face, reúne en un solo lugar los datos, las políticas y los comandos para grabar, entrenar y ejecutar. En esta clase entrenas una política ACT de verdad, en pocos pasos, y terminas con un checkpoint en el disco. Sin robot y sin cuenta.
Comenzar la lección
Objetivo: instalar LeRobot 0.6, entrenar una política pequeña y entender el ciclo grabar → entrenar → ejecutar.
Cuatro comandos. Los dos del medio no necesitan robot. Haz clic en cada uno.
Grabar y ejecutar necesitan el brazo. Entrenar y evaluar funcionan en cualquier computadora.
Haz clic en cada paso.
Desde la 0.6 el paquete base es ligero: para entrenar, instala lerobot[training]. Para simulación, extras como [pusht] o [aloha].
Python 3.12 y PyTorch 2.7 o más reciente. Algunas opciones cambiaron de nombre: eval_freq pasó a ser env_eval_freq, y --dataset.vcodec pasó a ser --dataset.rgb_encoder.vcodec.
Los 200 pasos de esta práctica tardaron 26 s en una GPU NVIDIA (GB10) y 321 s, unos 5 minutos, solo en la CPU de 20 núcleos de la misma máquina (19/10/2026). Una laptop común va a ser más lenta.
El entrenamiento de verdad es otra escala: la documentación de LeRobot dice que entrenar en tu robot toma varias horas. La guía de hardware de la 0.6 mide memoria y tiempo por familia de política.
Para esta práctica, la CPU basta. Para entrenamientos largos, la 0.6 acepta el mismo lerobot-train en la nube con --job.target, mediante HF Jobs, que se cobra por uso y requiere una cuenta.
No es necesario para el curso: todo aquí corre local.
El SO-101 es el brazo de entrada de LeRobot. Con el par líder y seguidor grabas tu propio dataset con lerobot-record y entrenas igual.
LeLab hace todo el flujo en el navegador, sin línea de comandos, y hoy solo es compatible con el SO-ARM101.
El mismo venv de la clase 4. Cambia cuda por cpu si no tienes 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=<puerto del seguidor> \ --teleop.type=so101_leader \ --teleop.port=<puerto del líder> \ --dataset.repo_id=<tu usuario>/meu-dataset \ --dataset.num_episodes=5 \ --dataset.single_task="Toma el cubo negro" \ --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 en total. Solo en CPU: 321 s, loss final 3.536. Líneas acortadas con "...". La primera vez también descarga los pesos de la ResNet-18 que la ACT usa para ver.
--policy.push_to_hub=false: sin él, el entrenamiento se detiene al inicio con ValueError: 'repo_id' argument missing. Please specify it to push the model to the hub. (probado el 19/10/2026): por defecto quiere enviar la política al Hub.--policy.device=cuda sin GPU NVIDIA: cámbialo por cpu.Unos 5 minutos en CPU, menos de 1 minuto en GPU.
Ejecuta el lerobot-train del cuadro (con cpu o cuda). Cronometra.
Listo cuando: ls outputs/train/act_pusht_teste/checkpoints/ muestra 000200 y last.
En el log, busca las líneas step:50 y step:200 y anota la loss de ambas.
Listo cuando: la loss del paso 200 es menor que la del paso 50 y anotaste cuánto tiempo tardó el entrenamiento en tu máquina.
Repite con --steps=5000 --save_freq=5000 --batch_size=32 y otro --output_dir. Guarda el checkpoint: la clase 6 compara los dos.
Listo cuando: existe la carpeta checkpoints/005000 (aquí tardó 474 s en la GPU, con loss final 0.329).
La explicación aparece después de tu respuesta.
Pregunta 1 de 4
¿Qué comandos del ciclo corren sin robot?competencia
Pregunta 2 de 4
¿Dónde queda el checkpoint después del entrenamiento?
Pregunta 3 de 4
La loss bajó de 14,6 a 3,5. ¿Qué garantiza eso?
Pregunta 4 de 4
¿Para qué sirve la estrategia dagger de lerobot-rollout?
Elige una alternativa. La explicación aparece después de tu intento.