LeRobot documentation
DM0.5 para LeRobot
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 LinuxCheckpoint
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=cudaParámetros clave de entrenamiento
| Parámetro | Valor de LIBERO | Significado |
|---|---|---|
dataset.repo_id | lerobot/libero | Conjunto de datos de entrenamiento estándar de LeRobot |
policy.path | lerobot/dm05_base | Punto de control base autocontenido |
rename_map | image/image2 a front/wrist | Nombres de cámaras utilizados por el comando eval y lerobot/dm05_libero |
policy.add_state | false | Coincide con el prompt de LIBERO de OpenDM sin tokens de estado |
policy.use_relative_actions | false (valor predeterminado del punto de control) | Aprende las acciones almacenadas sin cambios; el modo relativo es una opción explícita |
policy.chunk_size | 10 | Número de acciones predichas por bloque |
policy.n_action_steps | 10 | Número de ejecuciones antes de la siguiente llamada al modelo; como máximo chunk_size |
policy.repo_id | your_repo_id | Destino 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 |
|---|---|
| Espacial | 49/50 |
| Objeto | 50/50 |
| Objetivo | 50/50 |
| LIBERO-10 | 48/50 |
| Total | 197/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