VLA: robots que ven, entienden y actúan|INEMA.CLUB-PRO

Clase 5 · 18 min

Manos a la obra con LeRobot 0.6

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
Escritorio de desarrollador con un portátil que muestra una curva de entrenamiento junto a un brazo robótico pequeño y una cámara USB.

En esta lección vas a

  1. 1El ciclo record → train → eval → rollout
  2. 2Entrenar una ACT en 200 pasos y encontrar el checkpoint
  3. 3Leer la loss en el log sin engañarte
  4. 4Cuánto tarda en GPU y en CPU

Objetivo: instalar LeRobot 0.6, entrenar una política pequeña y entender el ciclo grabar → entrenar → ejecutar.

01El ciclo de LeRobot

Cuatro comandos. Los dos del medio no necesitan robot. Haz clic en cada uno.

ACT = Action Chunking with Transformers: una política pequeña que devuelve chunks de acciones, la idea de la clase 2.

Grabar y ejecutar necesitan el brazo. Entrenar y evaluar funcionan en cualquier computadora.

02Lo que necesitas saber antes de entrenar

Haz clic en cada paso.

1. Instalación 0.6

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.

03Entrenar una ACT por 200 pasos

El mismo venv de la clase 4. Cambia cuda por cpu si no tienes GPU NVIDIA.

Terminal · entrenamiento corto
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 · revisar el checkpoint
ls outputs/train/act_pusht_teste/checkpoints/
ls outputs/train/act_pusht_teste/checkpoints/last/pretrained_model/
Con el SO-101 (de la documentación, necesita el brazo)
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
Ejemplo del repositorio
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.

04Práctica: tu primer checkpoint

Unos 5 minutos en CPU, menos de 1 minuto en GPU.

E1 · Entrenar 200 pasos

15 min

Ejecuta el lerobot-train del cuadro (con cpu o cuda). Cronometra.

Listo cuando: ls outputs/train/act_pusht_teste/checkpoints/ muestra 000200 y last.

E2 · Leer la loss

5 min

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.

E3 · Más pasos (opcional, con GPU)

15 min

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).

05Prueba lo que aprendiste

La explicación aparece después de tu respuesta.

Pregunta 1 de 4

¿Qué comandos del ciclo corren sin robot?competencia

06Resumen

Cuatro comandosrecord, train, eval, rollout. Train y eval no necesitan robot.
Instalación 0.6lerobot[training], Python 3.12, push_to_hub=false para entrenar sin cuenta.
Tiempo real200 pasos: 26 s en GPU, 5 min en CPU aquí. Entrenamiento de verdad: horas.

Fuentes de esta clase

Clase anteriorSiguiente clase