TidyBot — персонализированный робот-помощник на основе больших языковых моделей


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

Статьи

  1. TidyBot: Personalized Robot Assistance with Large Language Models

Ссылки

По теме


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение