Внедрение робототехнического ИИ на встраиваемые платформы: запись датасета, дообучение VLA и оптимизация на устройстве

Сегодня разбираем материал huggingface.co о теме «Внедрение робототехнического ИИ на встраиваемые платформы: запись датасета, дообучение VLA и оптимизация на устройстве». Практический разбор с шагами и примерами, который можно быстро применить в своей работе.


Авторы: Enzo Ruedas, Tess Boivin

Мы работали над задачей, которая на бумаге выглядит просто: научить робота класть пакетик чая в кружку. На практике это потребовало решить три взаимосвязанные проблемы — как собрать данные, которые действительно обучают, как дообучить VLA-модель без переобучения и как запустить всё это на встраиваемом железе в реальном времени.

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

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

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

В данном руководстве представлены практические рекомендации от NXP по записи надёжных робототехнических датасетов и дообучению VLA-политик (ACT и SmolVLA), а также демонстрация производительности SoC NXP i.MX 95 после оптимизации.

🎥 Запись датасета: что действительно важно

Данные высокого качества и согласованности имеют гораздо большее значение, чем просто большое количество неструктурированных данных. В этом разделе собранный опыт превращается в конкретные чеклисты и схемы.

В нашем случае мы записывали датасет для задачи: «Положи пакетик чая в кружку».

1) Прежде всего — согласованность

Фиксированные камеры: используйте жёсткие крепления, чтобы избежать смещения позиции. Если во время записи или оценки одна или несколько камер сдвинутся из-за вибраций робота или сброса среды оператором, можно наблюдать значительную потерю точности.

Контролируемое освещение: организуйте среду так, чтобы иметь максимальный контроль над освещением — фиксированный источник или несколько источников света, вдали от солнечного света, который меняется в течение дня.

Высокий контраст: избегайте обучения на сценах «белое на белом», если только это не ваша целевая область развёртывания. Максимизируйте контраст между манипулятором, объектом и окружающей средой.

Фиксированная калибровка: обязательно делайте резервные копии калибровок робота и телеоператора, чтобы не пришлось перезаписывать предыдущие эпизоды в случае сбоя кода.

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

2) Используйте камеру на захвате (настоятельно рекомендуется)

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

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

3) Улучшение захвата

Простые аппаратные доработки — например, термоусадочная трубка на губках захвата — увеличивают трение, снижают шероховатость, уменьшают проскальзывание во время эпизодов и повышают успешность выполнения задачи. Меньше эпизодов «почти успех» означает более стабильное обучение политики.

4) Разнообразие и разбивка

При записи датасета следует придерживаться нескольких принципов.

Варьировать распределение эпизодов: разделите рабочее пространство на кластеры начальных позиций и записывайте не менее 10 эпизодов на кластер. Добавляйте разнообразие, изменяя положение и ориентацию объекта. Например, мы разбили достижимое рабочее пространство манипулятора на 11 кластеров, каждый размером 10 × 10 см.

Разграничивать обучающую и валидационную выборки: политики легко переобучаются на обучающей выборке, поэтому убедитесь, что валидационная выборка не видна модели. Например, мы исключили кластер 6 из обучающей выборки.

Записывать как можно больше движений: небольшие VLA-модели демонстрируют ограниченную обобщаемость на невиданных движениях. Поэтому записывайте эпизоды, охватывающие более широкие диапазоны степеней свободы. Например, мы захватывали пакетик чая как в горизонтальном, так и в вертикальном положении.

Предусматривать отказы: иногда политика не достигает объекта с первого раза и должна «вернуться к нему». Мы заметили, что наличие 20% всех эпизодов, соответствующих случаю возврата к объекту, помогает модели улучшить общий показатель успешности. Около 20% нашей обучающей выборки составляют именно эпизоды восстановления.

Это соответствует лучшим практикам из статей по VLA и руководств сообщества. Вот три примера разнообразия данных в рамках одного кластера.

Начальные позиции 1 и 2 соответствуют разным позициям в одном кластере. В отличие от них, в эпизоде восстановления робот не начинает в «стартовом режиме», а уже находится вблизи кружки и должен сразу перейти к извлечению пакетика чая из этого положения.

🎛️ Дообучение VLA

Что мы делали на практике:

  • Задача: «Возьми пакетик чая и положи его в кружку»
  • Датасет: 120 эпизодов — 10 кластеров × (10 различных начальных позиций пакетика чая + 2 эпизода восстановления)
  • 3 камеры (640×480 пкс, 30 кадров/с): верхняя, на захвате, левая
  • Кластер №6 был исключён для валидации
  • Размер батча (batch size): 8
  • Обучение: был выбран чекпоинт (checkpoint) модели с наименьшей потерей на валидации после 200 тыс. шагов

Диапазон, обеспечивающий наилучший компромисс между точностью, обобщаемостью и плавностью движения на обучающей и валидационной выборках, был найден для ACT (100 действий на чанк) в диапазоне 100–160 тыс. шагов обучения. Для обучения SmolVLA (50 действий на чанк) компромисс достигается после значительно большего числа шагов. Мы обнаружили, что продолжение обучения немного дольше точки, в которой модель начинает переобучаться, как правило, улучшает общую точность.

Практическое правило: выбирайте финальный чекпоинт, оценивая успешность как на обучающей, так и на валидационной выборке, а не по потере на обучении.

⚡ Оптимизация для процессора приложений NXP i.MX 95

SoC i.MX 95 интегрирует 6× Arm Cortex‑A55, Cortex‑M7 и Cortex‑M33 MCU, Mali GPU, новый NXP ISP и eIQ® Neutron NPU, ориентируясь на эффективный, безопасный граничный инференс (edge inference) с поддержкой нескольких камер и развитым вводом-выводом.

1) Разделяй и властвуй

Вместо запуска моделей в виде единого монолитного графа мы декомпозируем граф VLA на логические этапы: энкодеры (encoders), декодеры (decoders) и экспертов по действиям (action experts). Это позволяет оптимизировать, планировать и развёртывать каждый компонент независимо.

На практике SmolVLA разбивается на следующие подблоки:

  • Зрение: обрабатывает RGB-кадры с камер и формирует визуальные эмбеддинги (embeddings).
  • LLM-основа: генерирует токены действий из визуальных и текстовых эмбеддингов.
  • Эксперт по действиям: применяет flow matching для итеративного шумоподавления образцов действий и выдаёт финальные управляющие команды.

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

2) Квантизация

Для оптимизации инференса на SoC i.MX 95 мы исследовали несколько техник квантизации (quantization) на различных блоках. Квантизация визуального энкодера и префилла (prefill) LLM оказывала ограниченное влияние на точность, тогда как квантизация денойзингового потока (denoising flow) в эксперте по действиям значительно ухудшает производительность. Такое поведение ожидаемо: ошибки квантизации накапливаются на протяжении итеративных шагов денойзинга.

Именно поэтому мы решили сохранить этот блок при более высокой точности для обеспечения стабильности, тогда как для остальных блоков исследовали различные конфигурации квантизации — от 8-битной смешанной точности до 4-битной квантизации в зависимости от слоёв.

Кроме того, мы применили собственные оптимизации к различным блокам. Результаты представлены в таблице ниже и обозначены как оптимизированные модели.

3) Асинхронный инференс: планирование с учётом управления

В синхронном контуре управления конвейер работает следующим образом:

  1. Захват наблюдения
  2. Запуск полного инференса модели
  3. Выполнение сгенерированного действия

На шаге (2) робот остаётся неподвижным. Если задержка инференса существенна, это приводит к паузам в движении, осциллирующим коррекциям из-за устаревших наблюдений, снижению эффективной частоты управления и плохому поведению при восстановлении.

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

На встраиваемых платформах, таких как SoC i.MX 95, асинхронный инференс необходим — но эффективен только при условии, что задержка инференса не превышает бюджет горизонта действий: время инференса < время выполнения.

📊 Результаты на процессоре приложений i.MX 95

Конфигурация

  • Задача: «Возьми пакетик чая и положи его в кружку»
  • Тестовая выборка (20 эпизодов): 2 случайные позиции для каждого кластера
  • Валидационная выборка (10 эпизодов): все 10 позиций в кластере №6

⏩ Следующие шаги

Наша непосредственная цель — улучшить точность выполнения задачи с помощью SmolVLA (ONNX FP32). Мы уже установили базовый уровень и измерили оптимизированную задержку инференса на устройстве в 6,15 с.

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

  • Среды симуляции для масштабируемой генерации данных и бенчмаркинга
  • Обучение с подкреплением (Reinforcement Learning, RL) для уточнения политики
  • Перенос из симуляции в реальность (Sim-to-Real) для преодоления доменных разрывов и улучшения производительности в реальном мире

Цель — перейти от одной валидированной манипуляционной задачи к воспроизводимой методологии развёртывания VLA-политик на встраиваемых робототехнических системах.

✅ Чеклисты для повторного использования

Запись

  • Фиксированные крепления проверены
  • Хорошая фокусировка камер и освещение
  • Хорошее сцепление губок захвата
  • Резервные копии файлов калибровки сохранены
  • Контраст проверен

Обучение

  • Сохранять и оценивать чекпоинты каждые 20 тыс. шагов
  • Также сохранять параметры обучения, чтобы иметь возможность возобновить обучение при необходимости
  • Заранее подготовить валидационную выборку и метод отслеживания точности и задержки

Развёртывание на SoC i.MX 95

  • Вы удовлетворены точностью
  • Свяжитесь с командой для оптимизации вашей модели

📚 Ресурсы и источники вдохновения

  • Документация и статья по ACT (основная идея, чанкинг действий, успех при малом числе демонстраций) — huggingface.co, arxiv.org
  • Семейство SmolVLM/SmolVLA и репозитории (компактный мультимодальный дизайн + VLA) — huggingface.co, github.com, smolvla.net
  • Блог Sherry Chen на HF об обучении ACT на SO‑101 (практические уроки, подводные камни, решения) — huggingface.co

Ответы на эти вопросы могут быть для вас полезными

Сколько эпизодов нужно для надёжного обучения VLA-политики? В нашем опыте достаточно 120 эпизодов при правильном разбиении на кластеры — по 10 эпизодов на кластер с добавлением около 20% эпизодов восстановления. Качество и согласованность данных важнее их количества.

Почему квантизация эксперта по действиям ухудшает точность сильнее, чем квантизация других блоков? Ошибки квантизации накапливаются на каждом итеративном шаге денойзинга. Поэтому денойзинговый поток в эксперте по действиям чувствителен к снижению точности, тогда как визуальный энкодер и LLM-префилл переносят квантизацию значительно лучше.

Чем асинхронный инференс лучше синхронного на встраиваемых платформах? При синхронном инференсе робот простаивает на каждом шаге генерации действий, что приводит к паузам и осциллирующим коррекциям. Асинхронный подход позволяет выполнять текущий чанк действий параллельно с вычислением следующего — при условии, что задержка инференса не превышает время выполнения действия.

Зачем использовать камеру на захвате, если уже есть верхняя и боковая камеры? Камера на захвате обеспечивает близкую, задаче-релевантную точку обзора и дополнительно дисциплинирует оператора: он вынужден опираться только на восприятие робота, а не на прямое наблюдение сцены. Это снижает утечку информации в датасет и улучшает обобщаемость политики.

Как выбрать финальный чекпоинт при дообучении VLA? Не ориентируйтесь только на потерю на обучении. Оценивайте успешность выполнения задачи как на обучающей, так и на валидационной выборке — и выбирайте чекпоинт, при котором обе метрики остаются стабильными. Небольшое продолжение обучения за точкой начала переобучения нередко даёт прирост общей точности.

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x