Исследователи из Принстонского университета (США) представили 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
