Мультиагентные системы
AI, life and balanceДа, я уже писала пост про агентов и мультиагентные системы. И да, буквально предыдущий пост тут был посвящен инструменту для работы с агентами и мультиагентными системами.
Нет, я не собираюсь на этом заканчивать. Сегодня будет еще один пост.

На сей раз мы немного отойдем от инструментов и практического применения и окунемся в интересную обзорную статью «Large Language Model based Multi-Agents: A Survey of Progress and Challenges», опубликованную в январе текущего года. К статье прилагается открытый репозиторий с кодом на гитхабе.
Статья преимущественно концентрируется на больших языковых моделях (но мы с вами знаем, что агенты могут использовать любые модели).
Для начала, авторы проделали большую работу, собрав и систематизировав публикации, посвященные агентам (на основе больших языковых моделей) и вышедшие в 2023 году.

Во-первых, здесь выделено пять групп исследований:
- фреймворки (это инструменты для разработчиков, которые помогают создавать собственный программный продукт, используя готовый набор правил и компонентов, которые нужно только подстроить под себя, а не создавать с нуля);
- решение проблем;
- симуляции (моделирование нашего реального мира);
- исследования на тему приобретения агентами новых способностей;
- наборы данных и задачи для тестирования.
Разными цветами выделены области применения. Например, светло-зеленый – игры и робототехника, желтый – научные споры и экономика, серый – научные эксперименты и так далее.
В качестве ключевых аспектов авторы рассматривают интерфейс для взаимодействия с окружающей средой, профили агентов, систему коммуникации между агентами и способность агентов получать новые навыки.

Для иллюстрации того, как работает интерфейс, в пример приводится игра Werewolf Game (насколько я понимаю, это что-то вроде мафии, только вместо мафии оборотни).
На всякий случай, вот краткое описание правил: игроки делятся на мафию и мирных жителей случайным образом (тянут жребий). Ход игры контролирует ведущий. Когда он объявляет ночь («Город засыпает»), игроки-мирные жители закрывают глаза, а те, кто вытянул карту мафии, открывают. Молча, не привлекая внимания, они выбирают одну жертву из числа мирных горожан и указывают на нее ведущему. Затем все закрывают глаза, ведущий объявляет утро и сообщает игрокам, кто был «убит» и выбыл из игры. Затем все (кроме убитых) обсуждают, кто мог бы быть мафией, и голосованием выбирают одного из игроков, который может на самом деле быть мафией или оказаться мирным жителем. Он также выбывает из игры. Через несколько шагов либо мафия «убивает» всех мирных жителей и побеждает, либо жители выявляют всю мафию. В более продвинутой версии есть прокурор, доктор и другие игроки со специфическими способностями. Эта игра требует навыков стратегического мышления и социального взаимодействия, поэтому очень интересно, что именно в нее решили научить играть агентов.
Как именно это сделали, описано в статье «Language Agents with Reinforcement Learning for Strategic Play in the Werewolf Game». Там ИИ-агенты обсуждают, голосуют, кооперируются и пытаются друг друга обмануть.

Представляете, как весело было проводить эксперименты? Авторы статьи про игру сделали сайт, посвященный своему исследованию и его результатам. Там играли и агенты между собой, и агенты с человеком, в общем, посмотрите.
Так вот, взаимодействие с окружающей средой происходит посредством обмена информацией: агенты получают роли от ведущего, они знают, какие у их ролей есть возможности и ограничения, принимают ответы от других агентов и так далее. Это все происходит через интерфейс.
Профили агентов – это определение их навыков, доступных действий и характерных черт. На примере игры в мафию: агент-мафия «просыпается» ночью, договаривается с другими мафиози, убивает мирного жителя, днем отводит от себя подозрения и старается выглядеть максимально невинно. Он также продумывает свои ходы наперед так, чтобы мирные жители его не заподозрили на основании того, кого он выбирает «убить».
Профили могут быть предопределены заранее (как в игре в мафию), сгенерированы моделью заранее (на основе поставленной задачи; здесь модель сама назначает роль, набор способностей и все остальное) или сгенерированы на основе имеющихся наборов данных (например, если у вас много кода, нужен агент-программист; или если у вас есть история предыдущего взаимодействия с клиентами, агент может быт создан с учетом их предыдущих потребностей и стилей общения).
Коммуникация осуществляется в кооперативном (агенты вместе решают задачу), дебативном (агенты спорят, приводят аргументы и критикуют предложения друг друга) и соревновательном (каждый решает свою задачу, задачи могут противоречить друг другу; как мафия и мирные жители в игре) стиле.
В большом посте на vc мы говорили о том, что коммуникация может быть построена иерархически, централизовано или децентрализовано. Агенты также могут публиковать свои сообщения в некое общее пространство и собирать сообщения других агентов, которые походят для решения их задачи. Эта идея была предложена авторами MetaGPT. Я про них потом напишу другой пост.

Способность получать новые навыки позволяет агентам развиваться и становиться точнее. Главный источник роста – обратная связь. Ее получают из окружающей среды, от других агентов или от человека. Чтобы использовать полученную обратную связь себе на пользу, агенты задействуют память и перестраивают свое поведение.
Сегодня я остановлюсь здесь, оставив в стороне практическое применение мультиагентных систем (оно изложено в статье, ссылку на которую я прикрепила выше, оставляю знакомство на ваше усмотрение).
Пока писала, запланировала еще несколько постов, в том числе с тестами инструментов :)