Исследование демонстрирует концепцию использования возможностей больших языковых моделей (БЯМ, (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?
