Исследователи из Принстонского университета (США) представили TidyBot — проект персонализированного робота-помощника, который использует возможности больших языковых моделей (БЯМ, LLM) по суммаризации текстов (процесс вычленения сути (краткого содержания) текста) для вывода обобщенных пользовательских предпочтений.
Используемый подход обеспечивает быструю адаптацию и обеспечивает точность 91.2% на тестовых данных.
Суть исследования состоит в персонализации уборки дома с помощью персонального робота-уборщика, который оборудован манипулятором и способен убирать комнаты, поднимая и убирая предметы. Ключевой задачей является определение правильного места для размещения каждого предмета, в зависимости от предпочтений людей, которые могут варьироваться в зависимости от их личных вкусов. Например, один человек может предпочесть хранить рубашки в ящике стола, а другой — на полке.
Исследователи представили пример системы, которая может узнавать о пользовательских предпочтениях всего на нескольких примерах, посредством предшествующих взаимодействий с конкретным человеком.
Пользовательские примеры представляются в виде текстового списка объектов, присутствующих на месте уборки и списка возможных ёмкостей куда их можно убрать. Далее следует серия команд, которая показывает, где куда нужно поместить объекты в соответствии с предпочтениями пользователя. И затем, запрос к БЯМ для суммаризации предыдущего текста.
Пример завершения от БЯМ (использовался вариант GPT-3 — модель text-davinci-003 от OpenAI. Все эксперименты проводились с параметром temperature=0):
objects = ["yellow shirt", "dark purple shirt", "white socks", "black shirt"] receptacles = ["drawer", "closet"] pick_and_place("yellow shirt", "drawer") pick_and_place("dark purple shirt", "closet") pick_and_place("white socks", "drawer") pick_and_place("black shirt", "closet") # Summary: Put light-colored clothes in the drawer and dark-colored clothes in the closet.
В данном примере, БЯМ сделала обобщённый вывод (текст после слова Summary:), что светлая одежда помещается в ящик, а темная одежда — в шкаф.
Код для генерации:
import openai # openai_key = "sk-..." openai.api_key = os.getenv('OPENAI_API_KEY') prompt = """ objects = ["yellow shirt", "dark purple shirt", "white socks", "black shirt"] receptacles = ["drawer", "closet"] pick_and_place("yellow shirt", "drawer") pick_and_place("dark purple shirt", "closet") pick_and_place("white socks", "drawer") pick_and_place("black shirt", "closet") # Summary: """ response = openai.Completion.create( model="text-davinci-003", prompt=prompt, temperature=0, max_tokens=256, top_p=1, frequency_penalty=0, presence_penalty=0 ) print(response)
Система обнаружения объектов была построена на базе CLIP.
Код для робота выложен на гитхаб — https://github.com/jimmyyhwu/tidybot.
Статьи
Ссылки
По теме
- PaLM-E — мультимодальная языковая модель для управления роботами
- PaLM-SayCan — метод с помощью которого Google обучила роботов Everyday Robots реагировать на сложные запросы
- В Google использовали генеративные модели для автоматического программирования роботов на Python
- Microsoft предложила использовать ChatGPT для управления роботами
- ROSGPT — демонстрация использования ChatGPT для управления роботом через ROS