Перейти к основному содержимому

Набор данных LeRobot

LeRobot — это стандартизированная схема набора данных для сценариев обучения роботов и обучения с подкреплением, разработанная HuggingFace с открытым исходным кодом. Она предоставляет единый формат, позволяющий исследователям легче делиться, сравнивать и воспроизводить эксперименты по обучению роботов.

Экспорт данных

Платформа данных IO поддерживает экспорт данных в формате LeRobot для прямого использования в обучении моделей VLA (Vision-Language-Action). Этот формат включает полное сопоставление визуальной информации роботизированных операций, языковых инструкций и данных действий.

подсказка

Поскольку экспорт требует высоких вычислительных ресурсов, бесплатная версия открытой платформы данных IO ограничивает количество данных, которые может экспортировать каждый пользователь. Платная версия не ограничивает объем экспорта, и с ускорением GPU скорость экспорта может быть еще быстрее.

1. Выбор данных для экспорта

Сначала необходимо аннотировать данные. Роль аннотации заключается в сопоставлении действий с инструкциями на естественном языке для обучения моделей VLA. Этот процесс обеспечивает понимание языковых команд моделью и их преобразование в соответствующие действия робота.

О том, как аннотировать и быстро пакетно аннотировать, см. документацию: Аннотация данных

После завершения аннотации в интерфейсе экспорта можно увидеть соответствующие аннотированные данные. Вы можете выбрать конкретное подмножество данных для экспорта.

Выбор данных для экспорта

Название набора данных можно настроить по желанию. Если вы планируете загрузить данные на Hugging Face, рекомендуется установить стандартный формат имени репозитория, например myproject/myrepo1, что упростит последующий процесс публикации.

подсказка

Чем больше объем выбранных данных, тем медленнее будет экспорт. Рекомендуется выбирать по типам задач, не экспортировать все сразу. Это не только ускорит экспорт, но и облегчит последующее управление данными и обучение моделей.

2. Скачивание экспортированных файлов и распаковка

Процесс экспорта может занять несколько десятков минут в зависимости от объема данных и нагрузки системы. Прогресс автоматически обновляется, вы можете вернуться на страницу экспорта позже, чтобы просмотреть результаты.

После успешного экспорта вы можете увидеть кнопку Скачать данные в Записях экспорта в правой части страницы, нажатие которой скачает сжатый файл .tar.gz.

Результаты экспорта

Рекомендуется создать пустую локальную директорию, например ~/Downloads/mylerobot3, для распаковки файлов, чтобы избежать путаницы:

Создание директории

Структура распакованных файлов следует стандартному формату набора данных LeRobot, включая визуальные данные, информацию о состоянии и метки действий:

Распаковка данных

Просмотр данных

Есть два распространенных способа визуализации, удобных для быстрого просмотра, понимания и отладки содержимого данных. Каждый способ подходит для различных сценариев использования.

СценарийСпособПреимущества
Локальная разработка и отладкаRerun SDK локальный просмотрПолная функциональность, высокая интерактивность, отсутствие зависимости от сети
Быстрый предварительный просмотр или загрузка демонстрацииHugging Face онлайн просмотрНе требует установки, удобно для обмена, доступ в любое время

1. Использование Rerun SDK для локального просмотра

Необходимо скачать и установить репозиторий lerobot локально, через lerobot/scripts/visualize_dataset.py можно использовать Rerun SDK для временной интерактивной многомодальной визуализации данных (включая изображения, состояния, действия и т.д.). Этот способ предоставляет самые богатые интерактивные функции и опции настройки.

Установка Rerun SDK

Убедитесь, что используется Python 3.10 или выше, и выполните следующие команды для установки необходимых зависимостей:

python3 -m pip install rerun-sdk==0.23.1
git clone https://github.com/lerobot-ai/lerobot.git # Клонировать репозиторий
cd lerobot
pip install -e . # Установить в режиме разработки

Запуск скрипта визуализации

python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0

Описание параметров:

  • --repo-id: Название набора данных Hugging Face, например io-ai-data/lerobot_dataset
  • --root: Путь к данным LeRobot, хранящимся локально, указывающий на распакованную директорию
  • --episode-index: Указать индекс episode для просмотра (начиная с 0)

Сохранение в файл .rrd

Можно сохранить результаты визуализации данных в формате Rerun для офлайн просмотра или обмена с членами команды:

python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0 \
--save 1 \
--output-dir ./rrd_out

# Затем можно просматривать офлайн

Удаленный WebSocket режим

Если требуется удаленный просмотр (например, данные на сервере для просмотра на локальном компьютере), можно использовать режим WebSocket:

# Серверная сторона
python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0 \
--mode distant \
--ws-port 9091

# Локальная сторона
rerun ws://IP_сервера:9091

2. Через Hugging Face Spaces для онлайн просмотра

Если вы не хотите устанавливать никаких локальных сред, LeRobot предоставляет онлайн-инструмент для просмотра на Hugging Face Spaces, который не требует никаких локальных зависимостей. Этот способ особенно подходит для быстрого предварительного просмотра или обмена данными с командой.

подсказка

Онлайн-визуализация требует, чтобы ваши данные были загружены в онлайн-репозиторий Hugging Face. Hugging Face бесплатный аккаунт может просматривать только открытые репозитории, то есть ваши данные должны быть доступны для просмотра. Чтобы сохранить конфиденциальность, используйте локальную визуализацию.

Шаги

  1. Откройте страницу: https://huggingface.co/spaces/lerobot/visualize_dataset
  2. Заполните Dataset Repo ID, например io-ai-data/DesktopCleanup_RM_AIDAL_demo
  3. Выберите задачу по номеру, например Episode 0
  4. В верхней части страницы есть дополнительные параметры, которые можно выбрать для наилучшего способа воспроизведения

Обучение модели

Обучение модели является ключевым шагом для обучения роботов. Параметры и требования к данным могут различаться в зависимости от модели.

Мы используем модель smolvla в качестве примера, чтобы объяснить основные команды обучения и параметры настройки:

Основные команды обучения

Используйте следующую команду для запуска обучения модели smolvla:

python -m lerobot.scripts.train \
--policy.type=smolvla \
--dataset.root=/data/lerobot_dataset \
--dataset.repo_id=io-ai-data/lerobot-dataset \
--policy.device=cuda
--output_dir=/data/lerobot_model

Эта команда будет запускаться на одной видеокарте NVIDIA. Будет использоваться LeRobot данные из /data/lerobot_dataset для обучения модели smolvla, модель будет сохраняться в директорию /data/lerobot_model.

Параметры

  • --policy.type: Указать тип обучаемой модели, например smolvla.
  • --dataset.root: Корневая директория локального набора данных, должна указывать на путь к распакованному LeRobot набору данных.
  • --dataset.repo_id: Идентификатор репозитория Hugging Face набора данных, например io-ai-data/lerobot-dataset.
  • --policy.device: Указать устройство для обучения, поддерживается cuda (GPU) или cpu.
  • --output_dir: Директория, в которую сохраняется обученная модель

Часто задаваемые вопросы (FAQ)

Q: Сколько времени занимает экспорт LeRobot данных?

A: Время экспорта зависит от объема данных и нагрузки системы. Обычно на каждый GB данных требуется 3-5 минут, рекомендуется экспортировать по частям для повышения эффективности.

Q: Сколько данных можно экспортировать в бесплатной версии?

A: В бесплатной версии есть ограничение на количество экспортируемых данных. Конкретный лимит отображается в интерфейсе экспорта. Для большого объема экспорта рекомендуется перейти на платную версию.

Q: Какие модели можно обучить с экспортированными данными?

A: LeRobot формат поддерживает несколько VLA моделей, включая, но не ограничиваясь: smolvla, Pi0 и другие известные модели. Подробнее см. в официальном кодовой базе LeRobot: https://github.com/huggingface/lerobot/tree/main/src/lerobot/policies

Q: Нужно ли публичное набором для онлайн-визуализации?

A: Да, онлайн-инструмент визуализации Hugging Face Spaces может просматривать только публичные наборы данных. Чтобы сохранить конфиденциальность, используйте локальную Rerun SDK.

Q: Что делать, если установка Rerun SDK не удалась?

A: Убедитесь, что используется Python 3.10+ версию, и проверьте подключение к сети. Если проблема все еще сохраняется, попробуйте использовать conda-окружение или виртуальное окружение.

Q: Что делать, если память не хватает?

A: Вы можете попробовать следующие методы:

  • Уменьшить batch size
  • Использовать параметр num_workers загрузчика данных
  • Включить накопление градиентов
  • Использовать гибридное обучение

Q: Как оценить результаты обучения?

A: LeRobot предоставляет несколько метрик оценки, включая успешность задачи, точность действий и т.д. Подробные методы оценки см. в официальной документации LeRobot.

Q: Какие аппаратные ускорения поддерживаются?

A: Поддерживается ускорение CUDA GPU, также поддерживается обучение на CPU. Рекомендуется использовать GPU для лучшей производительности обучения.

Q: Как загрузить данные в Hugging Face?

A: Используйте инструмент Hugging Face CLI:

pip install huggingface_hub
huggingface-cli login
huggingface-cli upload-dataset your-username/dataset-name /path/to/dataset

Q: Что делать, если набор данных слишком большой?

A: Рекомендуется уменьшить частоту FPS при экспорте по умолчанию, которая составляет 30 кадров в секунду, можно уменьшить до 10 или 15.

Q: Как проверить целостность экспортированных данных?

A: Используйте инструмент проверки LeRobot:

python -m lerobot.scripts.validate_dataset --root /path/to/dataset

Связанные ссылки