Исследователи из Microsoft показали как можно использовать мощь ChatGPT для интуитивного управления роботами при помощи естественных языковых команд. В качестве примера показано управление роботом-манипулятором, дроном и домашним роботом-помощником.
ChatGPT — это большая языковая модель (large language model (LLM)), обученная на огромном корпусе текстов и примерах диалогов, что позволяет ей генерировать связные и грамматически правильные ответы на широкий спектр вопросов.
Исследователи решили проверить — сможет ли ChatGPT помочь с задачами управления роботами. Цель исследования — упростить людям взаимодействие с роботами, без необходимости изучения языков программирования и деталей работы робототехнических систем.
Как оказалось, модель ChatGPT уже достаточно мощная, чтобы помочь в этой задаче, но ей требуется правильно сформулировать контекст задачи: указать специальные структуры подсказок и высокоуровневого API.
Таким образом, вместо классического подхода когда инженер-робототехник переводит требования задачи в код для робототехнической системы, управляющей поведением робота — использование такой мощной языковой модели как ChatGPT открывает возможности для новой парадигмы взаимодействия пользователя и робототехнических систем.
Теперь пользователь не пишет код сам, а взаимодействует с большой языковой моделью, которая обеспечивает высокоуровневую обратную связь и сама генерирует код для управления роботом.
Исследователи показали, что, даже без какой-либо тонкой настройки, использование знаний LLM позволяет управлять роботами различных форм-факторов и задач (манипуляция объектами, полёт, навигация).
Принципы использования ChatGPT
- Определение набора функций и высокоуровневого API для взаимодействия с роботом. Эта библиотека специфична для каждого конкретного робота и должна реализовывать низкоуровневый стек управления роботом или получения его данных. Здесь очень важно использовать описательные имена для высокоуровневых API, чтобы ChatGPT мог рассуждать об их поведении;
- Необходимо сформулировать текстовое описание (prompt) для ChatGPT, которое описывает цель задачи, а также явно указывает, какие функции из высокоуровневой библиотеки доступны для решения. Описание также может содержать информацию об ограничениях задачи и указание как ChatGPT должен формировать свой ответ (конкретный язык кодирования, использование вспомогательных элементов);
- Пользователю остаётся оценить код, предложенный ChatGPT либо путём прямой проверки, либо при помощи симулятора. При необходимости, можно дать ChatGPT отзыв о качестве и безопасности предложенного ответа.
- Если решение удовлетворяет условиям пользователя, то предложенный код можно загружать в робота.
Примеры использования данного подхода для взаимодействия с ChatGPT можно посмотреть в репозитории на гитхабе — PromptCraft-Robotics.
Видео работы на роботах и симуляторах
Исследователи отмечают, что качество текстовых описаний (prompt) имеет решающее значение для успешного использования LLM, таких как ChatGPT, для решения задач робототехники.
В настоящее время, формулировка подобных описаний имеет чисто эмпирический подход, и пока ещё не сформулированы методы и способы, позволяющие уверенно достигать наилучших результатов — поэтому эксперименты лучше проводить в симуляторах.
далее: ROSGPT — демонстрация использования ChatGPT для управления роботом через ROS
Статьи
Ссылки
- ChatGPT for Robotics: Design Principles and Model Abilities
- PromptCraft-Robotics
- ChatGPT: Optimizing Language Models for Dialogue
По теме
- PaLM-SayCan — метод с помощью которого Google обучила роботов Everyday Robots реагировать на сложные запросы
- В Google использовали генеративные модели для автоматического программирования роботов на Python
- SayCan — метод использования языковых моделей для управления действиями робота
- Робософт — обзор существующих решений