LeRobot documentation

DM0.5 para LeRobot

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
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, 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 Linux

Checkpoint

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=cuda

Principais parâmetros de treinamento

Parâmetrovalor LIBEROSignificado
dataset.repo_idlerobot/liberoConjunto de dados padrão de treinamento do LeRobot
policy.pathlerobot/dm05_baseCheckpoint base autossuficiente
rename_mapimage/image2 para front/wristNomes de câmeras usados pelo comando eval e lerobot/dm05_libero
policy.add_statefalseCorresponde ao prompt LIBERO do OpenDM sem tokens de estado
policy.use_relative_actionsfalse (padrão do checkpoint)Aprende as ações armazenadas sem alterações; o modo relativo é uma opção explícita
policy.chunk_size10Número de ações previstas por bloco
policy.n_action_steps10Número executado antes da próxima chamada do modelo; no máximo chunk_size
policy.repo_idyour_repo_idDestino 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
SuiteSucessos
Espacial49/50
Objeto50/50
Objetivo50/50
LIBERO-1048/50
Total197/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