AGI и будущее ИИ

MetaGPT: Полное руководство по лучшему доступному ИИ-агенту

mm
Добавьте Unite.AI в избранные источники в Google

С появлением крупномасштабных языковых моделей (LLM) вроде ChatGPT компания OpenAI стала свидетелем бума внедрения ИИ в корпоративной сфере и среди пользователей, в настоящее время генерируя около 80 миллионов долларов ежемесячной выручки. Согласно недавнему отчету от The Information, компания из Сан-Франциско, как сообщается, находится на пути к достижению 1 миллиарда долларов годовой выручки.

В прошлый раз мы углубились в AutoGPT и GPT-Engineering, ранние основные открытые ИИ-агенты на основе LLM, предназначенные для автоматизации сложных задач. Хотя они были перспективными, эти системы имели свою долю проблем: непоследовательные результаты, проблемы с производительностью и ограничения при обработке многогранных требований. Они демонстрируют умение в генерации кода, но их возможности часто останавливаются там. У них нет критически важных функций управления проектами, таких как генерация PRD, генерация технического дизайна и прототипирование интерфейса API.

Вот MetaGPT — многоагентная система, которая использует крупномасштабные языковые модели от Sirui Hong, объединяя стандартные операционные процедуры (SOP) с многоагентными системами на основе LLM. Этот возникающий парадигма нарушает существующие ограничения LLM в содействии эффективному сотрудничеству и декомпозиции задач в сложных реальных приложениях.

Красота MetaGPT заключается в его структуре. Он использует метапрограммные методы для манипулирования, анализа и преобразования кода в реальном времени. Цель — создать гибкую и адаптируемую программную архитектуру, которая может адаптироваться к динамическим программным задачам.

Agile Development - Metagpt

Agile Development

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

Понимание фреймворка MetaGPT

Основные и сотруднические слои

Архитектура MetaGPT разделена на два слоя: основной компонентный слой и сотруднический слой.

  1. Основной компонентный слой: Этот слой фокусируется на индивидуальных операциях агентов и облегчает обмен информацией в системе. Он вводит основные строительные блоки, такие как среда, память, роли, действия и инструменты. Среда создает сцену для общих рабочих пространств и коммуникационных путей, а память служит историческим архивом данных. Роли инкапсулируют домен-специфические знания, действия выполняют модульные задачи, а инструменты предлагают общие услуги. Этот слой по сути служит операционной системой для агентов. Более подробную информацию о том, как они работают вместе, можно найти в статье ‘Beyond ChatGPT; AI Agent: A New World of Workers
  2. Сотруднический слой: Построенный на основе основного компонента, этот слой управляет и оптимизирует сотруднические усилия индивидуальных агентов. Он вводит два механизма: обмен знаниями и инкапсуляция рабочих процессов.
    • Обмен знаниями: Это действует как сотрудническая связь, которая объединяет агентов. Агенты могут хранить, извлекать и делиться информацией на различных уровнях, тем самым уменьшая избыточность и повышая операционную эффективность.
    • Инкапсуляция рабочих процессов: Это место, где стандартные операционные процедуры (SOP) вступают в игру. SOP действуют как чертежи, которые разбивают задачи на управляемые компоненты. Агентам назначаются эти подзадачи, и их производительность согласована со стандартизированными выходами.

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

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

Когнитивные процессы в агентах MetaGPT

MetaGPT может наблюдать, думать, размышлять и действовать. Они работают через специальные поведенческие функции, такие как _think(), _observe(), _publish_message() и т. д. Это когнитивное моделирование оснащает агентов возможностью быть активными учениками, которые могут адаптироваться и эволюционировать.

  1. Наблюдать: Агенты сканируют свою среду и включают ключевые данные в свою память.
  2. Думать и размышлять: Через функцию _think() роли обдумывают перед тем, как предпринимать действия.
  3. Транслировать сообщения: Агенты используют _publish_message(), чтобы делиться текущим статусом задач и связанными с ними записями действий.
  4. Осаждение знаний и действие: Агенты оценивают входящие сообщения и обновляют свои внутренние репозитории перед тем, как решить, какое действие предпринять.
  5. Управление состоянием: С функциями, такими как блокировка задач и обновление статуса, роли могут обрабатывать несколько действий последовательно без прерывания, отражая реальное сотрудничество человека.

Механизмы код-ревью для MetaGPT

Код-ревью — это важнейший компонент в жизненном цикле разработки программного обеспечения, но он отсутствует в нескольких популярных фреймворках. И MetaGPT, и AgentVerse поддерживают возможности код-ревью, но MetaGPT идет дальше. Он также включает в себя выполнение до компиляции, которое помогает в раннем обнаружении ошибок и повышает качество кода. Учитывая итеративный характер программирования, эта функция не просто добавление, а требование для любой зрелой системы разработки.

Количественные эксперименты, проведенные на нескольких задачах, показали, что MetaGPT превосходит своих аналогов почти во всех сценариях. Pass@1 — это мера способности фреймворка генерировать точный код за один проход. Этот показатель дает более реалистичное отражение полезности фреймворка в практической обстановке. Более высокий показатель Pass@1 означает меньше отладки и больше эффективности, что напрямую влияет на циклы разработки и затраты. Когда он сравнивается с другими передовыми инструментами генерации кода, такими как CodeX, CodeT и даже GPT-4, MetaGPT превосходит их всех. Способность фреймворка достигать показателя Pass@1 в размере от 81,7% до 82,3% на HumanEval и MBPP — это свидетельство его силы.

Comparing MBPP and HumanEval Metrics b/w MetaGPT and other Leading Models (https://arxiv.org/pdf/2308.00352.pdf)

Comparing MBPP and HumanEval Metrics b/w MetaGPT and other Leading Models (https://arxiv.org/pdf/2308.00352.pdf)

Фреймворк также использует меньше токенов и вычислительных ресурсов, достигая высокого успеха при доле традиционных затрат на разработку программного обеспечения. Данные показали среднюю стоимость всего в $1,09 за проект с MetaGPT, что является лишь долей того, что разработчик бы взял за ту же задачу.

Шаги для локальной установки MetaGPT на вашей системе

Установка NPM и Python

  1. Проверьте и установите NPM: Первое, что нужно сделать, — это убедиться, что NPM установлен на вашей системе. Если его нет, вам нужно будет установить node.js. Чтобы проверить, есть ли у вас npm, запустите эту команду в вашем терминале: npm --version. Если вы видите номер версии, вы готовы.
  2. Чтобы установить mermaid-js, зависимость для MetaGPT, запустите: sudo npm install -g @mermaid-js/mermaid-cli или npm install -g @mermaid-js/mermaid-cli
  3. Проверьте версию Python: Убедитесь, что у вас установлен Python 3.9 или выше. Чтобы проверить версию Python, откройте терминал и введите: python --version. Если вы не обновлены, скачайте последнюю версию с официального сайта Python.
  4. Клонируйте репозиторий MetaGPT: Начните с клонирования репозитория MetaGPT на GitHub с помощью команды git clone https://github.com/geekan/metagpt. Убедитесь, что у вас установлен Git в вашей системе для этого. Если нет, посетите сюда.
  5. Перейдите в директорию: Как только вы склонировали, перейдите в директорию MetaGPT с помощью команды cd metagpt.
  6. Установка: Выполните скрипт установки Python, чтобы установить MetaGPT с помощью команды python setup.py install.
  7. Создайте приложение: запустите python startup.py "ENTER-PROMPT" --code_review True

Примечание:

  • Ваш новый проект должен теперь находиться в директории workspace/.
  • --code_review True позволит модели GPT выполнить дополнительные операции, которые обеспечат точное выполнение кода, но обратите внимание, что это будет стоить больше.
  • Если вы столкнетесь с ошибкой разрешения во время установки, попробуйте запустить python setup.py install --user в качестве альтернативы.
  • Для доступа к конкретным выпускам и дальнейшим деталям посетите официальную страницу выпусков MetaGPT на GitHub: Выпуски MetaGPT.

Установка Docker

Для тех, кто предпочитает контейнеризацию, Docker упрощает процесс:

  • Получите образ Docker: Загрузите официальный образ MetaGPT и подготовьте файл конфигурации:
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml
  • Запустите контейнер MetaGPT: Выполните контейнер с помощью следующей команды:
docker run --rm --privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1 \
python startup.py "Create a simple and interactive CLI based rock, paper and scissors game" --code_review True

Настройка MetaGPT с вашим ключом OpenAI API

После первоначальной настройки вам нужно будет интегрировать MetaGPT с вашим ключом OpenAI API. Вот шаги, чтобы сделать это:

  1. Найдите или сгенерируйте свой ключ OpenAI: Вы можете найти этот ключ в вашем панеле управления OpenAI в разделе настроек API.
  2. Установите ключ API: У вас есть возможность разместить ключ API в config/key.yaml, config/config.yaml или установить его как переменную среды (env). Порядок приоритета: config/key.yaml > config/config.yaml > env.
  3. Чтобы установить ключ, перейдите в config/key.yaml и замените текст-заполнитель своим ключом OpenAI: OPENAI_API_KEY: "sk-..."

Помните, чтобы защитить свой ключ OpenAI API. Никогда не коммитите его в публичный репозиторий или не делитесь им с неавторизованными лицами.

Иллюстрация использования

Я дал цель разработать CLI-игру в камень, ножницы, бумагу, и MetaGPT успешно выполнил эту задачу.

Ниже представлено видео, которое демонстрирует фактический запуск сгенерированного кода игры.

Демонстрационный запуск MetaGPT

MetaGPT предоставил документ по системному дизайну в Markdown — широко используемом легком языке разметки. Этот файл Markdown был полон диаграмм UML, давая подробный вид архитектурного плана. Кроме того, спецификации API были подробно описаны с методами HTTP, конечными точками, объектами запроса/ответа и кодами состояния

MetaGPT Output - System Design Markdown

MetaGPT Output – System Design Markdown

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

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

Заключение: MetaGPT — революционизация разработки программного обеспечения

MetaGPT переопределяет ландшафт генеративного ИИ и разработки программного обеспечения, предлагая безшовное сочетание интеллектуальной автоматизации и гибкого управления проектами. В значительной степени превосходя возможности ChatGPT, AutoGPT и традиционных моделей LangChain, он превосходит в декомпозиции задач, эффективной генерации кода и планировании проекта. Узнайте больше о

Вот ключевые выводы из этой статьи:

  1. Сила метапрограммирования: Используя метапрограммные методы, MetaGPT предоставляет гибкую и адаптируемую программную архитектуру. Она превосходит узкую функциональность устаревших инструментов и вводит трансформирующий подход, который охватывает не только программирование, но и управление проектами и принятие решений.
  2. Двухслойная архитектура: С помощью своих основного и сотруднического слоев MetaGPT эффективно создает синергетическую экосистему, где агенты могут работать согласованно, подобно умело управляемой команде программистов.
  3. Оптимизированное код-ревью: За пределами простой генерации кода MetaGPT предлагает функции выполнения до компиляции, что по сути является системой раннего предупреждения об ошибках. Это не только экономит время отладки, но и гарантирует качество кода.
  4. Когнитивные агенты: Интеллектуальные агенты MetaGPT, полные когнитивных функций, таких как _observe(), _think() и _publish_message(), эволюционируют и адаптируются, гарантируя, что ваше программное решение не просто закодировано, но и “интеллектуально”.
  5. Установка и развертывание: Мы проиллюстрировали, что MetaGPT можно легко установить, будь то локальная установка через npm и Python или контейнеризация через Docker.

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