Проблема «раздутых» данных в робототехнике
Традиционный пайплайн обучения роботов страдает от неэффективности: при каждом запуске тренировки весь датасет скачивается на GPU, а новые записи дублируют уже существующие данные, увеличивая расходы на передачу. AWS и Hugging Face предлагают решение через Strands Agents (SDK от AWS, лицензия Apache 2.0) и LeRobot — стек для работы с роботизированными данными. Ключевая инновация — использование Hugging Face Storage Buckets (на базе Xet, анонсированы в марте 2026 года) как рабочего слоя для данных между записью и тренировкой.
Архитектура замкнутого цикла (Data Loop)
Решение позволяет одному агенту Strands выполнять четыре функции, используя единый бэкенд hf://:
- Запись: Агент записывает демонстрацию (кадры камер + телеметрия суставов) в формат LeRobot.
- Синхронизация: Данные синхронизируются в Storage Bucket, где обновляются только измененные байты (delta-sync), а не весь файл.
- Стриминг: Модель для тренировки читает данные напрямую из Hub без локального скачивания, декодируя видео на лету.
- Деплой: Обученный чекпоинт развертывается на роботе (например, SO-100/SO-101) одной переменной
mode="real".
Технические детали и метрики
Формат данных LeRobot используется уже более чем в 90 000 датасетов и 8 000 моделей на Hub. Это обеспечивает совместимость: любой инструмент, читающий LeRobot, может работать с данными, записанными Strands Robots. Для работы требуется Python 3.12+, поддержка Apple Silicon (через MuJoCo) и NVIDIA GPU для инференса VLA-моделей.
| Компонент | Роль в цикле | Ключевая особенность |
|---|---|---|
| Strands Robots SDK | Управление роботом и запись | Единый интерфейс для симуляции и реального железа (SO-100/101) |
| LeRobot Format | Хранение данных | Стандарт де-факто: >90k датасетов на Hub, без конвертации |
| HF Storage Buckets | Рабочее хранилище | Mutable, Xet-backed, delta-sync (экономия трафика) |
| Agent Loop | Оркестрация | Один агент решает, когда записывать, тренировать и деплоить |
Практическая реализация
Цикл можно запустить на ноутбуке. Агент получает промпт, например: "Record a pick-the-cube demo and sync it to my-org/robot-fave". После записи данные синхронизируются в бакет. Для тренировки используется стриминг:
for batch in sim.stream_dataset("my-org/robot-fave/cube_pick", repo_type="bucket").dataloader(batch_size=64):
...
Это позволяет избежать загрузки гигабайтов видео на диск. Для продакшена требуется аккаунт Hugging Face с токеном, CLI hf и, опционально, пара роботов SO-101 (follower/leader) или другие совместимые платформы из каталога LeRobot.
Почему это важно
Решение устраняет узкое горлышко в сборе данных для робототехники. Вместо ручного управления версиями датасетов и пересылки файлов, разработчики получают автоматизированный контур: «записал → обучился → развернул → собрал новые данные». Это критично для масштабируемого обучения роботов в реальных условиях, где данные постоянно меняются (domain shift).
Источник: Hugging Face blog ↗
