LeRobot documentation

DM0.5 para LeRobot

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

DM0.5 para LeRobot

DM05, también publicado como DM0.5, es el modelo de Visión-Lenguaje-Acción de Dexmal para el control de robots en entornos abiertos. El adaptador de LeRobot preserva la ruta del modelo OpenDM mientras utiliza conjuntos de datos, procesadores, entrenamiento, creación de puntos de control, carga desde Hub y evaluación estándar de LeRobot.

Para más detalles sobre el modelo, consulte el blog técnico de DM0.5, el repositorio OpenDM y la publicación original de Dexmal/DM05.

Instalación

pip install -e ".[training,dm05]"   # training
pip install -e ".[libero,dm05]"     # LIBERO evaluation on Linux

Checkpoint

Usa lerobot/dm05_base con --policy.path. Es una conversión de LeRobot autónoma del checkpoint crudo de OpenDM y admite DM05Policy.from_pretrained().

La configuración base registra el contrato de estado/acción de 14 dimensiones de OpenDM. El modelo principal de DM05 admite hasta 32 dimensiones; el ajuste fino nuevo resuelve las características efectivas de imagen, estado y acción desde el conjunto de datos objetivo.

Contrato del conjunto de datos

DM05 acepta conjuntos de datos estándar de LeRobot con:

  • una o más observaciones de imagen o video;
  • observation.state;
  • action;
  • descripciones de tareas.

Establezca policy.image_keys cuando el orden de las cámaras deba ser explícito. RoboTwin, ALOHA y otras fuentes no necesitan un lector específico de DM05 después de la conversión al esquema estándar de LeRobot. Mantenga las claves estándar observation.state y action; use rename_map solo para alinear los nombres de las cámaras.

Entrenamiento

La receta LIBERO sigue a OpenDM:

lerobot-train \
  --dataset.repo_id=lerobot/libero \
  --rename_map='{"observation.images.image": "observation.images.front", "observation.images.image2": "observation.images.wrist"}' \
  --dataset.video_backend=pyav \
  --policy.path=lerobot/dm05_base \
  --policy.add_state=false \
  --policy.chunk_size=10 \
  --policy.n_action_steps=10 \
  --policy.repo_id=your_repo_id \
  --output_dir=outputs/train/dm05-libero \
  --steps=50000 \
  --batch_size=8 \
  --policy.device=cuda

Parámetros clave de entrenamiento

ParámetroValor de LIBEROSignificado
dataset.repo_idlerobot/liberoConjunto de datos de entrenamiento estándar de LeRobot
policy.pathlerobot/dm05_basePunto de control base autocontenido
rename_mapimage/image2 a front/wristNombres de cámaras utilizados por el comando eval y lerobot/dm05_libero
policy.add_statefalseCoincide con el prompt de LIBERO de OpenDM sin tokens de estado
policy.use_relative_actionsfalse (valor predeterminado del punto de control)Aprende las acciones almacenadas sin cambios; el modo relativo es una opción explícita
policy.chunk_size10Número de acciones predichas por bloque
policy.n_action_steps10Número de ejecuciones antes de la siguiente llamada al modelo; como máximo chunk_size
policy.repo_idyour_repo_idDestino de Hub; use policy.push_to_hub=false para ejecuciones solo locales

El modo de control del entorno se configura de forma independiente de la representación de la acción de la política. El modo relativo requiere que las dimensiones del estado/acción coincidan.

Cámaras

El conjunto de cámaras forma parte de la configuración de la política, y el prompt siempre renderiza exactamente esas cámaras. El ajuste fino desde lerobot/dm05_base, que no declara ninguna, toma las cámaras del conjunto de datos de entrenamiento. Un punto de control ajustado mantiene sus propios nombres de cámara: mapea un conjunto de datos con nombres diferentes hacia ellos con --rename_map, por ejemplo --rename_map='{"observation.images.top": "observation.images.front"}'.

Estadísticas de normalización

El entrenamiento utiliza las estadísticas de estado/acción del conjunto de datos en meta/stats.json. Las estadísticas de acción deben coincidir con la representación utilizada para el entrenamiento. Con policy.use_relative_actions=true, calcúlalas después de la transformación de acción relativa, utilizando el mismo tamaño de bloque y las dimensiones excluidas. Consulta la guía de acción relativa.

Evaluación

El punto de control de LIBERO lerobot/dm05_libero se entrenó durante 50.000 pasos y se evaluó en las 40 tareas de LIBERO con 5 episodios por tarea:

MUJOCO_GL=egl lerobot-eval \
  --policy.path=lerobot/dm05_libero \
  --env.type=libero \
  --env.task=libero_spatial,libero_object,libero_goal,libero_10 \
  --env.camera_name_mapping='{"agentview_image":"front","robot0_eye_in_hand_image":"wrist"}' \
  --env.observation_height=256 \
  --env.observation_width=256 \
  --env.control_mode=relative \
  --eval.n_episodes=5 \
  --eval.batch_size=1 \
  --seed=7 \
  --policy.device=cuda
SuiteÉxitos
Espacial49/50
Objeto50/50
Objetivo50/50
LIBERO-1048/50
Total197/200 (98.5%)

Esta es una verificación de reproducción de 200 episodios, no el protocolo de evaluación LIBERO de 2.000 episodios.

Distribución del punto de control

Utilice el directorio de checkpoint completo, que contiene los pesos de la política, la configuración y el estado del procesador. Un model.safetensors por sí solo no es suficiente para el entrenamiento o la inferencia.

Licencia

La integración de LeRobot es Apache-2.0. Los pesos del modelo siguen la licencia adjunta a la tarjeta del modelo correspondiente de DM05

Update on GitHub