Роботы на одном контуре: Strands, LeRobot и Hugging Face Storage Buckets для полного цикла — от записи до запуска

21 августа 20264 просмотров

В новом материале Amazon показано, как на базе открытого SDK Strands Agents выстроить сквозной процесс: робот записывает демонстрацию в Storage Bucket, модель обучается на потоковом датасете прямо из Hub, а готовый чекпоинт возвращается на то же железо сменой одного параметра. Такой подход убирает необходимость в конвертации и локальном хранении копий данных.

Роботы на одном контуре: Strands, LeRobot и Hugging Face Storage Buckets для полного цикла — от записи до запуска

Замкнутый цикл без переключения контекста

Традиционный пайплайн робототехнического проекта разбит на изолированные этапы: сначала собирают демонстрации на реальном или симулированном железе, затем переносят данные в отдельную систему для обучения, а после этого обученную модель нужно снова развернуть на роботе. Каждый переход требует конвертации форматов, ручной синхронизации и настройки окружения. В результате от записи первого эпизода до запуска политики проходит много времени, а любые изменения в данных превращаются в отдельную операцию.

Новый подход, представленный командой AWS в августе 2026 года, замыкает этот контур в одном месте. Вместо нескольких несвязанных инструментов предлагается единый агент, который умеет записывать демонстрации, отправлять их в облачное хранилище, обучать на них модель и возвращать обновлённый чекпоинт на робота. Ключевая идея — не переносить данные между системами, а работать с ними потоково, прямо из хранилища.

Инструменты агента и SDK

Основой решения стал Strands Robots — открытый SDK от AWS, распространяемый под лицензией Apache 2.0. Он предоставляет робототехнические абстракции, симуляцию и стек LeRobot в виде набора AgentTools. Эти инструменты компонуются в единого Strands-агента: робот, симулятор и обработка данных становятся взаимозаменяемыми модулями.

Центральная фабрика Robot() резолвит имя по реестру поддерживаемых устройств. В реестре есть манипуляторы, человекоподобные роботы, мобильные базы и отдельные руки. Одна из доступных конфигураций — SO-100, лёгкий манипулятор, который часто используют для экспериментов. Благодаря такому реестру один и тот же код работает и с симуляцией, и с реальным устройством: достаточно изменить параметр режима.

Агент получает команду на естественном языке, например «запиши демонстрацию и синхронизируй её в bucket», и сам вызывает нужный инструмент. Это позволяет строить сложные сценарии без жёстко прописанной последовательности шагов — логика управления перекладывается на языковую модель, а SDK отвечает за низкоуровневые операции с роботом и данными.

Единый формат данных

Важная деталь — формат датасетов LeRobot. На момент публикации в Hugging Face Hub уже более 90 000 датасетов и моделей используют этот формат, их опубликовали более 8 000 различных авторов. Благодаря такому распространению LeRobot стал де-факто стандартом для хранения робототехнических демонстраций.

Запись, сделанная через Strands Robots, сохраняется сразу в формате LeRobotDataset. Это значит, что любой инструмент, который умеет читать LeRobot, может работать с этими данными без какой-либо конвертации. Не нужно писать отдельные конвертеры для каждого бэкенда: данные одинаково читаются и в скриптах обучения, и в средствах визуализации, и в других робототехнических фреймворках.

Потоковое хранилище

Для хранения больших объёмов демонстраций используется Hugging Face Storage Buckets — новый тип объектного хранилища, представленный в марте 2026 года. В отличие от обычных датасет-репозиториев, bucket является изменяемым и неверсионируемым хранилищем, построенным на базе технологии Xet. Это даёт два важных преимущества: запись и обновление данных без создания новых версий и эффективная передача только изменённых байтов при синхронизации.

Bucket располагается в том же пространстве имён hf://, что и обычные датасеты, поэтому для работы с ним используется уже знакомый hf CLI. При этом данные можно стримить прямо из хранилища, не скачивая датасет целиком. Для больших видео с демонстрациями это критично: нет необходимости ждать полную загрузку, чтобы начать обучение.

Цикл данных на практике

Чтобы понять, как всё это работает вместе, рассмотрим пример из официального блога AWS, где связку Strands Robots, LeRobot и Hugging Face Storage Buckets]] используют для полного цикла. Создаётся агент с инструментом-роботом, причём по умолчанию активен режим симуляции:

python from strands import Agent from strands_robots import Robot

sim = Robot("so100") agent = Agent(tools=[sim])

Агенту можно дать команду на естественном языке: «запиши демонстрацию поднятия кубика и синхронизируй её в репозиторий my-org/robot-fave». Команда при этом не парсится заранее заданным шаблоном — модель рассуждений агента сама определяет последовательность действий: запустить запись, сформировать датасет и отправить его в bucket.

python agent("Record a pick-the-cube demo and sync it to my-org/robot-fave.")

Синхронизация устроена так, что при повторных запусках загружаются только изменившиеся байты — не нужно перезаписывать весь датасет. После того как демонстрация сохранена, тот же самый объект Robot() может стримить датасет обратно. Внутри метода stream_dataset() данные читаются покадрово, видео декодируется на лету, и из-за этого не требуется локальная копия датасета.

python for batch in sim.stream_dataset( "my-org/robot-fave/cube_pick", repo_type="bucket", ).dataloader(batch_size=64): ...

Этот код можно использовать прямо в процессе обучения: батчи приходят из хранилища, модель обучается, а затем подготовленный чекпоинт разворачивается на том же Robot() — для этого нужно поменять один keyword argument. Демонстрации, записанные на реальном железе, точно так же возвращаются в тот же bucket и становятся доступны для следующей итерации обучения. Получается непрерывный цикл: данные собираются, модель обучается на потоковых данных, обновлённая политика выкатывается на робота, и процесс повторяется.

Требования к запуску

Для повторения эксперимента потребуется Python 3.12 или новее и Linux либо macOS. На Apple Silicon поддерживается бэкенд MuJoCo для симуляции. Установка пакета выполняется командой:

pip install "strands-robots[sim-mujoco,lerobot]>=0.5.1"

Дополнительно входит набор lerobot, включающий LeRobot (не ниже версии 0.6.1), библиотеки datasets, av и torchcodec. Для работы агента требуется один из поддерживаемых model provider: Amazon Bedrock с настроенными AWS credentials, Anthropic API, OpenAI или локальный Ollama. Наличие такого выбора позволяет экспериментировать как в облаке, так и полностью локально.

Вместе со статьёй доступен runnable-компаньон — ноутбук examples/notebooks/05_streaming_data_loop.ipynb, который воспроизводит весь описанный цикл. Это удобная отправная точка, чтобы увидеть связку Strands Robots, Hugging Face Storage Buckets и LeRobot вживую.

Выводы

Главный результат — возможность упаковать весь цикл разработки робототехнических политик в один контур. Запись, хранение, обучение и деплой используют одни и те же абстракции и форматы. Это радикально снижает количество «склеек» между этапами и упрощает эксперименты: чтобы изменить данные, достаточно обновить демонстрации в bucket, а чтобы обновить политику — просто переобучить модель на потоковых данных и поменять один аргумент при создании робота.

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

Похожие материалы

Все материалы