LeRobot documentation
LeRobot용 DM0.5
LeRobot용 DM0.5
DM05는 DM0.5라는 이름으로도 출시되었으며, Dexmal의 오픈 월드 로봇 제어를 위한 Vision-Language-Action 모델입니다. LeRobot 어댑터는 표준 LeRobot 데이터셋, 프로세서, 학습, 체크포인트, Hub 로딩 및 평가를 사용하면서 OpenDM 모델 경로를 유지합니다.
모델 세부 사항은 DM0.5 기술 블로그, OpenDM 저장소 및 원본 Dexmal/DM05 릴리스를 참고하세요.
설치
pip install -e ".[training,dm05]" # training
pip install -e ".[libero,dm05]" # LIBERO evaluation on Linux체크포인트
lerobot/dm05_base를 --policy.path와 함께 사용하세요. 이는 원본 OpenDM 체크포인트의 자체 완결형 LeRobot 변환 버전이며 DM05Policy.from_pretrained()를 지원합니다.
기본 설정은 OpenDM의 14차원 상태/행동 계약을 기록합니다. DM05의 핵심 모델은 최대 32차원을 지원하며, 새로운 fine-tuning은 대상 데이터셋에서 유효한 이미지, 상태, 행동 특징을 해결합니다.
Dataset 계약
DM05은 다음을 갖춘 표준 LeRobot 데이터셋을 지원합니다:
- 하나 이상의 이미지 또는 비디오 관찰;
observation.state;action;- 작업 설명.
카메라 순서가 명시적으로 지정되어야 하는 경우 policy.image_keys를 설정합니다. RoboTwin, ALOHA 및 기타 소스는 표준 LeRobot 스키마로 변환된 후 DM05 전용 리더가 필요하지 않습니다. 표준 observation.state 및 action 키를 유지하고, rename_map은 카메라 이름 정렬에만 사용하세요.
학습
LIBERO 레시피는 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주요 학습 매개변수
| 매개변수 | LIBERO 값 | 의미 |
|---|---|---|
dataset.repo_id | lerobot/libero | 표준 LeRobot 학습 데이터셋 |
policy.path | lerobot/dm05_base | 자체 완결형 베이스 체크포인트 |
rename_map | image/image2에서 front/wrist로 | eval 명령과 lerobot/dm05_libero에서 사용되는 카메라 이름 |
policy.add_state | false | OpenDM의 LIBERO 프롬프트와 일치하며 상태 토큰이 없습니다 |
policy.use_relative_actions | false (체크포인트 기본값) | 저장된 액션을 변경 없이 학습하며, 상대 모드(explicit opt-in)는 명시적으로 선택해야 활성화됩니다 |
policy.chunk_size | 10 | 각 청크당 예측되는 액션의 수 |
policy.n_action_steps | 10 | 다음 모델 호출 전에 실행되는 횟수; 최대 chunk_size |
policy.repo_id | your_repo_id | Hub 대상; 로컬 전용 실행의 경우 policy.push_to_hub=false를 사용 |
Environment control mode는 정책의 action 표현과 별도로 구성됩니다. Relative mode는 state/action 차원이 일치해야 합니다.
카메라
카메라 세트는 정책 구성의 일부이며, 프롬프트는 항상 해당 카메라만 렌더링합니다. 카메라를 선언하지 않는 lerobot/dm05_base에서 파인튜닝을 수행하면 학습 데이터셋의 카메라가 사용됩니다. 파인튜닝된 체크포인트는 자체 카메라 이름을 유지합니다. 이름이 다른 데이터셋을 이 이름에 매핑하려면 --rename_map을 사용하세요. 예를 들어 --rename_map='{"observation.images.top": "observation.images.front"}'와 같이 지정할 수 있습니다.
정규화 통계
Training은 meta/stats.json의 데이터셋 상태/행동 통계를 사용합니다. 행동 통계는 학습에 사용된 표현과 일치해야 합니다. policy.use_relative_actions=true인 경우, 동일한 chunk size와 제외된 차원을 사용하여 상대 행동 변환 후에 계산하십시오. 상대 행동 가이드를 참조하십시오.
평가
LIBERO 체크포인트 lerobot/dm05_libero는 50,000단계로 학습되었으며, 각 작업당 5개의 에피소드로 모든 40개의 LIBERO 작업에서 평가되었습니다:
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 | 성공 사례 |
|---|---|
| 공간 | 49/50 |
| 객체 | 50/50 |
| 목표 | 50/50 |
| LIBERO-10 | 48/50 |
| 합계 | 197/200 (98.5%) |
이것은 2,000에피소드의 LIBERO 벤치마크 프로토콜이 아니라 200에피소드의 재현성 확인입니다.
Checkpoint 레이아웃
policy weights, config, processor state가 포함된 완전한 checkpoint 디렉터리를 사용하세요. 독립적인 model.safetensors만으로는 학습이나 추론이 불가능합니다.
라이선스
LeRobot 통합은 Apache-2.0 라이선스를 따릅니다. 모델 가중치는 해당 DM05 모델 카드에 첨부된 라이선스를 따릅니다.
Update on GitHub