УДК 004

Ключевые компоненты интеллектуальных агентов, разрабатываемых на базе больших языковых моделей

Барков Дмитрий Анатольевич – студент магистратуры Научно-исследовательской лаборатории искусственного интеллекта Поволжского государственного университета телекоммуникаций и информатики

Аннотация: Интеллектуальные агенты, созданные с применением классических алгоритмов, обладали ограниченной способностью к обучению и адаптации, что сильно сужало область их применения. Появление больших языковых моделей, обученных для обработки естественного языка, позволило решить эту проблему. Большие языковые модели активно развиваются, более совершенные варианты появляются регулярно. Одновременно с этим исследуется потенциал уже существующих моделей с точки зрения их применения в интеллектуальных агентах. Этот потенциал еще далек от раскрытия, однако многие слабые стороны моделей видны уже сейчас. Исследователи предпринимают различные попытки решить эти проблемы за счет использования внешних алгоритмов и инструментов, попутно разрабатывая агентов, обладающих способностями, описываемыми ранее лишь в теории. В статье приведен краткий обзор исследований, затрагивающих такие направления, как управление ролями, механизмы памяти, рефлексия, алгоритмы рассуждения и планирования, интеграция внешних инструментов и мультиагентные системы.

Ключевые слова: интеллектуальные агенты, языковые модели.

Введение

Интеллектуальный агент представляет из себя систему, способную выполнять задачи в интересах пользователя с определенной степенью автономности. На концептуальном уровне агенты состоят из сенсоров, через которые они воспринимают информацию и актуаторов, с помощью которых они могут выполнять действия. Сложность агентов может варьироваться от простых программ или ботов до автономно действующих роботов, способных накапливать опыт.

До недавнего времени возможности интеллектуальных агентов были сильно ограничены. Как правило, агенты были очень узкоспециализированными и могли выполнять конечный объем задач, поскольку не существовало возможности реализовать достаточно гибкий механизм адаптации. Появление больших языковых моделей (БЯМ) в корне изменило эту ситуацию.

БЯМ представляют собой нейронные сети, ориентированные на генерацию текста и использующие архитектуру Transformer [1]. Для обучения этих моделей используются огромные объемы текстовых данных. В результате такие модели демонстрируют выдающиеся способности к обработке и пониманию естественного языка, переводу текстов с одного языка на другой, а также к решению сложных задач вроде обобщения информации и заключения выводов на ее основе. Выполнение подобных задач с такой эффективностью ранее было невозможно.

Такие возможности выдвинули БЯМ на позицию универсального инструмента для работы с информацией, способного как выполнять, так и генерировать логику, что в свою очередь может позволить расширить возможности интеллектуальных агентов и позволить им достигнуть уровня, описываемого ранее только в теории. Однако, несмотря на то, что направление БЯМ крайне бурно развивается, их текущие возможности все еще существенно ограничены. К проблемам относятся большие требования к вычислительной мощности, ограничение размера контекстного окна, проблема поддержания актуальности данных и другие.

Исследователи, работающие в направлении разработки интеллектуальных агентов на основе БЯМ предлагают различные способы решения обозначенных проблем, которые в том числе включают в себя расширение возможностей моделей за счет внешних алгоритмов и инструментов. Основные направления исследований включают реализацию управления ролями, механизмов памяти, способностей к рефлексии, алгоритмов рассуждения и планирования, интеграции дополнительных инструментов, а также разработки мультиагентных систем.

В данной статье представлен обзор популярных исследований в рамках перечисленных направлений, демонстрирующих последние достижения в области создания интеллектуальных агентов на базе БЯМ.

Определение роли агента

Роль или профиль являются основным способом описания требований к поведению БЯМ. В процессе обучения модели извлекают зависимости из получаемой информации, находя закономерности и выстраивая связи. Способность модели мыслить заданным образом и обрабатывать информацию определенным образом зависит от таких связей. Кроме того, обучающая информация сама по себе в своем исходном виде возникает в результате деятельности человека (диалоги, исследования, документация, литературные произведения), существующего в реальном мире и неизбежно исполняющего ту или иную роль. Это делает роль естественным способом классификации информации о поведении и задачах.

Профиль, как правило, указывается в рамках запроса, передаваемого модели и может включать в себя как базовую информацию (пол, возраст), так и более продвинутую (навыки, психологический портрет, личностные характеристики). Кроме того, профиль может описывать взаимоотношения агента с окружающим миром, в том числе с другими агентами.

Проекты MetaGPT [2], ChatDev [3] и Self-collaboration [4] решают задачи разработки программного обеспечения с помощью агентов, основанных на БЯМ.

В системе MetaGPT авторы достигают эффективного сотрудничества между агентами за счет использования стандартизированных операционных процедур (SOP). Агенты исполняют специализированные роли, такие как продукт менеджер и инженер. В Self-collaboration БЯМ исполняет роли аналитика, разработчика и тестировщика, описываемые через инструкции, включающие в себя описание обязанностей и способы взаимодействия с другими ролями. ChatDev разделяет процесс разработки на этапы, такие как дизайн и кодирование, так же четко определяя роли для каждого этапа. В качестве примера демонстрируется взаимодействие агентов с ролями технического директора и программиста на этапе кодирования для написания и улучшения кода.

Память

По своей природе БЯМ статичны и информация, на основе которой они выполняют вычисления не может быть как-либо изменена без применения дополнительного обучения. Обучение модели представляет собой отдельный сложный и ресурсоемкий процесс, поэтому на данный момент его относят скорее к подготовительному этапу, чем к этапу непосредственного функционирования агента.

Одной из ключевых черт агента, согласно теории, является способность действовать рационально, что обуславливает необходимость усваивания опыта, что в свою очередь невозможно без способности усваивать новую информацию. БЯМ на текущем уровне сами по себе не обладают механизмом памяти, достаточным для исполнения сложных задач. Роль памяти в них играет размер контекстного окна, то есть размера строки, передаваемой модели в качестве запроса.

Соответственно исследователи предпринимают попытки реализовать внешний механизм памяти и интегрировать его с БЯМ в рамках реализации агента. Создание такого механизма подразумевает написание общих алгоритмов, определение формата хранимых данных и выбор типа хранилища в принципе.

В проекте CALYPSO [5] авторы разработали агента, помогающего ведущим игры Dungeons & Dragons развивать повествование. Роль памяти в этом агенте исполняют обрабатываемые им описания сцен, которые включают в себя результаты предыдущих действий, информацию об окружении и игроках.

GITM [6] описывает создание интеллектуальных агентов для игры Minecraft, способных выполнять сложные задачи в открытом мире. Механизм долгосрочной памяти в этом подходе позволяет агентам сохранять и извлекать информацию о решенных задачах, что улучшает их способность решать похожие задачи в будущем. Эта память основана на текстовых данных, что обеспечивает прямое применение полученных знаний к широкому спектру задач и улучшает обучаемость и обобщающую способность агентов.

Система памяти Self-Controlled Memory (SCM) [7] подчеркивает возможность обрабатывать входные данные неограниченной длины и представляет концепты контроллера памяти и потока памяти. Агент обрабатывает входную информацию и сохраняет ее в долгосрочную память с помощью потока памяти, после чего контроллер определяет, какие воспоминания являются наиболее релевантными в текущей ситуации и добавляет их во входные данные модели, играющие роль краткосрочной памяти.

Чатбот SiliconFriend [8] использует систему MemoryBank для улучшения персонализации за счет более глубокого понимания пользователей. Система использует постоянно обновляющуюся долгосрочную память, храня в ней историю взаимодействий, что позволяет лучше адаптироваться к конкретным персонам. Механизм обновления памяти основан на теории кривой забывания Эббингауза, в результате чего со временем часть воспоминаний забывается, а часть – укрепляется в зависимости от степени их значимости. При этом сегменты памяти хранятся в виде векторов.

В ChatDB [9] в качестве долгосрочного хранилища памяти используется база данных SQL, при этом БЯМ взаимодействует с базой данных напрямую с помощью SQL-запросов, что позволяет структурированно хранить данные и эффективно манипулировать ими.

Система D-Bot [10] так же работает с базами данных, но уже исполняя роль администратора. D-Bot способна самостоятельно извлекать знания из текстовых документов с целью извлечения опыта по обслуживанию и администрированию БД и в дальнейшем предоставлять на их основе обоснованные рекомендации по диагностике и оптимизации. В этом случае агент так же взаимодействует с базой данных с помощью SQL-команд.

Механизм памяти в RET-LLM [11] использует семантику Дэвидсона, формируя информацию в виде троек субъект-отношение-обьект, и сохраняя ее в памяти вместе с ее векторными представлениями. Такая память является обновляемой, агрегируемой, интерпретируемой и масштабируемой. При поиске информации система сначала осуществляет поиск по запросу с точным совпадением, а затем, при необходимости, проводит нечеткий поиск на основе векторных представлений.

Рефлексия

В контексте интеллектуальных агентов рефлексия по аналогии с людьми отражает способность системы анализировать информацию как о самой себе, так и об окружающем мире, что необходимо для накопления опыта, то есть реализации способности к обучению.

С точки зрения анализа информации рефлексию можно описать как способность обобщать и делать выводы. Другим важным аспектом является способность к самосознанию, которая напрямую связана с рефлексией. Самосознание позволяет агентам оценивать собственные действия и принимать решения с учетом такой оценки. Некоторые задачи, вроде сложного социального взаимодействия в принципе невозможно решить без способности к самосознанию.

Reflexion [12] демонстрирует способ обучения агентов, не требующий обновления весов модели и использующий вместо этого обратную связь от окружающей среды в виде текстового резюме, которое добавляется в общий контекст при следующей итерации работы агента. Архитектура включает в себя три компонента: 1) Actor, выполняющий рассуждения и генерирующий действия на их основе; 2) Evaluator, оценивающий качество генерируемых выходных данных; 3) Self-Reflection, генерирующий текст с упомянутой обратной связью.

ExpeL [13] развивает идеи Reflexion, создавая агента, обучающегося методом проб и ошибок и накапливающего опыт взаимодействия с окружающей средой, храня данные в виде текста на естественном языке. В ходе свой работы агент анализирует неудачные попытки и сравнивает их с успешными, выделяя ключевые моменты, приводящие к успеху или неудаче.

Рассуждение, планирование, принятие решений

Рассуждение можно охарактеризовать как основной внутренний процесс, в рамках которого происходит обработка информации, формирование выводов и планирование действий. Рассуждая, агент может:

  • интерпретировать контекст задачи, анализируя входные данные и используя свои знания, полученные в ходе обучения;
  • применять логические принципы для обработки информации, выявляя причинно-следственные связи, выстраивая аргументы и выдвигая гипотезы;
  • генерировать новые идеи или подходы, основываясь на комбинации существующих данных и креативном мышлении;
  • оценивать информацию критически, выявляя противоречия и недостатки в аргументации;
  • формировать последовательный план действий, относительного которого может строиться его деятельность в рамках выполнения задачи;

Важно отметить, что способности к рассуждению у самих БЯМ ограничены их обучающими данными и алгоритмами. Они не обладают собственным сознанием или пониманием, а их “рассуждения” основаны на статистической обработке языка и данных. В результате, хотя они и могут создавать впечатление понимания и логического мышления, их выводы и решения всегда зависят от качества и объёма обучающих данных, на которых они были обучены.

Проекты Chain of Thought (CoT) [14], Self-consistent CoT [15], Tree of Thoughts (ToT) [16], Graph of Thoughts (GoT) [17] предлагают разные варианты построения многоэтапного процесса рассуждения, где на каждом этапе формируется “мысль”, соответствующая промежуточному шагу на пути к решению задачи. CoT выстраивает промежуточные “мысли” в форме цепочек. Self-consistent CoT так же использует цепочки, но при этом генерирует несколько их вариантов и выбирает наиболее популярный. ToT строит “мысли” в форме дерева. GoT выстраивает граф, в котором вершины являются “мыслями”, а ребра отражают связи между ними. Такие подходы позволяют агентам декомпозировать сложные проблемы, обеспечивая более глубокое понимание задачи.

CAPE [18] предлагает подход к планированию действий агентов, направленный на исправление ошибок до их совершения. Это достигается за счет анализа рассуждений на каждом этапе на предмет их соответствия заданным требованиям. В случае, если соответствия нет, генерируется корректирующая информация, после чего план генерируется повторно.

RecMind [19] демонстрирует агента, созданного для персонализированных рекомендаций и применяющего алгоритм "Self-Inspiring", улучшающий способности к планированию в сравнении с CoT и ToT благодаря учету ранее принятых решений, хранимых в памяти при генерации следующего шага.

ReAct [20] предлагает метод, объединяющий рассуждения и действия за счет оперирования информацией в виде троек thought-act-observation (мысль-действие-наблюдение). Thought (мысль) используется для высокоуровневого рассуждения и планирования действий; action (действие) отражает конкретное действие, предпринятое агентом; observation (наблюдение) отражает результаты предпринятого действия, полученные из обратной связи от окружающей среды. Таким образом при формировании новой мысли учитываются ранее совершенные наблюдения, что повышает способности агента к адаптации.

В Inner Monologue [21] воплощенный агент ведет внутренний монолог, корректируя план действий, основываясь на нескольких видах обратной связи, включающей в себя факт выполнения цели, самостоятельно сгенерированное описание окружающей среды и информацию, полученную от оператора.

Выполнение действий

Способность агента выполнять действия фактически подразумевается его определением. В рамках статьи внимания заслуживает выполнение действий с внутренней точки зрения, которое так же определяется возможностями самих БЯМ. Технически БЯМ обладают способностью генерировать текст в ответ на полученный запрос и в некоторых случаях формат текстового ответа является достаточным для агента, например в диалоговых системах. В более сложных вариантах действия должны быть преобразованы в инструкции, которые могут быть исполнены другими компонентами системы.

Поскольку с точки зрения науки о данных речь идет об информационной системе, разумно интерпретировать вопрос в ключе программных интерфейсов. Исходя из этого, в рамках агента БЯМ генерирует информацию о необходимых действиях, которая далее передается в другие компоненты через API. Соответственно роль и функционал могут быть любыми, от хранения и обработки данных до манипуляции робототехникой и задача сводится к решению проблем, связанных с интеграцией.

В проекте WebGPT [22] представлен агент на базе БЯМ, специально дообученной для эффективного использования браузера с целью поиска информации в сети. В качестве поисковой системы используется Microsoft Bing Web Search.

Модель Gorilla [23] была дообучена с упором на грамотное использование API, которое включает в себя не только правильное формирование запросов, но и адаптацию к изменениям таких API за счет анализа документации.

HuggingGPT [24] так же представляет агента, использующего другие модели в качестве инструментов. Полученная задача декомпозируется, после чего происходит подбор доступных на платформе моделей на основе их текстового описания. Выбранные модели выполняют переданные им подзадачи, после чего ChatGPT генерирует финальный ответ на основе полученных данных. Такая система способна автономно выполнять сложные задачи, используя возможности множества специализированных моделей.

Агент ViperGPT [25] способен выполнять задачи, в описании которых присутствует мультимедийная информация. Для обработки такой информации используются внешние модели, специализирующиеся на компьютерном зрении. Процесс выполнения задач управляется подпрограммами, написанными на языке Python и генерируемыми агентом автоматически так же с помощью внешней модели Codex.

ChemCrow [26] представляет собой агента, исполняющего роль научного ассистента, способного проводить химические эксперименты. Агент интегрирован с целым рядом инструментов, в состав которых входит специализированные научные модели. Для проведения экспериментов используется роботизированная платформа RoboRXN. Полученная система способна адаптировать процедуры синтеза веществ, корректируя их в соответствии с результатами ранее выполненных действий, действуя при этом полностью автономно.

Мультиагентные системы

Рассмотренные ранее темы относятся к внутреннему устройству агента и описывают логику его работы. Мультиагентные системы являются отдельным направлением, которое подразумевает использование нескольких взаимодействующих агентов для решения общих задач. Полноценная мультиагентная система позволяет входящим в нее агентам функционировать независимо от других.

По аналогии с человеческим обществом, такой подход в целом позволяет решать комплексные задачи более эффективно по ряду причин, примерами которых могут служить возможность отдельных агентов к специализации на конкретных проблемах или видах деятельности, а также повышение отказоустойчивости системы в целом. Разумеется, определяющим фактором таких систем будет являться качество коммуникации между агентами.

Generative Agents [27] демонстрирует систему, представляющую собой симуляцию, в рамках который агенты взаимодействуют друг с другом и с окружающей средой, имитируя поведение реальных людей. Взаимодействие между агентами происходит с помощью естественного языка. Архитектура таких агентов включает в себя механизм долгосрочной памяти, а также рефлексию. Исследование подчеркивает способность агентов к планированию, реакции на изменения в окружающей среде и взаимодействию друг с другом на основе естественного языка. Кроме того, подчеркивается значимость сотрудничества между агентами, которое не было заранее запрограммировано, но было достигнуто в ходе их натурального взаимодействия.

Проект AgentVerse [28] так же представляет собой мультиагентную систему, имитирующую процессы решения задач группами людей. Процесс работы такой системы состоит из четырех общих этапов:

  • Набор экспертов для конкретных задач;
  • Совместное принятие решений;
  • Выполнение действий;
  • Оценка результатов.

Описываются различные формы взаимодействия между агентами, включая горизонтальную и вертикальную структуры коммуникации, и их влияние на процесс принятия решений и выполнения задач. Также исследуются возникающие в группах поведенческие модели, среди которых наблюдается даже деструктивное поведение. Эксперименты показали, что группы агентов в AgentVerse превосходят отдельных агентов в плане эффективности решения задач.

Заключение

В качестве заключения будут приведены выводы, сформированные на основе изученных исследований:

  1. Механизм памяти представляет собой хорошую альтернативу в случаях, когда полноценное обучение модели невозможно, например в условиях ограниченного доступа к вычислительным ресурсам. В то же время с точки зрения реализации агентов самих по себе такой механизм совершенно необходим для того, чтобы дать агенту возможность накапливать опыт и делать выводы.
  2. Способности агентов к решению комплексных задач определяются тем, насколько хорошо БЯМ умеет рассуждать и планировать. Обучение моделей в этом направлении является одним из наиболее перспективных.
  3. Успешность интеграции БЯМ с внешними инструментами так же во многом зависит от обучения модели. Учет интерфейсов и протоколов используемых инструментов на этапе обучения модели повысит итоговую эффективность выполнения агентом действий и снизит количество возникающих ошибок.
  4. Делегирование определенных задач или операций является хорошим способом компенсировать слабости моделей и вместе с этим повысить стабильность работы в тех областях, которые являются критичными для функционирования агента и не терпят ошибок.
  5. Совершенствование алгоритмов рассуждения и планирования определенно позволит продвинуть интеллектуальных агентов вперед вне зависимости от того, на что будет сделана ставка в вопросе решения этих задач при создании агента, будь то обучение моделей или использование логики, четко описанной в виде программного кода.
  6. Мультиагентные системы демонстрируют очень большой потенциал в решении комплексных задач. Система, функционирующая за счет взаимодействия нескольких агентов, каждый из которых специализируется на отдельном аспекте решаемой задачи будет выигрывать в плане гибкости, стабильности, производительности и качества результатов.

Область разработки интеллектуальных агентов на базе больших языковых моделей является крайне перспективной, но, не смотря на бурную активность, все еще остается слабо сформированной, поэтому обладает большим потенциалом для исследований.

Список литературы

  1. Ashish Vaswani, et al. (2017) "Attention Is All You Need" URL: https://doi.org/10.48550/arXiv.1706.03762.
  2. Sirui Hong, et al. (2023) "MetaGPT: Meta Programming for A Multi-Agent Collaborative Framework" URL: https://doi.org/10.48550/arXiv.2308.00352.
  3. Chen Qian, et al. (2023) "Communicative Agents for Software Development" URL: https://doi.org/10.48550/arXiv.2307.07924.
  4. Yihong Dong, et al. (2023) "Self-collaboration Code Generation via ChatGPT" URL: https://doi.org/10.48550/arXiv.2304.07590.
  5. Andrew Zhu, et al. (2023) "CALYPSO: LLMs as Dungeon Masters' Assistants" URL: https://doi.org/10.48550/arXiv.2308.07540.
  6. Xizhou Zhu, et al. (2023) "Ghost in the Minecraft: Generally Capable Agents for Open-World Environments via Large Language Models with Text-based Knowledge and Memory" URL: https://doi.org/10.48550/arXiv.2305.17144.
  7. Xinnian Liang, et al. (2023) "Unleashing Infinite-Length Input Capacity for Large-scale Language Models with Self-Controlled Memory System" URL: https://doi.org/10.48550/arXiv.2304.13343.
  8. Wanjun Zhong, et al. (2023) "MemoryBank: Enhancing Large Language Models with Long-Term Memory" URL: https://doi.org/10.48550/arXiv.2305.10250.
  9. Chenxu Hu, et al. (2023) "ChatDB: Augmenting LLMs with Databases as Their Symbolic Memory" URL: https://doi.org/10.48550/arXiv.2306.03901.
  10. Xuanhe Zhou, et al. (2023) "D-Bot: Database Diagnosis System using Large Language Models" URL: https://doi.org/10.48550/arXiv.2312.01454
  11. Ali Modarressi, et al. (2023) "RET-LLM: Towards a General Read-Write Memory for Large Language Models" URL: https://doi.org/10.48550/arXiv.2305.14322.
  12. Noah Shinn, et al. (2023) "Reflexion: Language Agents with Verbal Reinforcement Learning" URL: https://doi.org/10.48550/arXiv.2303.11366
  13. Andrew Zhao, et al. (2023) "ExpeL: LLM Agents Are Experiential Learners" URL: https://doi.org/10.48550/arXiv.2308.10144.
  14. Jason Wei et al. (2022) "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" URL: https://doi.org/10.48550/arXiv.2201.11903
  15. Xuezhi Wang, et al. (2022) "Self-Consistency Improves Chain of Thought Reasoning in Language Models" URL: https://doi.org/10.48550/arXiv.2203.11171.
  16. Shunyu Yao, et al. (2023) "Tree of Thoughts: Deliberate Problem Solving with Large Language Models" URL: https://doi.org/10.48550/arXiv.2305.10601.
  17. Maciej Besta, et al. (2023) "Graph of Thoughts: Solving Elaborate Problems with Large Language Models" URL: https://doi.org/10.48550/arXiv.2308.09687.
  18. Shreyas Sundara Raman, et al. (2022) "CAPE: Corrective Actions from Precondition Errors using Large Language Models" URL: https://doi.org/10.48550/arXiv.2211.09935.
  19. Yancheng Wang, et al. (2023) "RecMind: Large Language Model Powered Agent For Recommendation" URL: https://doi.org/10.48550/arXiv.2308.14296.
  20. Shunyu Yao, et al. (2022) "ReAct: Synergizing Reasoning and Acting in Language Models" URL: https://doi.org/10.48550/arXiv.2210.03629.
  21. Wenlong Huang, et al. (2022) "Inner Monologue: Embodied Reasoning through Planning with Language Models" URL: https://doi.org/10.48550/arXiv.2207.05608.
  22. Reiichiro Nakano, et al. (2021) "WebGPT: Browser-assisted question-answering with human feedback" URL: https://doi.org/10.48550/arXiv.2112.09332.
  23. Shishir G. Patil, et al. (2023) "Gorilla: Large Language Model Connected with Massive APIs" URL: https://doi.org/10.48550/arXiv.2305.15334
  24. Yongliang Shen, et al. (2023) "HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face" URL: https://doi.org/10.48550/arXiv.2303.17580.
  25. Dídac Surís, Sachit Menon, Carl Vondrick (2023) "ViperGPT: Visual Inference via Python Execution for Reasoning" URL: https://doi.org/10.48550/arXiv.2303.08128.
  26. Andres M Bran, et al. (2023) "ChemCrow: Augmenting large-language models with chemistry tools" URL: https://doi.org/10.48550/arXiv.2304.05376.
  27. Joon Sung Park, et al. (2023) "Generative Agents: Interactive Simulacra of Human Behavior" URL: https://doi.org/10.48550/arXiv.2304.03442
  28. Weize Chen, et al. (2023) "AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors" URL: https://doi.org/10.48550/arXiv.2308.10848.

Интересная статья? Поделись ей с другими: