Robot Learning – Telegram
Robot Learning
81 subscribers
2 photos
37 links
О робототехнике и AI в робототехнике
Download Telegram
Where’s RobotGPT? By Dieter Fox

Недавно Дитер Фокс, глава отдела робототехники в Nvidia, прочитал лекцию в Университете Карнеги-Меллона на тему: «Где же RobotGPT?». В этом посте я постараюсь резюмировать основные идеи его выступления.

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

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

Диетер подробно рассказал о подходе своей команды к генерации данных с использованием симуляции:

1. Генерация сцен и задач: случайным образом создается сцена с различными объектами, и формируются задачи, связанные с этими объектами, включая вознаграждение. Для этого можно применять большие языковые модели (LLM).

2. Создание экспертов: они решают задачи, используя привилегированную информацию, такую как точное положение и свойства объектов. Команда Nvidia использует Task and Motion Planning (TAMP) ([PDDLStream](https://github.com/caelan/pddlstream)), скорее всего, благодаря скорости по сравнению с RL.

3. Обучение студентов: студенты имеют доступ только к данным с камер и сенсоров. Они обучаются на данных, генерированных экспертами, а также на реальных данных, если они доступны (например, с телеуправляемых роботов). Это, по сути, обучение по демонстрациям экспертов, используя либо трансформеры, либо диффузионные модели.

4. Инфраструктура: симулятор и визуализация, организация сбора и хранения данных, масштабированное обучение моделей и тестирование на реальных роботах.
👍42🫡1
Hugging Face представил LeRobot — передовые алгоритмы машинного обучения для робототехники на базе PyTorch. Цель проекта — снизить порог входа в робототехнику, чтобы больше людей могли внести свой вклад в эту область. Основной акцент сделан на обучение по демонстрациям и обучение с подкреплением. Репозиторий включает в себя предтренированные модели, датасеты, среды для обучения агентов, а также различные инструменты для реализации собственных моделей.

На данный момент реализованы три архитектуры: Action Chunking with Transformers (ACT) из статьи ALOHA, Diffusion Policy, и temporal difference MPC (TDMPC), один из лучших алгоритмов обучения с подкреплением на основе модели. В репозитории представлены примеры скачивания датасетов, оценки обученных моделей и их тренировки.

Если вы решите попробовать, не забудьте поделиться своими результатами в комментариях.
👍2🫡2
В этом посте я начал рассказывать про основы обучения с подкреплением (RL). Мы обсудили, что такое RL на основе модели и без модели, а методы для оптимизации контроллера/стратегии делятся на прямые и косвенные методы или методы на основе функции ценности. Сегодня хочу поделиться ссылкой на статью про последние, которую я написал для DeepSchool. Статья посвящена глубокому Q-обучению для игр, которое в свое время показало ценность и возможности RL.
🔥4
Forwarded from DeepSchool
Глубокое Q-обучение

В далеком 2016 году весь IT-мир заговорил об обучении с подкреплением — reinforcement learning, или RL. И неспроста: алгоритм глубокого Q-обучения научился играть в игры Atari на уровне людей-экспертов. С тех пор и проснулся большой интерес к обучению с подкреплением. Многие идеи, которые используются в глубоком Q-обучении, применяются также в современных алгоритмах.

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

Читайте новую статью по ссылке: https://www.notion.so/deepschool-pro/Q-1ed7a65cc3d24a70928275bf0406296a?pvs=4
👏5
Для повторения успехов больших языковых моделей в робототехнике нам прежде всего не хватает данных, особенно данных, собранных на реальных роботах. На сегодняшний день самым популярным способом сбора таких данных является телеоперация. Однако этот метод дорогостоящий и требует людей с навыками телеоперации. Альтернативным способом является использование ручных грипперов с камерой. Хотя этот метод более масштабируем, у него есть свои недостатки:

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

Универсальный интерфейс для манипуляции решает все эти проблемы и на практике показывает отличные результаты и большой потенциал использования таких устройств. Вот как он решает вышеперечисленные проблемы:

- Используем fisheye-камеру (например, GoPro), чтобы увеличить поле обзора и визуальный контекст.
- Добавляем зеркала в гриппер для улучшения оценки глубины.
- Используем IMU для более точной оценки действий.
- Вместо действий в виде "открыт/закрыт" используем непрерывное управление (ширину открытия гриппера).
- Фильтруем данные для отдельных конечных роботов на основе кинематики.

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

Для каждого нового навыка собирали 250-300 демонстраций. И, конечно же, на робота устанавливали абсолютно такой же гриппер, как и для сбора данных. Гриппер можно сделать самому, все детали доступны.

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

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

Некоторые из демонстраций добавлю к комменты. На сайте проекта много демонтсраций.
💯41🫡1
Сегодня вкратце расскажу про лекцию Шуран Сонг: "Приобретение навыков роботами" (Robot Skill Acquisition).

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

Для сбора данных есть два подхода: симуляция и реальные данные. В симуляции можно собрать много данных, которые легко могут быть использованы другими группами. Создание симуляций для желаемого робота и сенсоров может быть времязатратным. Однако сейчас прикладывается много усилий для автоматизации процесса создания задач и функций вознаграждений в симуляции с помощью больших языковых моделей. Другая проблема использования симуляции — это разрыв между симуляцией и реальным миром (sim2real gap). Улучшив эти две проблемы, мы сможем сделать большой шаг в сторону RobotGPT.

Для сбора реальных данных существует три способа: телеоперация в лаборатории, ручные грипперы и интернет-видео людей от первого лица. Первый вариант не сильно масштабируемый, хотя многие им сейчас пользуются (Tesla, TRI, 1X Technologies и другие). Последний способ самый масштабируемый, но пока мы не научились эффективно использовать его в робототехнике. Ручные грипперы, а точнее разработанный ими универсальный интерфейс для манипуляции (о котором я рассказ вчера), являются промежуточным решением.

Вообще, у Шуран Сонг крутая исследовательская группа. Рекомендую зайти на её сайт, чтобы узнать больше о последних работах и достижениях её команды.
2👍2🫡2
Как обучить робота новым задачам, используя существующие робототехнические датасеты? Этим вопросом занимаются авторы этой статьи.

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

1. Сбор демонстраций: Собираем небольшое количество демонстраций (50-100) для задачи, которой хотим научить робота, включая преднамеренные ошибки (около 20).

2. Предобучение контроллера: Используем большой существующий датасет вместе с новыми данными и обучаем контроллер с помощью оффлайн RL. Оффлайн RL обучает не только контроллер (актера), но и Q-функцию (критика).

3. Функция вознаграждения: Используем vision-language модель (VLM) в качестве функции вознаграждения для RL. Стандартная VLM работает не идеально, поэтому её нужно дообучить на собранных данных (пункт 1).

4. Обучение с подкреплением: Запускаем RL, который с минимальным человеческим вмешательством обучает робота выполнять поставленную задачу.

Эта проблема действительно актуальна. С ростом числа робототехнических датасетов возникает вопрос как использовать их для конкретных задач. Статья предлагает первые шаги и инструменты для дообучения, но есть куда расти. Например, 50-100 демонстраций звучит очень много.
3🍌2
Разбираем нашумевшую статью про дизайн вознаграждений в обучении с подкреплением с помощью больших языковых моделей

Многие работы в RL валидируют свои алгоритмы и методы в существующих средах (environments), которые принимают на вход действия и возвращают следующее состояние среды и вознаграждение. Функции вознаграждения этих сред были вручную спроектированы на основе понимания задачи и экспертизы разработчиков. Они также были протестированы, чтобы убедиться, что максимизация вознаграждения действительно приводит к выполнению поставленной задачи. Но если вы когда-нибудь пытались разработать свою среду или выбрать веса классических регуляторов типа LQR, то вы понимаете, как это сложно.

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

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

2. Эволюционный поиск: Вместо одной, просим LLM сгенерировать n (16 в статье) функций вознаграждений. Чем больше n, тем больше вероятность, что код будет без багов. На следующем шаге Eureka берёт лучшую функцию вознаграждения (выбранную на основе функции приспособленности, заданной человеком) и мутирует её, чтобы сгенерировать n новых функций вознаграждений.

3. Рефлексия вознаграждений: В качестве обратной связи для мутации, Eureka передаёт LLM короткое описание того, насколько хорошо RL-алгоритм оптимизирует каждую компоненту функции вознаграждения.

В результате получаем алгоритм, который превосходит людей в качестве проектирования функций вознаграждений. Более того, с каждой итерацией Eureka улучшает эти функции. Оцените результаты метода сами (по видео), но имейте в виду, что самое впечатляющее демонстрационное видео, где робот крутит ручку, было получено с помощью curriculum learning!

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

Аргументы за

1. Успехи в других областях: Это сработало в компьютерном зрении и обработке языка, почему же не должно сработать в робототехнике? Некоторые недавние работы поддерживают этот аргумент, например, RT-2 и RT-X от Google, или Diffusion Policy.
2. Сложные задачи на простом многообразии: Многие задачи робототехники лежат на достаточно простом многообразии. Тренируя большие модели, мы можем найти это многообразие. Проще говоря, этот аргумент утверждает, что кажущиеся на первый взгляд разнообразные задачи на самом деле очень похожи в некотором низкоразмерном пространстве.
3. "Здравый смысл" у роботов: Большие модели могут дать роботам "здравый смысл", позволяя им понимать общие принципы того, как работает мир.

Аргументы против

1. Недостаток данных: На данный момент у нас нет большого количества робототехнических данных и нет ясного понимания, как их собирать. Несмотря на недавние инициативы по сбору данных, их всё ещё очень мало по сравнению с датасетами в компьютерном зрении и языковых моделях.
2. Различные воплощения роботов: У роботов разные воплощения. Сигналы управления для роборуки и ходячего робота абсолютно разные. Нам нужно либо найти какое-то абстрактное пространство с общими сигналами управления, либо собирать данные для всех возможных типов роботов.
3. Многообразие сред: Количество сред и условий, в которых мы хотим использовать роботов, бесконечно. Мы хотим, чтобы роботы могли работать в обычных домах с любой планировкой, на заводах, на улице, в любую погоду. Сбор данных для каждой из этих сред потребует огромных усилий.
4. Высокие затраты на обучение: Тренировка моделей может быть слишком дорогой или энергозатратной. Говорят, что тренировка GPT-4V стоила более 100 млн долларов; в робототехнике нам могут понадобиться ещё более мощные модели.
5. Текущие ограничения в точности: Многие методы обучения не могут быть сейчас использованы, потому что доля их успешных попыток не превышает 80%, а для продакшн-решений нужна точность 99.Х %. Даже текущие модели в компьютерном зрении и обработке языка не могут обеспечить такую точность.
6. Неудачный пример автономного транспорта: Автономный транспорт попробовал обучение, но всё ещё не решил все свои проблемы.
7. Долгосрочное планирование: Многие задачи в робототехнике требуют долгосрочного планирования, например, заваривание чая. Маленькие ошибки могут накапливаться и приводить к нежелаемым результатам.

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

Вы что думаете по поводу масшатибирования обучения в робототехнике?
🍌7🔥2
Друзья, хочу поделиться важной новостью в моей карьере. Сегодня я начал стажировку в роли Applied Scientist в Amazon Robotics в Берлине. В течение следующих шести месяцев буду работать над обучением роботов для решения задач в e-commerce.

В конце прошлого года я подавался во множество компаний, и в итоге со мной связались только Amazon и Mitsubishi Electric Research. Лишь Amazon прислал оффер. Процесс отбора включал решение двух несложных задач на программирование за 50 минут и очное собеседование с членом команды.

Через несколько месяцев поделюсь опытом работы в Amazon и успехами в обучении роботов.
🔥13🍌43
Разрабатывать функции вознаграждения сложно! Существует целое направление, занимающееся разработкой алгоритмов для обучения функций вознаграждения на основе данных: обратное обучение с подкреплением или обратное оптимальное управление.

Рассмотрим простой случай. Пусть мы хотим обучить робота класть книгу со стола на книжную полку. Если мы покажем роботу несколько положительных примеров, когда книга на полке, и несколько негативных примеров, когда книга где угодно, но не на полке, то можем натренировать бинарный классификатор. Этот классификатор, на основе текущего состояния среды (изображения с камеры и состояния самого робота), будет возвращать вознаграждение 1, если робот справился с задачей, и 0, если нет. Первый минус у этого подхода: вознаграждение разреженное, из-за чего дальнейшее обучение робота на основе такой функции вознаграждений будет очень долгим. Второй минус: робот может эксплуатировать классификатор.

Другой подход — использование предпочтений человека, где классификатором по сути является человек. Это работает так: показываем оператору несколько примеров и просим выбрать лучший. Используем предпочтения человека, чтобы обучить функцию вознаграждения. Кстати, именно этот метод использовали для fine-tuning ChatGPT.

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

Каждый из этих подходов имеет свои плюсы и минусы. Обучение функций вознаграждений — сложная задача, и разные методы могут быть более или менее эффективны в зависимости от конкретного применения.
🍌51👍1
Помимо университетских лабораторий, несколько стартапов активно работают над решением задачи воплощенного интеллекта (embodied intelligence). Один из таких стартапов — 1x Technologies, недавно привлекший 100 млн долларов инвестиций.

Что делает их уникальными? Всё дело в железе и софте! Они разработали собственные мощные двигатели с высоким соотношением выходного момента к весу (обычно двигатели с такими параметрами очень громоздкие). А их эффективные трансмиссии, основанные на кабелях, выводят производительность на новый уровень.

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

Хотите увидеть их роботов в действии? Посмотрите прикрепленное видео. Да, человек мог бы выполнить задачу быстрее, но достижения 1x Technologies всё равно
🔥4🍌21
Существует множество соревнований по классическому и глубокому машинному обучению. Например, на платформе Kaggle сейчас активно около 10 соревнований, где победители получают денежные призы. Помимо призов, участие в таких соревнованиях приносит престиж и признание в сообществе.

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

В этом году на другой крупной конференции, IROS, будет проходить соревнование по робототехнической акробатике. Цель — создать контроллер для swing-up двух underactuated платформ: акробота и пендубота. Обе платформы достаточно простые: 2 степени свободы и только один мотор. Организаторы предоставляют симулятор, в котором можно спроектировать и отладить свой контроллер. Команды, показавшие лучшие результаты в симуляции, получат доступ к реальному оборудованию и смогут протестировать свои контроллеры на железе.

Считаю, что это отличная возможность спроектировать свой любимый контроллер и сравнить его с лучшими решениями других участников. В комментариях пример swing-up акробота.
4👍3🍌3
Управление на основе прогнозирующих моделей (Model Predictive Control, MPC) — это продвинутая техника управления, использующая модель системы (например, динамику робота) и методы численной оптимизации для выбора действий, направляющих систему к желаемому поведению.

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

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

В зависимости от конкретной задачи оба метода могут давать отличные результаты. Однако, если ваша модель неточная, то ни один из них вас не спасет.
🔥2🌭2🍓2🍾1
На этой неделе появилось несколько впечатляющих видео по гуманоидным роботам. Одна из причин, помимо их доступности, почему исследования в этой области так интенсивны, — схожесть этих роботов с человеком. Благодаря этому можно использовать естественные демонстрации человека и проецировать их на робота. В будущем, возможно, будет использоваться видео из интернета, снятое от первого лица!

Сегодня предлагаю полюбоваться достижениями ученых из Carnegie Mellon University. Они применяют все современные решения в области обучения с подкреплением, обучения по демонстрациям и оценке положения тела человека, чтобы добиться таких впечатляющих результатов.

сайт проекта
🔥7🐳1🌭1
Похожий проект вышел вышел от группы Челси Финн из Стенфорда. По сравнению с работой из предыдущего поста, здесь используют только обучение по демонстрациям с использование трансформерной архитектуры.

сайт проекта
🍓4🌭31🤓1👻1
Наверняка многие из вас видели крутые видео с Атласом, где он выполняет сальто, прыгает по коробкам и т.д. За всеми этими результатами стоит управление на основе прогнозирующих моделей. На практике эти контроллеры часто могут быть слишком медленными для работы в реальном времени. Однако, существует множество способов их ускорить, и вот несколько из них:

1️⃣ Используйте интегратор с постоянным шагом вместо переменного. Часто хорошо работает интегратор Рунге-Кутты 4-го порядка. Также можно попробовать явный метод Эйлера, иногда его точности достаточно.

2️⃣ Для транскрипции (перехода от математической формулировки к нелинейной программе) используйте метод множественной стрельбы (параллельный интегратор) вместо одиночной стрельбы (последовательный интегратор).

3️⃣ Упорядочивайте переменные решения грамотно, чтобы создать разреженные якобиан и гессиан.

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

5️⃣ Используйте приближенный гессиан вместо точного. Часто хорошо работает приближение Гаусса-Ньютона.
🍓4🌭2👍1🔥1
Существует похожая работа из академии, где подробно объясняют, как им удалось натренировать такой контроллер.
🍓3🔥2🌭1