AutoGen Поддержка приложений следующего поколения больших языковых моделей

AutoGen Поддержка приложений следующего поколения на основе больших языковых моделей

Крупные языковые модели (LLM) в настоящее время являются одной из самых обсуждаемых тем в главном сегменте искусственного интеллекта. Разработчики по всему миру исследуют потенциальные применения LLM. Эти модели – это алгоритмы искусственного интеллекта, которые используют техники глубокого обучения и огромные объемы тренировочных данных для понимания, резюмирования, прогнозирования и генерирования разнообразного контента, включая текст, аудио, изображения, видео и другое.

Большие языковые модели сложные алгоритмы искусственного интеллекта. Разработка такой модели – это исчерпывающая задача, и создание приложения, которое использует возможности LLM, представляет собой равно сложное испытание. Для разработки, реализации и оптимизации рабочего процесса, способного полностью использовать потенциал большой языковой модели и достичь лучших результатов, требуются значительные экспертиза, усилия и ресурсы. Учитывая обширное время и необходимые ресурсы для создания рабочих процессов для приложений, использующих мощность LLM, автоматизация этих процессов имеет огромную ценность. Это особенно верно, поскольку ожидается, что рабочие процессы станут еще более сложными в ближайшем будущем, когда разработчики будут создавать все более сложные приложения на основе LLM. Кроме того, пространство проектирования, необходимое для этих рабочих процессов, является сложным и обширным, что еще больше повышает сложности создания оптимального, надежного рабочего процесса, отвечающего требованиям производительности.

AutoGen – это фреймворк, разработанный командой Microsoft, который направлен на упрощение оркестрации и оптимизации рабочих процессов LLM путем введения автоматизации в конвейер рабочих процессов. Фреймворк AutoGen предлагает разговорные и настраиваемые агенты, которые используют возможности передовых LLM, таких как GPT-3 и GPT-4, и в то же время решают их текущие ограничения, интегрируя LLM с инструментами и входными данными людей с помощью автоматизированных чатов для инициирования разговоров между различными агентами.

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

Шаг 1: Определите набор агентов, каждый со своими ролями и возможностями.

Шаг 2: Определите поведение взаимодействия между агентами, т.е. агент должен знать, что отвечать, когда получает сообщение от другого агента.

Оба вышеуказанных шага являются модульными и интуитивно понятными, что делает агентов комбинируемыми и многократно используемыми. Ниже приведена схема рабочего процесса, демонстрирующая пример кодового ответа на вопрос в оптимизации цепи поставок. Как видно, писатель сначала создает код и интерпретацию, Защитник обеспечивает конфиденциальность и безопасность кода, и код затем выполняется Командиром после получения необходимого разрешения. Если во время выполнения возникает любая проблема, процесс повторяется до полного ее устранения. Внедрение указанного ниже фреймворка позволяет сократить количество ручного взаимодействия от 3 до 10 раз в приложениях, таких как оптимизация цепи поставок. Кроме того, использование AutoGen также уменьшает количество усилий, затрачиваемых на программирование, до четырех раз.

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

В этой статье мы подробно рассмотрим фреймворк AutoGen и рассмотрим основные компоненты, архитектуру и потенциальные применения фреймворка AutoGen. Так что давайте начнем.

Введение в AutoGen: Содействие следующему поколению приложений на основе крупных языковых моделей

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

Большие языковые модели играют решающую роль в разработке агентов, использующих фреймворки LLM для адаптации к новым наблюдениям, использования инструментов и рассуждений во множестве реальных приложений. Однако разработка таких приложений, которые могут использовать полный потенциал LLM, является сложным делом, и учитывая все возрастающий спрос и применение LLM вместе с увеличением сложности задач, важно увеличивать мощность этих агентов, используя несколько агентов, работающих в синхронизации друг с другом. Но как можно использовать мультиагентный подход для разработки LLM-приложений, которые могут быть применены в широком спектре областей с различной сложностью? Фреймворк AutoGen пытается ответить на этот вопрос, используя мультиагентные разговоры.

AutoGen : Компоненты и фреймворк

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

Разговорные Агенты

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

Возможности Агента, Предоставляемые Людьми, Инструментами и LLM

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

  1. LLM: Агенты, поддерживаемые LLM, используют возможности передовых фреймворков LLM, таких как неявное вмешательство состояния, ролевая игра, предоставление обратной связи и даже написание кода. Разработчики могут использовать новаторские техники стимулирования для объединения этих возможностей с целью увеличения автономии или навыков агента.
  2. Люди: Некоторые приложения требуют или желают некоторую степень участия человека, и фреймворк AutoGen позволяет LLM-приложениям облегчить участие людей в разговорах агента с помощью агентов, поддерживаемых людьми, которые могут запрашивать входные данные от человека в определенные моменты разговора на основе настроек агента.
  3. Инструменты: Агенты, использующие инструменты, обычно имеют возможность выполнять исполнение кода или функций с помощью инструментов.

Сотрудничество и настройка агентов

Исходя из конкретных потребностей и требований приложения, разработчики могут настраивать отдельных агентов на комбинацию необходимых типов для проявления сложного поведения, связанного с мультиагентными разговорами. Фреймворк AutoGen позволяет разработчикам легко создавать агентов с особыми ролями и возможностями, расширяя или повторно используя встроенных агентов. Ниже приведена схема основной структуры встроенных агентов в фреймворке AutoGen. Класс ConversableAgent может по умолчанию использовать людей, инструменты и LLM, так как он является самым высокоуровневым абстрагированием разговорного агента. Класс UserProxyAgent и AssistantAgent являются предварительно настроенными классами ConversableAgent, и каждый из них представляет собой обычный режим использования, т.е. каждый из этих двух агентов действует в качестве AI-помощника (если поддерживаются LLM), и запрашивает ввод от человека или выполняет вызовы функций или код (если поддерживаются инструменты и/или люди), действуя в качестве человеческого прокси.

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

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

Программирование разговоров

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

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

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

  • Механизмы автоматического ответа и унифицированный интерфейс для автоматизированных агентских чатов

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

  • Управление путем слияния естественного языка и программирования

Фреймворк AutoGen облегчает использование естественного языка и программирования в различных шаблонах управления потоком, включающих: управление на естественном языке с использованием LLM, управление на языке программирования и переход управления между программированием и естественным языком.

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

  1. С помощью вызовов функций.
  2. С помощью настраиваемой функции generate-reply.

Применения AutoGen

Чтобы проиллюстрировать потенциал фреймворка AutoGen в разработке сложных многоагентных приложений, вот шесть потенциальных приложений AutoGen, выбранных на основе их актуальности в реальном мире, способностей к решению проблем, усиленных фреймворком AutoGen, и их инновационного потенциала.

Эти шесть приложений фреймворка AutoGen:

  1. Решение математических проблем.
  2. Расширенные чаты поиска.
  3. ALF-чаты.
  4. Многоагентное кодирование.
  5. Динамический групповой чат.
  6. Разговорный шахматы.
Применения фреймворка AutoGen

Приложение 1: Решение математических задач

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

На рисунке выше показано применение фреймворка AutoGen для достижения конкурентоспособной производительности при решении математических задач.

Применение 2: отвечающая на вопросы и улучшенная генерация кода с использованием извлечения информации

В последние несколько месяцев улучшенная генерация кода с использованием извлечения информации стала эффективным и практичным подходом к преодолению ограничений LLMs при включении внешних документов. На рисунке ниже показано применение фреймворка AutoGen для эффективного улучшения извлечения информации и повышения производительности при выполнении задач Q&A.

Применение 3: принятие решений в текстовых средах

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

Применение 4: мультиагентное кодирование

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

Применение 5: динамический групповой чат

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

Вышеуказанный рисунок иллюстрирует, как фреймворк AutoGen поддерживает динамические групповые чаты между агентами с использованием особого агента “GroupChatManager”.

Применение 6: разговорные шахматы

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

Заключение

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

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