LeRobot documentation
DM0.5 para LeRobot
DM0.5 para LeRobot
DM05, também lançado como DM0.5, é o modelo Vision-Language-Action da Dexmal para controle de robôs em mundo aberto. O adaptador LeRobot preserva o caminho do modelo OpenDM, mas utiliza datasets, processadores, treinamento, checkpointing, carregamento no Hub e avaliação padrão do LeRobot.
Para mais detalhes sobre o modelo, consulte o blog técnico do DM0.5, o repositório OpenDM e a liberação bruta Dexmal/DM05.
Instalação
pip install -e ".[training,dm05]" # training
pip install -e ".[libero,dm05]" # LIBERO evaluation on LinuxCheckpoint
Use lerobot/dm05_base com --policy.path. É uma conversão do LeRobot autocontida do checkpoint bruto do OpenDM e suporta DM05Policy.from_pretrained().
A configuração base registra o contrato de estado/ação de 14 dimensões do OpenDM. O modelo principal do DM05 suporta até 32 dimensões; o fine-tuning novo resolve os recursos efetivos de imagem, estado e ação a partir do conjunto de dados de destino.
Contrato do dataset
O DM05 aceita datasets padrão do LeRobot com:
- uma ou mais observações de imagem ou vídeo;
observation.state;action;- descrições de tarefas.
Defina policy.image_keys quando a ordem das câmeras precisar ser explícita. RoboTwin, ALOHA e outras fontes não precisam de um leitor específico do DM05 após a conversão para o esquema padrão do LeRobot. Mantenha as chaves padrão observation.state e action; use rename_map apenas para alinhar os nomes das câmeras.
Treinamento
A receita LIBERO segue o 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=cudaPrincipais parâmetros de treinamento
| Parâmetro | valor LIBERO | Significado |
|---|---|---|
dataset.repo_id | lerobot/libero | Conjunto de dados padrão de treinamento do LeRobot |
policy.path | lerobot/dm05_base | Checkpoint base autossuficiente |
rename_map | image/image2 para front/wrist | Nomes de câmeras usados pelo comando eval e lerobot/dm05_libero |
policy.add_state | false | Corresponde ao prompt LIBERO do OpenDM sem tokens de estado |
policy.use_relative_actions | false (padrão do checkpoint) | Aprende as ações armazenadas sem alterações; o modo relativo é uma opção explícita |
policy.chunk_size | 10 | Número de ações previstas por bloco |
policy.n_action_steps | 10 | Número executado antes da próxima chamada do modelo; no máximo chunk_size |
policy.repo_id | your_repo_id | Destino no Hub; use policy.push_to_hub=false para execuções apenas locais |
O modo de controle do ambiente é configurado separadamente da representação da ação da política. O modo relativo exige dimensões correspondentes para estado/ação.
Câmeras
O conjunto de câmeras faz parte da configuração da política, e o prompt sempre renderiza exatamente essas câmeras. O ajuste fino a partir de lerobot/dm05_base, que não declara nenhuma, adota as câmeras do conjunto de dados de treinamento. Um checkpoint ajustado mantém seus próprios nomes de câmeras: mapeie um conjunto de dados com nomes diferentes para eles com --rename_map, por exemplo --rename_map='{"observation.images.top": "observation.images.front"}'.
Estatísticas de normalização
O treinamento utiliza as estatísticas de estado/ação do conjunto de dados em meta/stats.json. As estatísticas de ação devem corresponder à representação usada para o treinamento. Com policy.use_relative_actions=true, calcule-as após a transformação de ação relativa, usando o mesmo tamanho de chunk e dimensões excluídas. Consulte o guia de ação relativa.
Avaliação
O checkpoint LIBERO lerobot/dm05_libero foi treinado por 50.000 passos e avaliado em todas as 40 tarefas do LIBERO, com 5 episódios por tarefa:
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 | Sucessos |
|---|---|
| Espacial | 49/50 |
| Objeto | 50/50 |
| Objetivo | 50/50 |
| LIBERO-10 | 48/50 |
| Total | 197/200 (98.5%) |
Esta é uma verificação de reprodução de 200 episódios, não o protocolo de benchmark LIBERO de 2.000 episódios.
Layout do checkpoint
Use o diretório completo do checkpoint, que contém os pesos da política, a configuração e o estado do processador. Um model.safetensors isolado não é suficiente para treinamento ou inferência.
Licença
A integração LeRobot é Apache-2.0. Os pesos do modelo seguem a licença anexada ao cartão do modelo correspondente DM05
Update on GitHub