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

Большие языковые модели (LLM) в настоящее время являются одной из наиболее обсуждаемых тем в сфере ИИ. Разработчики по всему миру изучают потенциальные возможности применения LLM. Эти модели представляют собой алгоритмы искусственного интеллекта, которые используют методы глубокого обучения и огромные объемы обучающих данных для понимания, обобщения, прогнозирования и создания широкого спектра контента, включая текст, аудио, изображения, видео и многое другое.
Большие языковые модели представляют собой сложные алгоритмы искусственного интеллекта. Разработка такой модели является исчерпывающей задачей, и создание приложения, использующего возможности LLM, является не менее сложной задачей. Это требует значительных знаний, усилий и ресурсов для разработки, реализации и, в конечном итоге, оптимизации рабочего процесса, способного задействовать весь потенциал большой языковой модели для получения наилучших результатов. Учитывая много времени и ресурсов, необходимых для создания рабочих процессов для приложений, использующих возможности LLM, автоматизация этих процессов имеет огромную ценность. Это особенно верно, поскольку ожидается, что в ближайшем будущем рабочие процессы станут еще более сложными, поскольку разработчики будут создавать все более сложные Приложения на основе LLM. Кроме того, пространство для проектирования, необходимое для этих рабочих процессов, одновременно сложное и обширное, что еще больше усложняет задачу создания оптимального и надежного рабочего процесса, отвечающего ожиданиям по производительности.
Автоген — это платформа, разработанная командой Microsoft, цель которой — упростить оркестровку и оптимизацию рабочих процессов LLM за счет автоматизации конвейера рабочих процессов. Платформа AutoGen предлагает разговорные и настраиваемые агенты, которые используют возможности продвинутых LLM, таких как GPT-3 и GPT-4, и в то же время устраняют их текущие ограничения путем интеграции LLM с инструментами и человеческим вводом, используя автоматические чаты для инициирования разговоров. между несколькими агентами.
При использовании платформы AutoGen все, что требуется, — это два шага при разработке сложной многоагентной системы диалога.
Шаг 1: Определите набор агентов, каждый со своими ролями и возможностями.
Шаг 2: Определите поведение взаимодействия между агентами, т. е. агент должен знать, что отвечать, когда он получает сообщение от другого агента.
Оба вышеуказанных шага являются модульными и интуитивно понятными, что делает эти агенты компонуемыми и пригодными для повторного использования. На рисунке ниже показан пример рабочего процесса, который рассматривает ответы на вопросы на основе кода при оптимизации цепочки поставок. Как видно, автор сначала пишет код и интерпретацию, Safeguard обеспечивает конфиденциальность и безопасность кода, а затем код выполняется Командующим после получения необходимого разрешения. Если система сталкивается с какой-либо проблемой во время выполнения, процесс повторяется до тех пор, пока она не будет решена полностью. Развертывание приведенной ниже структуры приводит к сокращению объема ручного взаимодействия с 3x до 10x при развертывании в таких приложениях, как оптимизация цепочки поставок. Кроме того, использование 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 или получение данных от человека.
Возможности агентов, основанные на людях, инструментах и магистратуре
Возможности агента напрямую связаны с тем, как он обрабатывает сообщения и реагирует на них, что является основной причиной, по которой агенты в среде AutoGen позволяют разработчикам гибко наделять своих агентов различными возможностями. AutoGen поддерживает многочисленные общие компонуемые возможности для агентов, которые включают в себя
- LLM: Агенты, поддерживаемые LLM, используют возможности продвинутых инфраструктур LLM, такие как неявное вмешательство состояний, ролевые игры, предоставление обратной связи и даже кодирование. Разработчики могут использовать новые методы подсказок, чтобы объединить эти возможности и попытаться повысить автономность или навыки агента.
- Люди: Некоторые приложения желают или требуют определенной степени участия человека, а платформа AutoGen позволяет приложениям на основе LLM облегчать участие человека в разговоре агентов с использованием агентов, поддерживаемых людьми, которые могут запрашивать вводимые человеком данные во время определенных раундов разговора на основе конфигурация агента.
- Инструменты: Агенты, поддерживаемые инструментами, обычно имеют возможность использовать выполнение кода или выполнение функций для запуска инструментов.
Сотрудничество агентов и настройка
Основываясь на конкретных потребностях и требованиях приложения, разработчики могут настроить отдельные агенты так, чтобы они имели комбинацию основных типов серверной части для отображения сложного поведения, используемого в диалогах между несколькими агентами. Платформа AutoGen позволяет разработчикам легко создавать агенты со специализированными ролями и возможностями путем расширения или повторного использования встроенных агентов. На рисунке ниже показана базовая структура встроенных агентов в среде AutoGen. Класс ConversableAgent по умолчанию может использовать людей, инструменты и LLM, поскольку это абстракция агента самого высокого уровня. UserProxyAgent и AssistantAgent — это предварительно сконфигурированные классы ConversableAgent, и каждый из них представляет общий режим использования, т. е. каждый из этих двух агентов действует как помощник искусственного интеллекта (при поддержке LLM) и запрашивает человеческий ввод или выполняет вызовы функций. или коды (при поддержке инструментов и/или людей), выступая в качестве представителя человека.
На рисунке ниже показано, как разработчики могут использовать платформу AutoGen для разработки системы с двумя агентами, имеющей настраиваемую функцию ответа, а также иллюстрацию полученного автоматического чата агента, который использует систему с двумя агентами во время выполнения программы.
Позволяя использовать специальные агенты, которые могут взаимодействовать друг с другом, эти диалоговые агенты служат фундаментальным строительным блоком в среде AutoGen. Однако разработчикам необходимо специфицировать и формировать эти межагентные взаимодействия, чтобы разрабатывать приложения, в которых эти агенты смогут добиться существенного прогресса в решении указанных задач.
Разговорное программирование
Чтобы решить указанную выше проблему, платформа AutoGen использует диалоговое программирование, вычислительную парадигму, основанную на двух основных концепциях: вычисление, действия, предпринимаемые агентами в многоагентном диалоге для вычисления их ответа и поток управления, условия или последовательность, при которых происходят эти вычисления. Возможность их программирования позволяет разработчикам реализовывать многочисленные гибкие шаблоны межагентного взаимодействия. Более того, в рамках AutoGen вычисления ориентированы на диалог. Действия, предпринимаемые агентом, имеют отношение к диалогам, в которых участвует агент, и действия, предпринятые агентами, затем приводят к передаче сообщений для последующих диалогов до момента, когда условие завершения будет удовлетворено. Более того, поток управления в среде AutoGen управляется диалогами, поскольку это решение участвующих агентов о том, какие агенты будут отправлять сообщения в процедуру вычислений и из нее.
На рисунке выше показана простая иллюстрация того, как отдельные агенты выполняют свои ролевые операции и вычисления, ориентированные на диалог, для генерации желаемых ответов, таких как выполнение кода и вызовы помех LLM. Задача выполняется с помощью диалогов, которые отображаются в диалоговом окне.
Чтобы облегчить программирование диалога, платформа AutoGen содержит следующие шаблоны проектирования.
- Механизмы автоответа и единый интерфейс для автоматических чатов агентов
Платформа AutoGen имеет унифицированный интерфейс для выполнения соответствующих вычислений, ориентированный на диалог, включая «функция получения или отправки» для получения или отправки сообщений вместе с «генерировать_ответ», которая генерирует ответ на основе полученного сообщения и выполняет необходимое действие. Платформа AutoGen также представляет и развертывает агент-автоответчик механизм по умолчанию для реализации управления на основе диалога.
- Управление путем объединения естественного языка и программирования
Платформа AutoGen облегчает использование естественного языка и программирования в различных шаблонах управления потоками управления, которые включают в себя: Контроль естественного языка с использованием LLM, Управление языком программирования и Управляйте переходом между программированием и естественным языком.
В дополнение к статическим диалогам, которые обычно сопровождаются предопределенным потоком, платформа AutoGen также поддерживает динамические потоки разговоров с использованием нескольких агентов, и платформа предоставляет разработчикам два варианта достижения этой цели.
- С помощью вызовов функций.
- Используя настраиваемую функцию генерации ответа.
Приложения AutoGen
Чтобы проиллюстрировать потенциал платформы AutoGen в разработке сложных мультиагентных приложений, вот шесть потенциальных приложений AutoGen, которые выбраны на основе их актуальности в реальном мире, возможностей решения проблем, расширенных с помощью платформы AutoGen, и их инновационный потенциал.
Эти шесть приложений платформы AutoGen:
- Решение математических задач.
- Поиск дополненных чатов.
- АЛФ беседует.
- Мультиагентное кодирование.
- Динамический групповой чат.
- Разговорные шахматы.
Приложение 1: Решение математических задач
Математика — одна из основополагающих дисциплин использования моделей LLM для решения сложных математических задач, которая открывает совершенно новый мир потенциальных приложений, включая помощь в исследованиях ИИ и персонализированное обучение ИИ.
На приведенном выше рисунке показано применение платформы AutoGen для достижения конкурентоспособной производительности при решении математических задач.
Приложение 2: Ответы на вопросы и генерация кода с расширенным поиском
За последние несколько месяцев генерация расширенного кода с поиском стала эффективным и практичным подходом для преодоления ограничений LLM при включении внешних документов. На рисунке ниже показано применение платформы AutoGen для эффективного расширения поиска и повышения производительности задач вопросов и ответов.
Приложение 3: Принятие решений в среде текстового мира
Платформу AutoGen можно использовать для создания приложений, которые работают с онлайн- или интерактивным принятием решений. На рисунке ниже показано, как разработчики могут использовать платформу AutoGen для разработки трехагентной диалоговой системы с заземляющим агентом, чтобы значительно повысить производительность.
Приложение 4: Мультиагентное кодирование
Разработчики, работающие над платформой AutoGen, могут использовать платформу OptiGuide для создания многоагентной системы кодирования, способной писать код для реализации оптимизированных решений и отвечать на вопросы пользователей. На рисунке ниже показано, что использование платформы AutoGen для создания многоагентной конструкции помогает значительно повысить общую производительность, особенно при выполнении задач кодирования, требующих защиты.

Приложение 5: Динамический групповой чат
Платформа AutoGen обеспечивает поддержку шаблона общения, основанного на динамических групповых чатах, в которых участвующие несколько агентов разделяют контекст и вместо того, чтобы следовать набору заранее определенных приказов, они общаются друг с другом в динамическом режиме. Эти динамические групповые чаты основаны на текущих разговорах, которые направляют поток взаимодействия между агентами.
На рисунке выше показано, как платформа AutoGen поддерживает динамические групповые чаты между агентами, используя «Менеджер группового чата», специальный агент.
Приложение 6: Разговорные шахматы
Разработчики платформы AutoGen использовали ее для разработки приложения «Разговорные шахматы», представляющего собой естественную интерференционную игру со встроенными агентами для игроков, которые могут быть либо LLM, либо людьми, а также существует сторонний агент, который предоставляет соответствующие информацию и проверяет ходы на доске на основе набора заранее определенных стандартных правил. На рисунке, прикрепленном ниже, показана «Разговорные шахматы», игра с естественным взаимодействием, созданная с использованием платформы AutoGen, которая позволяет игрокам использовать шутки, игру персонажей или даже отсылки к мемам для творческого выражения своих ходов, что делает игру в шахматы более интересной не только для игроков. , но и для зрителей и наблюдателей.
Заключение
В этой статье мы говорили об AutoGen, платформе с открытым исходным кодом, которая использует концепции диалогового программирования и диалоговых агентов, целью которой является упрощение оркестрации и оптимизации рабочих процессов LLM путем внедрения автоматизации в конвейер рабочих процессов. Платформа AutoGen предлагает разговорные и настраиваемые агенты, которые используют возможности продвинутых LLM, таких как GPT-3 и GPT-4, и в то же время устраняют их текущие ограничения путем интеграции LLM с инструментами и человеческим вводом, используя автоматические чаты для инициирования разговоров. между несколькими агентами.
Хотя платформа AutoGen все еще находится на ранних экспериментальных стадиях, она открывает путь для будущих исследований и возможностей исследований в этой области, и AutoGen может стать инструментом, который помогает улучшить скорость, функциональность и простоту разработки приложений, используя возможности LLM.