Набор данных 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 бесплатный аккаунт может просматривать только открытые репозитории, то есть ваши данные должны быть доступны для просмотра. Чтобы сохранить конфиденциальность, используйте локальную визуализацию.
Шаги
- Откройте страницу: https://huggingface.co/spaces/lerobot/visualize_dataset
- Заполните Dataset Repo ID, например
io-ai-data/DesktopCleanup_RM_AIDAL_demo
- Выберите задачу по номеру, например
Episode 0
- В верхней части страницы есть дополнительные параметры, которые можно выбрать для наилучшего способа воспроизведения
Обучение модели
Обучение модели является ключевым шагом для обучения роботов. Параметры и требования к данным могут различаться в зависимости от м одели.
Мы используем модель 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
.
SmolVLA: рекомендации по тонкой настройке (рекомендуется)
SmolVLA оптимизирована для сценариев с потребительским/одной GPU. Как правило, предпочтительнее дообучать официальные предобученные веса, чем обучать с нуля.
Установка и подготовка
git clone https://github.com/lerobot-ai/lerobot.git
cd lerobot
pip install -e ".[smolvla]"
Дообучение от предобученной модели (рекомендуется)
python -m lerobot.scripts.train \
--policy.path=lerobot/smolvla_base \
--dataset.root=/data/lerobot_dataset \
--dataset.repo_id=your-name/your-repo \
--policy.device=cuda \
--output_dir=/data/lerobot_smolvla_finetune \
--training.num_train_steps=20000 \
--batch_size=64
Рекомендации:
- Объем данных: начните ~с 50 эпизодов; покрывайте вариативность (положение/поза объекта, начальные/конечные состояния).
- Ресурсы/время: ~4 часа на 20k шагов на одной A100; на потребительских GPU уменьшайте batch size или используйте аккумуляцию градиентов.
- Гиперпараметры:
batch_size=64
,num_train_steps=20k
, lr по умолчанию или около1e-4
. - Когда использовать
--policy.type=smolvla
: обучение с нуля, обычно требует г ораздо больше данных/времени и не рекомендуется для малых датасетов.
Обучение с нуля (необязательно)
python -m lerobot.scripts.train \
--policy.type=smolvla \
--dataset.root=/data/lerobot_dataset \
--dataset.repo_id=your-name/your-repo \
--policy.device=cuda \
--output_dir=/data/lerobot_smolvla_fromscratch \
--training.num_train_steps=200000 \
--batch_size=64