HG-DAgger, решение за человеком

Перехватите управление, когда политика ошибается, и дообучите её на этой коррекции.

Политика, обученная методом клонирования поведения, знает только состояния, которые встречались в демонстрациях. DAgger закрывает этот пробел данными из состояний, до которых политика доходит сама. AY-Robots проводит весь цикл на SO-100: прогнать чекпоинт, перехватить управление посреди прогона, сохранить исправленные эпизоды, собрать смешанный датасет и дообучить с того же чекпоинта, который только что вели.

  • HG-DAgger, решение за человеком
  • SO-100 / SO-101
  • ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
  • Частота вмешательств по раундам

Почему обученная политика делает то, чего никогда не показывали

Клонирование поведения трактует управление как обычное обучение с учителем: на входе — наблюдение, на выходе — целевое положение сустава, всё подогнано под кадры, записанные человеком. Это работает только пока робот остаётся в состояниях, которые посещал человек, а он там не остаётся. Захват, который закрывается на сорок миллисекунд раньше, сдвигает кубик на два миллиметра от продемонстрированного положения. Следующее наблюдение — это то, чего нет в обучающей выборке, поэтому действие там уже экстраполяция, а состояние после него отклоняется ещё дальше. Обучающее распределение и распределение, которое в реальности порождает обученная политика, — это две разные вещи, и по ходу эпизода второе всё сильнее уходит от первого.

Росс, Гордон и Бэгнелл в 2011 году описали именно этот сбой такого сведения задачи к обучению с учителем и оценили ущерб количественно: классификатор, ошибающийся с вероятностью e при распределении эксперта, на горизонте в T шагов при собственном распределении может совершить порядка T² · e ошибок, потому что одна ошибка порождает наблюдения, которых эксперт никогда бы не создал, и ошибки накапливаются лавинообразно. Их ответ на это — тот самый алгоритм, о котором рассказывает эта страница: запустить текущую политику, собрать экспертные метки для состояний, которые она посещает, объединить их со всем, что собрано ранее, дообучить и повторить. Больше демонстраций того же рода не помогает — они лишь пересэмплируют то же распределение. Помогают метки на состояниях, которых достигает сама политика. Реализованный здесь вариант — human-gated (HG-DAgger, Kelly et al.): политика сохраняет управление, пока человек не решит, что что-то идёт не так, и не перехватит его, поэтому коррекции появляются только там, где они нужны, а руку никогда не просят ехать в состояние, которое оператор бы не допустил.

  • Клонирование поведения работает только на том распределении состояний, на котором оно обучено.
  • Ошибка усиливает сама себя: небольшое отклонение порождает незнакомое состояние, а оно — ещё большее отклонение.
  • Лекарство — не больше демонстраций, а метки на состояниях, которых достигает сама политика.
  • Human-gated означает, что о моменте вмешательства решает оператор, а не показатель автономности.

Почему ошибка накапливается

Подвиньте горизонт. При клонировании поведения ожидаемые дополнительные издержки растут примерно как квадрат числа шагов, потому что каждая ошибка порождает состояния, которые демонстрации никогда не покрывали; цикл агрегации удерживает рост близким к линейному (Ross et al., 2011).

200
1.0 %
Клонирование поведения
400
DAgger
2.00
200×
Клонирование поведения ÷ DAgger
0.000100200300400050100150200Ожидаемые дополнительные издержки (граница)
Горизонт задачи (шагов)

Иллюстративные кривые по границам из Ross et al. (2011), а не измерения на вашем роботе. Важна форма кривой, а не конкретные числа.

Один раунд DAgger — шесть шагов

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

Пройти цикл по шагам

Те же шесть шагов, по одному, с тем, что при этом происходит с рукой и с датасетом.

01

Запустить политику и записать прогон

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

1 из 6

Что платформа берёт на себя

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

Перехват без leader-руки

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

Документация по телеоперации

Интервенции отмечены по кадрам

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

Формат датасета LeRobot

Сортировка: коррекция, оценка или корзина

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

Сессии и эпизоды

Явно собирать смесь

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

Датасеты

Дообучение с чекпоинта

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

Обучение

Аренда GPU по раундам

ACT и SmolVLA — на 4090, Pi0 и GR00T N1.5 или N1.7 — на A100 с 80 ГБ. Вы запускаете раунд, под поднимается, чекпоинты попадают в ваш бакет, и вы платите за часы, которые занял раунд.

Цены на GPU

Спланировать раунды

Частота вмешательств — это метрика прогресса цикла: исправленные кадры, делённые на кадры прогона. Задайте стартовое значение и то, сколько даёт каждый раунд, и посмотрите, сколько раундов нужно, чтобы дойти до цели.

30 %
25 %
3 000
РаундЧастота вмешательствИсправленные кадры
1
30.0%
900
2
22.5%
675
3
16.9%
506
4
12.7%
380
5
9.5%
285
6
7.1%
214
Σ2 960

Это модель, а не прогноз. Реальные раунды идут скачками, и раунд, который не сдвигает показатель, не дал ничего — именно за этим стоит следить.

Строить цикл самому или запускать здесь

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

Шаг циклаСвоими рукамиНа AY-Robots
Перехват посреди прогонаLeader-рука или собственный код на шине сервоприводов. Перехват с клавиатуры и слайдеров, вместе с безопасными ограничениями, придётся написать и отладить на реальном железе.Leader-рука, клавиатура или слайдеры — выбор при старте прогона. Ограничения по углам сидят на сервере.
Отметка интервенцийВы сами заводите столбец с флагом, держите его выровненным по индексу кадра и перепроверяете при каждом изменении формата записи.Каждый кадр, записанный во время перехвата, помечается автоматически, с заданной позой в столбце action.
Сортировка прогоновСоглашения по директориям и shell-скрипты. Стоп-кадры вокруг передачи управления придётся находить и отсеивать самостоятельно.Одно решение на прогон на карточке сохранения. Кадры передачи управления остаются в raw-директории.
Сборка смешанного датасетаСкрипты слияния под каждую версию формата. Самая муторная часть — привести индексы эпизодов, метаданные и ссылки на видео к единому виду.Сборка из исходника плюс коррекций с выбором эпизодов по источнику; результат — обычный датасет.
Начать следующий раунд с последней политикиВы сами подключаете чекпоинт к трейнеру и при желании можете восстановить состояние оптимизатора — то есть по-настоящему продолжить обучение.Одно поле для базового чекпоинта. Только веса: инициализация из чекпоинта, без возобновления оптимизатора.
Контроль над циклом обученияПолный. Свой loss, свой график, свои абляции, своя инструментация, никакой платформы между вами и обучением. Если исследовательский вопрос — сам цикл обучения, стройте его руками.Фиксированный путь с заданным списком политик и гиперпараметрами, которые даёт форма, без произвольного кода.

Работы, на которых это основано

Прочитайте это, прежде чем спорить с циклом. Каждая ссылка ведёт на страницу аннотации, а не за платный доступ.

  1. A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning

    Stephane Ross, Geoffrey J. Gordon, J. Andrew Bagnell · 2011 · AISTATS 2011 (PMLR 15)

    Оригинальная статья по DAgger: формулирует проблему накопления ошибок, даёт границу T² для чисто обучаемого с учителем подхода и предлагает агрегировать данные из состояний, которые посещает сам обучаемый.

  2. HG-DAgger: Interactive Imitation Learning with Human Experts

    Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019

    Human-gated вариант: эксперт сам решает, когда взять управление, вместо того чтобы его спрашивали о состояниях, выбранных политикой; именно этот режим реализован на платформе.

  3. EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning

    Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019

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

  4. ThriftyDAgger: Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning

    Ryan Hoque, Ashwin Balakrishna, Ellen Novoseller, Albert Wilcox, Daniel S. Brown, Ken Goldberg · 2021 · CoRL 2021

    Рассматривает внимание человека как дефицитный ресурс и просит о помощи только в новых или рискованных состояниях — подходящий взгляд, когда один человек присматривает за рукой целый день.

  5. DART: Noise Injection for Robust Imitation Learning

    Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017

    Честная альтернатива: вместо коррекции политики в реальном времени возмущать демонстрации, чтобы эксперт показывал восстановление. Стоит знать, прежде чем делать ставку на вмешательства.

  6. Interactive Imitation Learning in Robotics: A Survey

    Carlos Celemin, Rodrigo Perez-Dattari, Eugenio Chisari, Giovanni Franzese, Leandro de Souza Rosa, Ravi Prakash, Zlatan Ajanovic, Marta Ferraz, Abhinav Valada, Jens Kober · 2022 · arXiv:2211.00600

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

  7. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware

    Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705

    Статья по ACT. Action chunking — причина, по которой дешёвой рукой вообще можно управлять с помощью политики имитационного обучения, а ACT — политика, с которой раунд DAgger проходится быстрее всего.

  8. π0: A Vision-Language-Action Flow Model for General Robot Control

    Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn et al. · 2024 · arXiv:2410.24164

    VLA на основе flow matching и предобученной vision-language модели, здесь доступен как чекпоинт для дообучения; статья прямо утверждает, что новые навыки берутся из дообучения, а не из одной базовой модели.

Частые вопросы

Нужна ли для DAgger leader-рука?

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

Сколько раундов DAgger нужно?

Честного фиксированного числа не существует. Смотрите на частоту вмешательств: если она не падает от раунда к раунду, этот раунд не дал ничего, и причина обычно в постановке задачи, камерах или исходном датасете, а не в числе раундов.

Это настоящий DAgger или что-то более вольное?

Это HG-DAgger, human-gated вариант. Классический DAgger опрашивает эксперта о состояниях, которые выбрала политика, включая такие, куда ни один здравомыслящий оператор не позволил бы заехать реальной руке. Здесь о вмешательстве решает человек, и метками становятся только эти отрезки.

Обучаюсь ли я только на коррекциях?

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

Значит ли «Продолжить с чекпоинта», что обучающий прогон возобновляется?

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

Как считается частота вмешательств?

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

С какими политиками работает этот цикл?

ACT, SmolVLA, Pi0, а также GR00T N1.5 и N1.7. Сам цикл не зависит от конкретной политики, потому что порождает только датасеты и чекпоинты; на практике модели различаются длительностью раунда и нужной GPU.

Можно ли обойтись без собственного робота?

Записывать и обучать можно и без него: покупая датасеты на маркетплейсе или заказывая операторов, а настоящим SO-100 можно управлять в браузере на странице live. Раунд DAgger — другое дело: для него нужна рука, которую вы можете перехватить посреди прогона, поэтому для самого цикла нужно железо на собственном столе.

Drive a real arm

A real SO-100, live in the browser. No signup, no hardware needed.

Провести первый раунд на этой неделе

Установите клиент, прогоните уже имеющийся чекпоинт и перехватите управление в первый момент, когда рука промахнётся мимо кубика. Этот единственный прогон — DAgger-раунд в миниатюре; всё, что после, — это сборка смеси и оплата часов GPU.