LeRobot documentation

DM0.5 для 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 для LeRobot

DM05, также выпущенный как DM0.5, — это модель Vision-Language-Action от Dexmal для управления роботами в открытом мире. Адаптер LeRobot сохраняет путь к модели OpenDM, но использует стандартные наборы данных, процессоры, обучение, сохранение контрольных точек, загрузку с Hub и оценку LeRobot.

Подробнее о модели см. в техническом блоге 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. Это самодостаточная конвертация LeRobot из исходного чекпоинта OpenDM, поддерживающая DM05Policy.from_pretrained().

Базовый конфиг фиксирует контракт состояния/действия OpenDM размерностью 14. Базовая модель DM05 поддерживает до 32 измерений; при новом дообучении эффективные признаки изображения, состояния и действия определяются из целевого набора данных.

Договоренность о наборе данных

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_idlerobot/liberoСтандартный набор данных для обучения LeRobot
policy.pathlerobot/dm05_baseСамодостаточная базовая контрольная точка
rename_mapimage/image2 в front/wristИмена камер, используемые командой eval и lerobot/dm05_libero
policy.add_statefalseСовпадает с промптом LIBERO OpenDM без токенов состояния
policy.use_relative_actionsfalse (значение по умолчанию для контрольной точки)Изучает сохранённые действия без изменений; относительный режим включается явно
policy.chunk_size10Количество предсказываемых действий на чанк
policy.n_action_steps10Количество, выполняемое перед следующим вызовом модели; не более chunk_size
policy.repo_idyour_repo_idПункт назначения в Hub; для локальных запусков используйте policy.push_to_hub=false

Режим управления средой настраивается отдельно от представления действия политики. Относительный режим требует совпадения размерностей состояния и действия.

Камеры

Набор камер является частью конфигурации политики, и промпт всегда рендерит именно эти камеры. При дообучении из lerobot/dm05_base, где набор не объявлен, используются камеры из обучающего датасета. Чекпоинт после дообучения сохраняет собственные имена камер: датасет с другими именами можно сопоставить с ними с помощью --rename_map, например --rename_map='{"observation.images.top": "observation.images.front"}'.

Статистика нормализации

Обучение использует статистику состояний и действий датасета из meta/stats.json. Статистика действий должна соответствовать представлению, используемому для обучения. При policy.use_relative_actions=true вычисляйте её после преобразования в относительные действия, используя тот же размер чанка и те же исключённые измерения. См. руководство по относительным действиям.

Оценка

Чекпоинт LIBERO lerobot/dm05_libero обучался в течение 50 000 шагов и оценивался на всех 40 задачах LIBERO с 5 эпизодами на каждую задачу:

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-1048/50
Всего197/200 (98.5%)

Это проверка воспроизводимости на 200 эпизодах, а не протокол бенчмарка LIBERO на 2000 эпизодах.

Раскладка контрольной точки

Используйте полный каталог контрольной точки, содержащий веса политики, конфигурацию и состояние процессора. Отдельного файла model.safetensors недостаточно для обучения или инференса.

Лицензия

Интеграция LeRobot распространяется по лицензии Apache-2.0. Веса моделей следуют лицензии, указанной в соответствующей карточке модели DM05.

Update on GitHub