Перехопіть керування, коли 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).
Ілюстративні криві за межами з Ross et al. (2011), не вимірювання на вашому роботі. Йдеться про форму кривої, а не про числа.
Один раунд DAgger, шість кроків
Це цикл так, як він насправді працює на платформі, а не схема. Кожен крок нижче відповідає елементу керування в кокпіті.
Пройти цикл крок за кроком
Ті самі шість кроків, по одному, з тим, що відбувається на руці й у датасеті на кожному з них.
Запустити policy й записати
Запустіть інференс проти навченого вами checkpoint. Запуск записується під час виконання, разом із текстом задачі самого запуску, тож кадри потім придатні як навчальні дані, а не лишаються просто відео для перегляду.
Перехопити керування й виправити
Щойно рука робить щось не те — натисніть Перехопити. Runner ставиться на паузу, рука ваша. З leader-рукою вона спочатку під'їжджає до пози follower і передає керування; з клавіатурою або повзунками, обраними на старті запуску, перехоплення відбувається одразу вручну. Виправте рух, потім поверніть керування policy. Кадри, записані під час перехоплення, автоматично позначаються як інтервенція.
Розсортувати запуски
Для кожного запуску вирішіть, чим він був: зберегти як корекцію, лишити як оціночний запуск або відкинути. Стоп-кадри навколо передачі керування лишаються в каталозі raw і ніколи не потрапляють у датасет.
Синхронізувати датасет корекцій
Корекції збираються в окремому датасеті на кожну policy й потрапляють у ваш bucket через автоматичну синхронізацію в хмару. На цьому етапі нічого не змішується; корекції — просто окремий датасет.
Скласти суміш самостійно
Скористайтеся Скласти датасет, щоб зібрати навчальний набір для наступного раунду: оригінальний датасет плюс корекції, з явним вибором епізодів за джерелом. Результат — звичайний датасет, який синхронізується й навчається як будь-який інший. Нічого не підмішується непомітно, і дані симуляції не додаються автоматично.
Продовжити навчання з checkpoint
Навчайте складений датасет через Продовжити з checkpoint замість старту з базової моделі, щоб раунд починався з тієї policy, яку ви щойно керували. Точніше кажучи: це ініціалізує ваги з цього checkpoint, це не відновлення оптимізатора.
Що платформа знімає з ваших плечей
Кожен пункт тут — крок циклу, який інакше довелося б будувати й підтримувати самостійно.
Перехоплення без leader-руки
Оберіть введення з клавіатури або повзунків на старті запуску — і виправляти можна лише з ноутбуком. Клавіатурні кроки сервер жорстко обмежує двома градусами на суглоб і чотирма на захваті; цілі повзунків абсолютні, і сервер рухається щонайбільше на шість градусів у їхньому напрямку за виклик. Обмеження стоять на сервері, а не в інтерфейсі, тож зависла клавіша не може кинути руку.
Документація з teleoperationІнтервенції позначені по кадрах
Кожен кадр, записаний, поки ви тримаєте руку, несе прапорець інтервенції, а стовпець action містить повну задану позу. Вам не потрібно вести стовпець прапорців вручну чи вирівнювати його з індексами кадрів згодом.
Формат датасету LeRobotСортування: корекція, оцінка чи смітник
Кожен запуск отримує одне рішення на картці збереження. Запуски-корекції живлять наступний раунд навчання, оціночні запуски лишаються поза навчанням і залишаються чистим вимірюванням, невдалі запуски зникають, а не тихо псують суміш.
Сесії та епізодиСкладати суміш явно
Навчальний набір для раунду n складаєте ви самі: оригінальний датасет плюс корекції, епізоди обрані за джерелом. Ніякого автоматичного домішування, ніяких прихованих даних симуляції, і складений результат поводиться як будь-який інший датасет.
ДатасетиПродовжити з checkpoint
Спрямуйте навчальний запуск на щойно керований checkpoint замість базової моделі, щоб кожен раунд починався там, де закінчився попередній. Ініціалізуються лише ваги; стан оптимізатора не відновлюється, тому перший раунд варто розглядати як тест на здійсненність.
НавчанняGPU в оренду за раунд
ACT і SmolVLA на 4090, Pi0 і GR00T N1.5 або N1.7 на A100 з 80 ГБ. Ви запускаєте раунд, під'їжджає pod, checkpoint потрапляють у ваш bucket, і ви платите за години, які зайняв раунд.
Ціни на GPUПлануйте раунди
Рівень втручань — метрика прогресу циклу: виправлені кадри поділені на кадри запуску. Задайте початкове значення й наскільки кожен раунд його знижує, і подивіться, скільки раундів потрібно, щоб дійти до мети.
| Раунд | Рівень втручань | Виправлені кадри |
|---|---|---|
| 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 та гіперпараметрами, які пропонує форма, не довільний код. |
Роботи, на яких це побудовано
Прочитайте це, перш ніж сперечатися з циклом. Кожне посилання веде на сторінку анотації, а не за платний доступ.
- 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 у квадраті для чисто наглядового підходу і пропонує агрегувати дані зі станів, які відвідує сам учень.
- 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, — це і є режим, реалізований на цій платформі.
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
Інший спосіб керувати втручаннями: розбіжність в ансамблі як сигнал довіри для того, коли учень може діяти самостійно. Корисний контраст до того, щоб рішення приймала людина.
- 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
Розглядає увагу людини як дефіцитний ресурс і просить про допомогу лише в нових або ризикованих станах — правильний погляд, коли одна людина наглядає за рукою цілий день.
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
Чесна альтернатива: замість того щоб виправляти policy онлайн, збурювати демонстрації, щоб експерт показав відновлення. Варто знати про це, перш ніж робити ставку на втручання.
- 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.
- 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.
- π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 — інше: потрібна рука, яку можна перехопити посеред запуску, тож для самого циклу знадобиться залізо на власному столі.
A real SO-100, live in the browser. No signup, no hardware needed.
Запустіть перший раунд цього тижня
Встановіть клієнт, керуйте вже наявним checkpoint і перехопіть керування, щойно рука вперше промахнеться повз кубик. Цей один запуск — DAgger-раунд у мініатюрі: усе після нього — це складання суміші й оплата годин GPU.