Модели и платформы ИИ
AutoGen: Управление следующим поколением крупномасштабных языковых моделей

Крупномасштабные языковые модели (LLM) в настоящее время являются одной из наиболее обсуждаемых тем в области ИИ. Разработчики всего мира исследуют потенциальные применения LLM. Эти модели представляют собой алгоритмы ИИ, которые используют методы глубокого обучения и огромные объемы обучающих данных для понимания, суммирования, прогнозирования и генерации широкого спектра контента, включая текст, аудио, изображения, видео и многое другое.
Крупномасштабные языковые модели являются сложными алгоритмами ИИ. Разработка такой модели является трудоемкой задачей, и создание приложения, которое использует возможности LLM, равно сложно. Для этого требуется значительный опыт, усилия и ресурсы для проектирования, реализации и оптимизации рабочего процесса, способного использовать весь потенциал крупномасштабной языковой модели для достижения лучших результатов. Учитывая обширное время и ресурсы, необходимые для создания рабочих процессов для приложений, использующих возможности LLM, автоматизация этих процессов имеет огромную ценность. Это особенно верно, поскольку рабочие процессы, как ожидается, станут еще более сложными в ближайшем будущем, когда разработчики будут создавать все более сложные приложения на основе LLM.
AutoGen – это фреймворк, разработанный командой Microsoft (MSFT ), целью которого является упрощение оркестровки и оптимизации рабочих процессов LLM путем введения автоматизации в конвейер рабочих процессов. Фреймворк AutoGen предлагает разговорные и настраиваемые агенты, которые используют возможности передовых LLM, таких как GPT-3 и GPT-4, и одновременно устраняют их текущие ограничения, интегрируя LLM с инструментами и человеческими входными данными с помощью автоматизированных чатов для инициирования разговоров между несколькими агентами.
При использовании фреймворка AutoGen для разработки сложной системы многоговой беседы требуется всего два шага.
Шаг 1: Определите набор агентов, каждый из которых имеет свои роли и возможности.
Шаг 2: Определите поведение взаимодействия между агентами, т.е. агент должен знать, как ответить, когда он получает сообщение от другого агента.
Оба вышеуказанных шага являются модульными и интуитивными, что делает этих агентов составными и многократно используемыми. На рисунке ниже показан образец рабочего процесса, который решает задачу кодирования вопросов в оптимизации цепочки поставок. Как видно, писатель сначала пишет код и интерпретацию, Safeguard обеспечивает конфиденциальность и безопасность кода, а затем код выполняется Commander после получения необходимого разрешения. Если система遇ает проблему во время выполнения, процесс повторяется до полного решения. Развертывание этого фреймворка приводит к сокращению количества ручных взаимодействий с 3 до 10 раз при развертывании в приложениях, таких как оптимизация цепочки поставок. Кроме того, использование AutoGen также сокращает количество кодировочных усилий до четырех раз.

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

Крупномасштабные языковые модели играют решающую роль в разработке агентов, которые используют фреймворки LLM для адаптации к новым наблюдениям, использованию инструментов и рассуждениям в различных реальных приложениях. Однако разработка этих приложений, которые могут использовать весь потенциал LLM, является сложной задачей, и учитывая все более возрастающий спрос и применения LLM, а также увеличение сложности задач, важно масштабировать возможности этих агентов, используя несколько агентов, которые работают в синхронизации друг с другом. Но как можно использовать многоговой подход для разработки приложений на основе LLM, которые можно применить к широкому спектру областей с различной сложностью? Фреймворк AutoGen пытается ответить на этот вопрос, используя многоговые разговоры.
AutoGen: Компоненты и фреймворк
Для сокращения количества усилий, которые разработчики должны приложить для создания сложных приложений, использующих возможности LLM, в различных областях, основной принцип AutoGen заключается в консолидации и оптимизации многоговых рабочих процессов с помощью многоговых разговоров, что также максимизирует повторное использование этих реализованных агентов. AutoGen использует несколько агентов, которые могут вести разговор друг с другом для успешного выполнения задач, и фреймворк построен на двух фундаментальных концепциях: Разговорные агенты и Разговорное программирование.
Разговорные агенты
Разговорный агент в AutoGen – это сущность с предварительно определенной ролью, которая может передавать сообщения для отправки и получения информации от и к другим разговорным агентам. Разговорный агент поддерживает свой внутренний контекст на основе полученных или отправленных сообщений, и разработчики могут настроить этих агентов для具有 уникального набора возможностей, таких как возможность использования инструментов LLM или получения человеческих входных данных.
Возможности агентов, обеспеченные людьми, инструментами и 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 являются
- Решение математических задач.
- Усиление чатов.
- Чаты ALF.
- Многоговое кодирование.
- Динамический групповой чат.
- Конверсационные шахматы.

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

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

Применение 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 может стать инструментом, который поможет улучшить скорость, функциональность и легкость разработки приложений, использующих возможности LLM.












