Human-gated DAgger, наскрізно

Перехопіть керування, коли policy помиляється, і натренуйте саме цю корекцію.

Policy, навчена через behavior cloning, знає лише ті стани, які траплялися у ваших демонстраціях. DAgger закриває цей розрив даними зі станів, яких досягає сама policy. AY-Robots проводить весь цикл на SO-100: запускаєте checkpoint, перехоплюєте керування посеред запуску, зберігаєте виправлені епізоди, складаєте суміш і продовжуєте навчання з щойно керованого checkpoint.

  • HG-DAgger, human-gated
  • SO-100 / SO-101
  • ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
  • Рівень втручань за раунд

Чому навчена policy робить те, чого ніколи не демонстрували

Behavior cloning трактує керування як звичайне навчання з учителем: на вході спостереження, на виході цільова поза суглобів, підігнана під кадри, які записала людина. Це справджується лише поки робот залишається у станах, які відвідувала людина, а це не так. Захват, що закривається на сорок мілісекунд раніше, зсуває кубик на два міліметри від продемонстрованої пози. Наступне спостереження вже не входить у навчальний набір, тож дія там — екстраполяція, а наступний стан лежить ще далі. Розподіл навчальних даних і розподіл, який насправді породжує навчена policy, — дві різні речі, і другий відхиляється від першого дедалі більше в міру просування епізоду.

Росс, Гордон і Бегнелл описали саме цей збій зведення (reduction) у 2011 році й оцінили його масштаб: класифікатор, що помиляється з імовірністю e під розподілом експерта, може під власним розподілом на горизонті T кроків зробити приблизно T у квадраті, помножене на e, помилок, тому що одна помилка породжує спостереження, яких експерт ніколи не створював, і помилки накопичуються. Їхнє рішення — алгоритм, про який ця сторінка. Запустити поточну policy, зібрати мітки експерта для станів, які вона відвідує, доєднати їх до всього зібраного раніше, перенавчити, повторити. Більше демонстрацій того самого типу не допомагає, бо вони лише повторно вибирають той самий розподіл. Мітки зі станів, яких досягає policy, — допомагають. Реалізований тут варіант — human-gated (HG-DAgger, Kelly et al.): policy зберігає керування, поки людина не вирішить, що щось іде не так, і не перехопить його, тож корекції з'являються лише там, де потрібні, а руку ніколи не змушують заїхати у стан, який оператор би не дозволив.

  • Behavior cloning справджується лише на розподілі станів, на якому воно навчене.
  • Помилка самопідсилюється: невелике відхилення породжує незнайомий стан, який породжує більше відхилення.
  • Ліки — не більше демонстрацій, а мітки зі станів, яких досягає сама policy.
  • Human-gated означає, що момент втручання визначає оператор, а не показник автономності.

Чому помилка накопичується

Пересуньте горизонт. При behavior cloning очікувані додаткові витрати зростають приблизно з квадратом кількості кроків, бо кожна помилка породжує стани, яких демонстрації ніколи не покривали; цикл агрегації тримає це зростання близьким до лінійного (Ross et al., 2011).

200
1.0 %
Behavior cloning
400
DAgger
2.00
200×
Behavior cloning ÷ DAgger
0.000100200300400050100150200Очікувані додаткові витрати (межа)
Горизонт задачі (кроки)

Ілюстративні криві за межами з Ross et al. (2011), не вимірювання на вашому роботі. Йдеться про форму кривої, а не про числа.

Один раунд DAgger, шість кроків

Це цикл так, як він насправді працює на платформі, а не схема. Кожен крок нижче відповідає елементу керування в кокпіті.

Пройти цикл крок за кроком

Ті самі шість кроків, по одному, з тим, що відбувається на руці й у датасеті на кожному з них.

01

Запустити policy й записати

Запустіть інференс проти навченого вами checkpoint. Запуск записується під час виконання, разом із текстом задачі самого запуску, тож кадри потім придатні як навчальні дані, а не лишаються просто відео для перегляду.

1 з 6

Що платформа знімає з ваших плечей

Кожен пункт тут — крок циклу, який інакше довелося б будувати й підтримувати самостійно.

Перехоплення без leader-руки

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

Документація з teleoperation

Інтервенції позначені по кадрах

Кожен кадр, записаний, поки ви тримаєте руку, несе прапорець інтервенції, а стовпець action містить повну задану позу. Вам не потрібно вести стовпець прапорців вручну чи вирівнювати його з індексами кадрів згодом.

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

Сортування: корекція, оцінка чи смітник

Кожен запуск отримує одне рішення на картці збереження. Запуски-корекції живлять наступний раунд навчання, оціночні запуски лишаються поза навчанням і залишаються чистим вимірюванням, невдалі запуски зникають, а не тихо псують суміш.

Сесії та епізоди

Складати суміш явно

Навчальний набір для раунду n складаєте ви самі: оригінальний датасет плюс корекції, епізоди обрані за джерелом. Ніякого автоматичного домішування, ніяких прихованих даних симуляції, і складений результат поводиться як будь-який інший датасет.

Датасети

Продовжити з checkpoint

Спрямуйте навчальний запуск на щойно керований checkpoint замість базової моделі, щоб кожен раунд починався там, де закінчився попередній. Ініціалізуються лише ваги; стан оптимізатора не відновлюється, тому перший раунд варто розглядати як тест на здійсненність.

Навчання

GPU в оренду за раунд

ACT і SmolVLA на 4090, Pi0 і GR00T N1.5 або N1.7 на A100 з 80 ГБ. Ви запускаєте раунд, під'їжджає pod, checkpoint потрапляють у ваш bucket, і ви платите за години, які зайняв раунд.

Ціни на 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.
Побудова змішаного датасетуСкрипти злиття для кожної версії формату. Найнудніша частина — узгодити індекси епізодів, метадані й посилання на відео.Складання з оригіналу плюс корекцій із вибором епізодів за джерелом; результат — звичайний датасет.
Почати наступний раунд з останньої policyВи самі під'єднуєте checkpoint до тренера і за бажання можете також відновити стан оптимізатора для справжнього продовження.Одне поле для базового checkpoint. Тільки ваги: ініціалізація з checkpoint, це не відновлення оптимізатора.
Контроль над циклом навчанняПовний. Власний loss, власний розклад, власні абляції, власна інструментація, жодної платформи між вами й процесом. Якщо дослідницьке питання — сам цикл навчання, робіть це вручну.Фіксований шлях із заданим списком policy та гіперпараметрами, які пропонує форма, не довільний код.

Роботи, на яких це побудовано

Прочитайте це, перш ніж сперечатися з циклом. Кожне посилання веде на сторінку анотації, а не за платний доступ.

  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 варіант: експерт вирішує, коли перехопити керування, замість того щоб його запитували про стани, обрані policy, — це і є режим, реалізований на цій платформі.

  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

    Чесна альтернатива: замість того щоб виправляти policy онлайн, збурювати демонстрації, щоб експерт показав відновлення. Варто знати про це, перш ніж робити ставку на втручання.

  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 — причина, чому недорога рука взагалі може керуватися policy імітаційного навчання, і ACT — найшвидша policy для прогону раунду 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

    Flow-matching VLA, побудований на попередньо навченій vision-language моделі, і один із checkpoint, який можна дотренувати тут; робота прямо стверджує, що нові навички з'являються з fine-tuning, а не лише з базової моделі.

Питання, які справді ставлять

Чи потрібна для DAgger leader-рука?

Ні. Оберіть введення з клавіатури або повзунків на старті запуску, і перехоплення буде ручним з першого кадру, керованим із браузера. Leader-рука приємніша для тонких рухів, і це єдиний режим, у якому рука сама вирівнюється перед передачею керування, але цикл працює і без неї.

Скільки раундів DAgger потрібно?

Чесного фіксованого числа не існує. Стежте за рівнем втручань: якщо він не падає від раунду до раунду, цей раунд не дав нічого, і причина зазвичай у постановці задачі, камерах або оригінальному датасеті, а не в кількості раундів.

Це справжній DAgger чи щось приблизне?

Це HG-DAgger, human-gated варіант. Класичний DAgger запитує експерта про стани, обрані policy, включно зі станами, куди жоден розсудливий оператор не пустив би реальну руку. Тут людина вирішує, коли втрутитися, і мітками стають лише ці сегменти.

Чи навчаюся я лише на корекціях?

Ні, і не варто. Навчання лише на корекціях дає policy, яка вміє тільки відновлюватися. Складений датасет — це оригінальні дані плюс корекції, з явним вибором епізодів за джерелом.

Чи продовжує "Продовжити з checkpoint" сам процес навчання?

Це ініціалізує ваги з цього checkpoint. Стан оптимізатора не відновлюється, тож у строгому сенсі це не продовження. На практиці саме ваги переносять навчену поведінку між раундами, але варто знати, що саме з двох ви отримуєте.

Як обчислюється рівень втручань?

Кадри, позначені як інтервенція, поділені на загальну кількість кадрів запуску. Показується в статусі перехоплення, і це те єдине число, яке варто записувати за кожен раунд поряд із керованим checkpoint і навченою сумішшю.

З якими policy можна запускати цей цикл?

ACT, SmolVLA, Pi0 та GR00T N1.5 або N1.7. Сам цикл не залежить від policy, бо виробляє лише датасети й checkpoint; практична різниця — у тривалості раунду та потрібному GPU.

Чи можна робити це без власного робота?

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

Drive a real arm

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

Запустіть перший раунд цього тижня

Встановіть клієнт, керуйте вже наявним checkpoint і перехопіть керування, щойно рука вперше промахнеться повз кубик. Цей один запуск — DAgger-раунд у мініатюрі: усе після нього — це складання суміші й оплата годин GPU.