Набор данных LeRobot
LeRobot - это фреймворк стандартизации данных для робототехники с открытым исходным кодом от Hugging Face, разработанный специально для сценариев машинного обучения роботов и обучения с подкреплением. Он предоставляет единую спецификацию формата данных, позволяя исследователям более удобно делиться, сравнивать и воспроизводить эксперименты по обучению роботов, значительно снижая затраты на преобразование форматов данных между различными исследовательскими проектами.
Экспорт данных
Платформа IO Data Platform полностью поддерживает экспорт данных в стандартном формате LeRobot, который может быть напрямую использован для обучения моделей VLA (Vision-Language-Action). Экспортированные данные содержат полную мультимодальную информацию о действиях робота: данные визуального восприятия, инструкции на естественном языке и соответствующие последовательности действий, формируя полное отображение данных восприятие-понимание-выполнение.
Экспорт данных формата LeRobot требует значительной вычислительной мощности. Бесплатная версия IO Data Open Platform имеет разумные ограничения на количество экспортов для каждого пользователя, в то время как платная версия предоставляет неограниченные услуги экспорта и оснащена функцией ускорения GPU, что может значительно повысить скорость обработки экспорта.
1. Выбор данных для экспорта
Перед экспортом данных необходимо завершить работу по аннотации. Процесс аннотации устанавливает точное соответствие между последовательностями действий робота и соответствующими инструкциями на естественном языке, что является необходимым условием для обучения моделей VLA. Благодаря этому соответствию модели могут научиться понимать языковые команды и преобразовывать их в точные действия управления роботом.
Подробную информацию о процессе аннотации данных и советы по пакетной аннотации см.: Руководство по аннотации данных
После завершения аннотации вы можете просмотреть все аннотированные наборы данных в интерфейсе экспорта. Система поддерживает гибкий выбор подмножества данных, и вы можете выбрать конкретные данные для экспорта в соответствии с конкретными потребностями.
Имя набора данных может быть настроено. Если вы планируете опубликовать набор данных на платформе Hugging Face, рекомендуется использовать стандартный формат именования репозитория (например, myproject/myrepo1
), что облегчит последующий обмен моделями и сотрудничество.
Чем больше объем данных, тем больше времени требуется на экспорт. Рекомендуется экспортировать по типу задачи, избегая обработки всех данных за один раз. Пакетный экспорт не только повышает скорость обработки, но и удобен для последующего управления данными, контроля версий и целевого обучения моделей.
2. Загрузка и извлечение экспортированных файлов
Время экспорта зависит от размера данных и текущей нагрузки системы, обычно занимает десятки минут. Страница автоматически обновляет статус прогресса, и вы можете вернуться позже, чтобы проверить результаты.
После завершения экспорта в области Записи экспорта справа можно увидеть кнопку Загрузить данные. После нажатия вы получите сжатый файловый пакет в формате .tar.gz
.
Рекомендуется создать локально выделенный каталог (например, ~/Downloads/mylerobot3
) для извлечения файлов, чтобы избежать путаницы с другими данными:
Извлеченные файлы строго соответствуют стандартной спецификации формата набора данных LeRobot и содержат полные мультимодальные данные: данные визуального восприятия, информацию о состоянии робота и метки действий и т.д.:
Визуализация и проверка данных
Чтобы помочь пользователям быстро понять и проверить содержимое данных, LeRobot предоставляет два основных решения для визуализации данных. Каждое решение имеет свои сценарии применения и уникальные преимущества:
Сценарий использования | Решение для визуализации | Основные преимущества |
---|---|---|
Локальная разработка и отладка | Локальный просмотр Rerun SDK | Полнофункциональный, высокоинтерактивный, доступен офлайн |
Быстрый предварительный просмотр и обмен | Онлайн-просмотр Hugging Face | Без установки, легко делиться, доступ в любое время |
1. Локальная визуализация с помощью Rerun SDK
Установив репозиторий lerobot
локально, вы можете использовать встроенный скрипт lerobot/scripts/visualize_dataset.py
в сочетании с Rerun SDK для реализации интерактивной мультимодальной визуализации данных в стиле временной шкалы. Этот метод позволяет одновременно отображать многомерную информацию, такую как изображения, состояния, действия и т.д., предоставляя самые богатые интерактивные функции и параметры настройки.
Подготовка среды и установка зависимостей
Убедитесь, что ваша версия Python 3.10 или выше, затем выполните следующие команды установки:
# Установить Rerun SDK
python3 -m pip install rerun-sdk==0.23.1
# Клонировать официальный репозиторий LeRobot
git clone https://github.com/huggingface/lerobot.git
cd lerobot
# Установить среду разработки 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)
Генерация файлов офлайн-визуализации
Вы можете сохранить результаты визуализации в виде файлов формата Rerun (.rrd) для офлайн-просмотра или обмена с членами команды:
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 поддерживают визуализацию только публичных репозиториев, что означает, что ваши данные будут общедоступными. Если данные содержат конфиденциальную информацию, требующую сохранения конфиденциальности, рекомендуется использовать локальное решение Rerun SDK.
Этапы операции
- Перейдите к онлайн-инструменту визуализации: https://huggingface.co/spaces/lerobot/visualize_dataset
- Введите идентификатор вашего набора данных в поле Dataset Repo ID (например,
io-ai-data/uncap_pen
) - Выберите номер задачи для просмотра на левой панели (например,
Episode 0
) - Вверху страницы предоставляются различные варианты воспроизведения, вы можете выбрать наиболее подходящий метод просмотра
Руководство по обучению модел и
Обучение моделей на основе наборов данных LeRobot является основным этапом в достижении обучения роботов. Различные архитектуры моделей имеют разные требования к параметрам обучения и предварительной обработке данных, что делает выбор подходящей стратегии модели критически важным для эффективности обучения.
Стратегия выбора модели
Текущие основные модели VLA включают:
Тип модели | Сценарий применения | Основные характеристики | Рекомендуется для |
---|---|---|---|
smolVLA | Однокарточная среда, быстрое прототипирование | Умеренное количество параметров, эффективное обучение | Потребительский GPU, подтверждение концепции |
Pi0 / Pi0.5 | Сложные задачи, мультимодальное слияние | Мощное понимание языка | Производственная среда, сложное взаимодействие |
ACT | Оптимизация для одной задачи | Высокая точность предсказания действий | Конкретные задачи, высокочастотное управление |
Diffusion | Плавная генерация действий | На основе диффузионной модели, высокое качество траектории | Задачи, требующие плавных траекторий |
VQ-BeT | Дискретизация действий | Векторная квантизация, быстрый вывод | Сценарии управления в реальном времени |
TDMPC | Предиктивное управление моделью | Высокая эффективность выборки, онлайн-обучение | Сценарии с дефицитом данных |
Модели Pi0 принадлежат фреймворку OpenPI от Physical Intelligence, а не проекту LeRobot. Если вам нужно использовать модели Pi0, обратитесь к: Официальной документации OpenPI
Руководство по обучению smolVLA (рекомендуется для начинающих)
smolVLA - это модель VLA, оптимизированная для потребительских/однокарточных сред. По сравнению с обучением с нуля, настоятельно рекомендуется выполнять тонкую настройку на основе официальных предварительно обученных весов, что может значительно сократить время обучения и улучшить конечные результаты.
Команды обучения LeRobot используют следующий формат параметров:
- Тип политики:
--policy.type smolvla
(укажите, какую модель использовать) - Значения параметров: Используйте разделение пробелами, например:
--batch_size 64
(не--batch_size=64
) - Логические значения: Используйте
true
/false
, например:--save_checkpoint true
- Значения списка: Используйте разделение пробелами, например:
--policy.down_dims 512 1024 2048
- Загрузка модели: По умолчанию добавьте
--policy.push_to_hub false
, чтобы отключить автоматическую загрузку в HuggingFace Hub
Подготовка среды
# Клонировать репозиторий LeRobot
git clone https://github.com/huggingface/lerobot.git
cd lerobot
# Установить полную среду с поддержкой smolVLA
pip install -e ".[smolvla]"
Тонкая настройка обучения (рекомендуемый метод)
lerobot-train \
--policy.type smolvla \
--policy.pretrained_path lerobot/smolvla_base \
--dataset.repo_id your-name/your-repo \
--dataset.root /data/lerobot_dataset \
--output_dir /data/lerobot_smolvla_finetune \
--batch_size 64 \
--steps 20000 \
--policy.optimizer_lr 1e-4 \
--policy.device cuda \
--policy.push_to_hub false \
--save_checkpoint true \
--save_freq 5000
Практические рекомендации:
- Подготовка данных: Рекомендуется записать 50+ демонстрационных эпизодов задач, обеспечивая охват различных позиций объектов, поз и изменений окружающей среды
- Ресурсы обучения: Обу чение на одном A100 в течение 20k шагов занимает около 4 часов; потребительские GPU могут уменьшить batch_size или включить накопление градиентов
- Настройка гиперпараметров: Начните с
batch_size=64
,steps=20k
, скорость обучения рекомендуется начинать с1e-4
для тонкой настройки и корректировать на основе результатов - Когда обучать с нуля: Рассматривайте обучение с нуля только при наличии крупномасштабных наборов данных (тысячи часов)
Обучение с нуля (продвинутые пользователи)
lerobot-train \
--policy.type smolvla \
--dataset.repo_id your-name/your-repo \
--dataset.root /data/lerobot_dataset \
--output_dir /data/lerobot_smolvla_fromscratch \
--batch_size 64 \
--steps 200000 \
--policy.optimizer_lr 1e-4 \
--policy.device cuda \
--policy.push_to_hub false \
--save_checkpoint true \
--save_freq 10000
Советы по оптимизации производительности
Оптимизация памяти:
# Добавьте следующие параметры для оптимизации использования памяти
--policy.use_amp true \
--num_workers 2 \
--batch_size 32 # Уменьшить размер пакета
Мониторинг обучения:
- Настройте Weights & Biases (W&B) для мониторинга кривых обучения и метрик оценки
- Установите разумные интервалы валидации и стратегии ранней остановки
- Регулярно сохраняйте контрольные точки для предотвращения прерывания обучения
Руководство по обучению модели ACT
ACT (Action-Conditioned Transformer) разработан для обучения политикам с одной задачей или коротким горизонтом. Хотя ACT уступает smolVLA в многозадачной обобщаемости, он остается экономически эффективным выбором для сценариев с четкими задачами, высокой частотой управления и относительно короткими временными рядами.
Модель ACT требует policy.n_action_steps
≤ policy.chunk_size
. Рекомендуется установить оба параметра на одно и то же значение (например, 100), чтобы избежать ошибок конфигурации.
Требования к предварительной обработке данных
Обработка траекторий:
- Обеспечьте единую длину сегмента и выравнивание по времени (рекомендуется 10-20 шагов action chunk)
- Нормал изуйте данные о действиях, унифицируйте масштаб и единицы
- Поддерживайте согласованность данных наблюдения, особенно внутренние параметры камеры и точки обзора
Конфигурация обучения:
lerobot-train \
--policy.type act \
--dataset.repo_id your-name/your-repo \
--dataset.root /data/lerobot_dataset \
--output_dir /data/lerobot_act_finetune \
--batch_size 8 \
--steps 100000 \
--policy.chunk_size 100 \
--policy.n_action_steps 100 \
--policy.n_obs_steps 1 \
--policy.optimizer_lr 1e-5 \
--policy.device cuda \
--policy.push_to_hub false \
--save_checkpoint true \
--save_freq 10000
Рекомендации по настройке гиперпараметров:
- Размер пакета: Начните с 8; корректируйте в зависимости от памяти (ACT рекомендует меньшие пакеты)
- Скорость обучения: Рекомендуется 1e-5, ACT чувствителен к скорости обучения
- Шаги обучения: 100k-200k шагов, корректируйте в зависимости от сложности задачи
- Размер блока действий: chunk_size и n_action_steps рекомендуется установить на 100
- Регуляризация: При возникновении переобучения увеличьте разнообразие данных или примените раннюю остановку
Стратегии настройки производительности
Обработка переобучения:
- Увеличьте разнообразие сбора данных
- Примените соответствующие методы регуляризации
- Реализуйте стратегии ранней остановки
Обработка недообучения:
- Увеличьте количество шагов обучения
- Скорректируйте расписание скорости обучения
- Проверьте качество и согласованность данных
Часто задаваемые вопросы (FAQ)
Экспорт данных
Q: Сколько времени занимает экспорт данных LeRobot?
A: Время экспорта в основном зависит от размера данных и текущей нагрузки системы. Обычно для каждого ГБ данных требуется 3-5 минут времени обработки. Для повышения эффективности рекомендуется экспортировать пакетами по типу задачи, избегая од новременной обработки чрезмерно больших наборов данных.
Q: Какие ограничения есть в бесплатной версии?
A: В бесплатной версии есть разумные ограничения на количество и частоту экспортов для каждого пользователя, конкретные квоты отображаются в интерфейсе экспорта. Для крупномасштабного экспорта данных рекомендуется перейти на платную версию, чтобы воспользоваться неограниченными экспортами и услугами ускорения GPU.
Q: Как проверить целостность экспортированных данных?
A: Используйте встроенный инструмент проверки LeRobot для проверки:
python -m lerobot.scripts.validate_dataset --root /path/to/dataset
Q: Как обрабатывать слишком большой экспортированный набор данных?
A: Вы можете оптимизировать следующими способами:
- Снизьте настройки частоты экспорта (по умолчанию 30fps можно снизить до 10-15fps)
- Разделите экспорт по периоду времени или типу задачи
- Сжать качество изображения (при условии обеспечения эффекта обучения)
Визуализация данных
Q: Что делать, если установка Rerun SDK не удалась?
A: Пожалуйста, проверьте следующие условия:
- Убедитесь, что версия Python ≥ 3.10
- Проверьте стабильность сетевого подключения
- Попробуйте установить в виртуальной среде:
python -m venv rerun_env && source rerun_env/bin/activate
- Используйте зеркальный источник:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rerun-sdk==0.23.1
Q: Требуется ли для онлайн-визуализации, чтобы данные были публичными?
A: Да. Инструмент онлайн-визуализации Hugging Face Spaces может получить доступ только к публичным наборам данных. Если ваши данные содержат конфиденциальную информацию, требующую сохранения конфиденциальности, используйте локальное решение Rerun SDK.
Q: Как загрузить данные в Hugging Face?
A: Используйте официальный инструмент CLI:
# Установить Hugging Face CLI
pip install huggingface_hub
# Войти в учетную запись
huggingface-cli login
# Загрузить набор данных
huggingface-cli upload-dataset your-username/dataset-name /path/to/dataset
Обучение модели
Q: Какие типы моделей поддерживаются?
A: Формат LeRobot поддерживает несколько основных моделей VLA:
- smolVLA: Подходит для однокарточных сред и быстрого прототипирования
- Pi0: Мощные мультимодальные возможности, подходит для сложных задач (принадлежит фреймворку OpenPI)
- ACT: Сфокусирован на оптимизации одной задачи, высокая точность предсказания действий
Для конкретных поддерживаемых моделей см.: https://github.com/huggingface/lerobot/tree/main/src/lerobot/policies
Q: Что делать при возникновении проблем с памятью во время обучения?
A: Попробуйте следующие стратегии оптимизации:
- Уменьшите размер пакета:
--batch_size 1
или меньше - Включите обучение со смешанной точностью:
--policy.use_amp true
- Уменьшите потоки загрузки данных:
--num_workers 1
- Уменьшите шаги наблюдения:
--policy.n_obs_steps 1
- Очистите кэш GPU: добавьте
torch.cuda.empty_cache()
в скрипт обучения
Q: Как выбрать подходящую модель?
A: Выбирайте на основе ваших конкретных потребностей:
- Быстрое прототипирование: Выберите smolVLA
- Сложные мультимодальные задачи: Выберите Pi0 (требуется использование фреймворка OpenPI)
- Среды с ограниченными ресурсами: Выберите smolVLA или ACT
- Одна специализированная задача: Выберите ACT
Q: Как оценить эффективность обучения?
A: LeRobot предоставляет различные методы оценки:
- Количественные метрики: Ошибка действия (MAE/MSE), сходство траектории (DTW)
- Качественная оценка: Успешность реальных тестов, анализ поведения
- Оценка платформы: Платформа IO предоставляет инструменты визуальной оценки качества модели
Q: Сколько обычно занимает обучение?
A: Время обучения зависит от нескольких факторов:
- Размер данных: 50 демонстрационных эпизодов обычно требуют 2-8 часов
- Конфигурация оборудования: A100 в 3-5 раз быстрее потребительских GPU
- Выбор модели: smolVLA обучается быстрее, чем ACT
- Стратегия обучения: Тонкая настройка в 5-10 раз быстрее, чем обучение с нуля
Техническая поддержка
Q: Как получить помощь при возникновении технических проблем?
A: Вы можете получить поддержку через следующие каналы:
- Ознакомьтесь с официальной документацией LeRobot: https://huggingface.co/docs/lerobot
- Отправьте Issue на GitHub: https://github.com/huggingface/lerobot/issues
- Свяжитесь с командой технической поддержки платформы IO
- Участвуйте в обсуждениях сообщества LeRobot
Q: Поддерживает ли платформа IO автоматическое развертывание моделей?
A: Да, платформа IO поддерживает услуги автоматического развертывания для основных моделей, таких как Pi0 (фреймворк OpenPI), smolVLA и ACT. Для получения подробной информации свяжитесь с командой технической поддержки для получения планов развертывания и информации о ценах.
Связанные ресурсы
Официальные ресурсы
- Домашняя страница проекта LeRobot: https://github.com/huggingface/lerobot
- Коллекция моделей LeRobot: https://huggingface.co/lerobot
- Официальная документация LeRobot: https://huggingface.co/docs/lerobot
- Онлайн-инструмент визуализации Hugging Face: https://huggingface.co/spaces/lerobot/visualize_dataset
Инструменты и фреймворки
- Платформа визуализации Rerun: https://www.rerun.io/
- Hugging Face Hub: https://huggingface.co/docs/huggingface_hub
Академические ресурсы
- Оригинальная статья Pi0: https://arxiv.org/abs/2410.24164
- Статья ACT: Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
- Обзорная статья VLA: Vision-Language-Action Models for Robotic Manipulation
Ресурсы, связанные с OpenPI
- Домашняя страница проекта OpenPI: https://github.com/Physical-Intelligence/openpi
- Physical Intelligence: https://www.physicalintelligence.company/
Ресурсы сообщества
- LeRobot GitHub Discussions: https://github.com/huggingface/lerobot/discussions
- Сообщество машинного обучения роботов Hugging Face: https://huggingface.co/spaces/lerobot
Эта документация будет постоянно обновляться, чтобы отражать последние разработки и лучшие практики экосистемы LeRobot. Если у вас есть вопросы или предложения, пожалуйста, не стесняйтесь обращаться к нам через каналы технической поддержки платформы IO.