Исследование демонстрирует концепцию использования возможностей больших языковых моделей (БЯМ, (large language model (LLM)) для взаимодействия человека и робота под управлением ROS.
ROSGPT — это пакет для ROS2, который интегрирует ChatGPT с роботизированными системами на базе ROS2. Основная идея проекта заключается в использовании уникальных свойств LLM, которые позволяют при помощи правильных инструкций (prompt) и разработки онтологий преобразовывать неструктурированные команды на естественном языке в структурированные инструкции для робота.
В данной работе автор выбрал ответ в формате JSON.
Для «настройки» LLM используется техника Few-shot-learning (FSL), которая состоит в том, что в начальной инструкции для LLM приводятся примеры запросов и требуемых ответов.
Вот какую инструкцию для ChatGPT («gpt-3.5-turbo») выбрал автор:
# Create the GPT-3 prompt with example inputs and desired outputs prompt = '''Consider the following ontology: {"action": "go_to_goal", "params": {"location": {"type": "str", "value": location}}} {"action": "move", "params": {"linear_speed": linear_speed, "distance": distance, "is_forward": is_forward}} {"action": "rotate", "params": {"angular_velocity": angular_velocity, "angle": angle, "is_clockwise": is_clockwise}} You will be given human language prompts, and you need to return a JSON conformant to the ontology. Any action not in the ontology must be ignored. Here are some examples. prompt: "Move forward for 1 meter at a speed of 0.5 meters per second." returns: {"action": "move", "params": {"linear_speed": 0.5, "distance": 1, "is_forward": true, "unit": "meter"}} prompt: "Rotate 60 degree in clockwise direction at 10 degrees per second and make pizza." returns: {"action": "rotate", "params": {"angular_velocity": 10, "angle": 60, "is_clockwise": true, "unit": "degrees"}} prompt: "go to the bedroom, rotate 60 degrees and move 1 meter then stop" returns: {"action": "sequence", "params": [{"action": "go_to_goal", "params": {"location": {"type": "str", "value": "bedroom"}}}, {"action": "rotate", "params": {"angular_velocity": 30, "angle": 60, "is_clockwise": false, "unit": "degrees"}}, {"action": "move", "params": {"linear_speed": 1, "distance": 1, "is_forward": true, "unit": "meter"}}, {"action": "stop"}]} ''' prompt = prompt+'\nprompt: '+text_command
Сама концепция использования LLM для подобного взаимодействия человека и робота на естественном языке — очень интересна и может быть легко адаптирована к различным роботам и задачам.
Схожую работу уже демонстрировали исследователи из Microsoft, где они показали как можно использовать ChatGPT для управления роботами при помощи естественных языковых команд.
Статьи
Ссылки
По теме
- Microsoft предложила использовать ChatGPT для управления роботами
- PaLM-E — мультимодальная языковая модель для управления роботами
- PaLM-SayCan — метод с помощью которого Google обучила роботов Everyday Robots реагировать на сложные запросы
- В Google использовали генеративные модели для автоматического программирования роботов на Python
- SayCan — метод использования языковых моделей для управления действиями робота
- ROS — Robot Operating System
- Что же такое ROS?