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

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

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

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

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

Информация об использовании ресурсов

Экспорт данных формата LeRobot требует значительных вычислительных ресурсов. Бесплатная версия платформы IO Data Open устанавливает разумные ограничения на количество экспортов для каждого пользователя, в то время как платная версия предоставляет неограниченные услуги экспорта с возможностями ускорения GPU, которые значительно улучшают скорость обработки экспорта.

Стратегия выбора модели

Современные основные модели VLA включают:

Тип моделиПрименимые сценарииКлючевые особенностиРекомендуемое использование
smolVLAОдиночная карта, быстрое прототипированиеУмеренные параметры, эффективное обучениеПотребительские GPU, доказательство концепции
Pi0Сложные задачи, мультимодальное слияниеМощные возможности понимания языкаПроизводственная среда, сложные взаимодействия
ACTОптимизация отдельных задачВысокая точность предсказания действийСпецифические задачи, высокочастотное управление
Важное уведомление

Модели Pi0 относятся к фреймворку OpenPI от Physical Intelligence, а не к проекту LeRobot. Если вам нужно использовать модели Pi0, пожалуйста, обратитесь к: Официальная документация OpenPI

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/huggingface/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: Указать индекс эпизода для просмотра (начиная с 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

# Затем можно просматривать офлайн
rerun ./rrd_out/lerobot_pusht_episode_0.rrd

Режим удаленного 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/uncap_pen
  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: ID репозитория набора данных Hugging Face, например io-ai-data/lerobot-dataset.
  • --policy.device: Указать устройство обучения, поддерживает cuda (GPU) или cpu.
  • --output_dir: Каталог для сохранения обученной модели

Рекомендации по тонкой настройке smolVLA (Рекомендуется)

smolVLA — это модель VLA, оптимизированная для потребительских/однокарточных сред. По сравнению с обучением с нуля, более рекомендуется тонкая настройка на официальных предварительно обученных весах.

Установка и подготовка

git clone https://github.com/huggingface/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 сегментов задач, старайтесь покрыть разнообразие в позициях объектов, позах, начальных/конечных точках и т.д.
  • Ресурсы и продолжительность: Обучение 20k шагов на одной A100 занимает около 4 часов; потребительские видеокарты могут соответственно уменьшить размер пакета или включить накопление градиентов.
  • Начальная точка гиперпараметров: batch_size=64, training.num_train_steps=20k, сохранить скорость обучения по умолчанию или тонко настроить с 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

Общие оптимизации

  • Оптимизация памяти: --training.fp16=true, --training.gradient_accumulation_steps=4 (настроить в соответствии с памятью).
  • Увеличение данных с несколькими видами/сценариями: Значительное влияние на обобщение на этапе тонкой настройки.
  • Инструменты мониторинга: Рекомендуется настроить W&B для мониторинга кривых обучения и оценочных показателей для ранней остановки и обратного отслеживания.

Рекомендации по тонкой настройке ACT

ACT (Action-Conditioned Transformer) подходит для обучения политик с одной задачей или короткими последовательностями; обычно работает хуже, чем smolVLA в обобщении нескольких задач. Если задача сфокусирована, имеет высокую частоту управления и относительно короткие последовательности, ACT по-прежнему является экономически эффективным выбором.

Данные и предварительная обработка:

  • Нарезка траекторий: Обеспечить единообразную длину сегмента и выравнивание (например, 10-20 шаговых блоков действий).
  • Нормализация действий: Единообразный масштаб/единицы могут значительно стабилизировать обучение.
  • Согласованность наблюдений: Внутренние параметры/перспективы камеры должны быть максимально согласованными, или записывать разнообразные демонстрации, покрывающие типичные возмущения.

Начальная точка гиперпараметров обучения (тонко настроить в соответствии с памятью и сложностью задачи):

  • batch_size=64, скорость обучения 1e-4, прогрев 1000 шагов, шаги обучения 100k-200k.
  • При переобучении: увеличить разнообразие данных, добавить регуляризацию или раннюю остановку; при недообучении: продлить шаги или ослабить регуляризацию.

Пример команды (когда локальная версия lerobot включает политику ACT):

python -m lerobot.scripts.train \
--policy.type=act \
--dataset.root=/data/lerobot_dataset \
--dataset.repo_id=your-name/your-repo \
--policy.device=cuda \
--output_dir=/data/lerobot_act_finetune \
--batch_size=64 \
--training.num_train_steps=100000 \
--training.learning_rate=1e-4

Примечание: Разные версии могут иметь разные имена политик и доступные параметры. Пожалуйста, обратитесь к локальной реализации src/lerobot/policies и официальной документации.

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

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

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

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

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

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

A: Формат LeRobot поддерживает различные модели VLA, включая, но не ограничиваясь: smolvla, Pi0 (фреймворк OpenPI), ACT и т.д. Пожалуйста, обратитесь к официальной кодовой базе 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: Вы можете попробовать следующие методы:

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

Q: Как оценить эффективность обучения?

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

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

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

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

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

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

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

Ресурсы OpenPI