Создание первой практической платформы автоматического компьютера общего назначения с хранимой программой на основе LLM (архитектура фон Неймана) в многоагентной системе на основе LLM для решения сложных задач путем генерации обширных и последовательных результатов, не ограниченных ограничениями окна фиксированного контекста LLM. .
? Может. 7–11 числа 2024 г.: Мы представим L2MAC на Международной конференции по обучению представлениям (ICLR) 2024. Приходите к нам на ICLR в Вене, Австрия! Пожалуйста, свяжитесь со мной по адресу sih31 (at) cam.ac.uk, чтобы мы могли встретиться, виртуальные встречи также принимаются!
? Апрель. 23, 2024: исходный код L2MAC полностью открыт, выпущена первоначальная версия.
16 января 2024 г.: Документ L2MAC: Автоматический компьютер с большой языковой моделью для расширенной генерации кода принят к презентации на ICLR 2024!
Создание экземпляра LLM-автоматического компьютера (L2MAC) для кодирования большой сложной базы кода для всего приложения на основе одного запроса пользователя . Здесь мы предоставляем L2MAC дополнительные инструменты для проверки синтаксических ошибок в коде и запуска любых модульных тестов, если они существуют.
Убедитесь, что в вашей системе установлен Python 3.7+. Вы можете проверить это, используя:
python --version
. Вы можете использовать conda следующим образом:conda create -n l2mac python=3.9 && conda activate l2mac
pip install --upgrade l2mac
# or `pip install --upgrade git+https://github.com/samholt/l2mac`
# or `git clone https://github.com/samholt/l2mac && cd l2mac && pip install --upgrade -e .`
Подробные инструкции по установке см. в разделе Установка.
Вы можете инициализировать конфигурацию L2MAC, выполнив следующую команду, или вручную создать файл ~/.L2MAC/config.yaml
:
# Check https://samholt.github.io/L2MAC/guide/get_started/configuration.html for more details
l2mac --init-config # it will create ~/.l2mac/config.yaml, just modify it to your needs
Вы можете настроить ~/.l2mac/config.yaml
в соответствии с примером и документом:
llm :
api_type : " openai " # or azure etc. Check ApiType for more options
model : " gpt-4-turbo-preview " # or "gpt-4-turbo"
base_url : " https://api.openai.com/v1 " # or forward url / other llm url
api_key : " YOUR_API_KEY "
После установки вы можете использовать L2MAC CLI.
l2mac " Create a beautiful, playable and simple snake game with pygame. Make the snake and food be aligned to the same 10-pixel grid. " # this will create a codebase repo in ./workspace
или использовать его как библиотеку
from l2mac import generate_codebase
codebase : dict = generate_codebase ( "Create a beautiful, playable and simple snake game with pygame. Make the snake and food be aligned to the same 10-pixel grid." )
print ( codebase ) # it will print the codebase (repo) complete with all the files as a dictionary, and produce a local codebase folder in ./workspace
? Присоединяйтесь к нашему каналу Discord! С нетерпением ждем встречи с вами там! ?
Если у вас есть какие-либо вопросы или отзывы об этом проекте, пожалуйста, свяжитесь с нами. Мы высоко ценим ваши предложения!
Мы ответим на все вопросы в течение 2-3 рабочих дней.
Чтобы быть в курсе последних исследований и разработок, подписывайтесь на @samianholt в Твиттере.
Чтобы цитировать L2MAC в публикациях, используйте следующую запись BibTeX.
@inproceedings {
holt2024lmac,
title = { L2{MAC}: Large Language Model Automatic Computer for Unbounded Code Generation } ,
author = { Samuel Holt and Max Ruiz Luyten and Mihaela van der Schaar } ,
booktitle = { The Twelfth International Conference on Learning Representations } ,
year = { 2024 } ,
url = { https://openreview.net/forum?id=EhrzQwsV4K }
}
Создание экземпляра LLM-автоматического компьютера (L2MAC) для кодирования большой сложной базы кода для всего приложения на основе одного запроса пользователя . Результаты задачи проектирования системы генерации кодовой базы, показывающие процент указанных функциональных возможностей, которые полностью реализованы ( Features % ), количество синтаксических ошибок в сгенерированном коде ( # Errors ), количество строк кода ( LOC ) и количество прохождение тестов ( Tests Passed ). L2MAC полностью реализует самый высокий процент требований к функциям, заданным пользователем, во всех задачах, генерируя полнофункциональный код с минимальными синтаксическими ошибками и большим количеством проходящих самостоятельно сгенерированных модульных тестов, поэтому он является самым современным для создание больших выходных кодовых баз и аналогично конкурентоспособным для генерации больших выходных задач. Результаты усредняются по 10 случайным семенам.
LLM-Automatic Computer (L2MAC) демонстрирует высокие результаты в тесте кодирования HumanEval и в настоящее время занимает 3-е место среди лучших агентов кодирования AI в мире в глобальной таблице лидеров HumanEval, соответствующей отраслевым стандартам кодирования.
Процент заданных пользователем требований к функциям, которые сохраняются в инструкциях задачи метода и используются в контексте.
Чтобы выяснить, содержат ли тестируемые методы во время работы информацию в своем контексте для непосредственного выполнения задачи, мы адаптировали нашу метрику % функций для подсчета количества пользовательских требований к функциям задачи, которые вместо этого сохраняются в инструкциях задачи методов, т. е. инструкции, которые в конечном итоге передаются в его контекстное окно во время его работы, как показано на рисунке выше. Опытным путем мы наблюдаем, что L2MAC способен сохранять большое количество требований к функциям задач, заданных пользователем, в своей быстрой программе и выполнять долгосрочные задачи, ориентированные на инструкции. Отметим, что AutoGPT также первоначально преобразует заданные пользователем требования к функциям задачи в инструкции задачи; однако он делает это с более высоким сжатием — сжимая информацию до описания, состоящего всего из шести предложений. Этот процесс приводит к потере важной информации о задаче, необходимой для правильного выполнения всей задачи, так что она соответствует подробной задаче, указанной пользователем.
Тепловая карта доступа к файлам. Индикация чтения, записи и создания файлов на каждом этапе операции записи в течение одного эпизода для задачи приложения онлайн-чата.
Мы хотим понять, во время выполнения инструкции задачи, может ли L2MAC понять существующие сгенерированные файлы кода в базе кода, которые могли быть созданы много инструкций назад, и посредством его понимания создавать новые файлы, которые взаимосвязаны с существующие файлы и, что наиболее важно, обновлять существующие файлы кода по мере реализации новых функций. Чтобы получить представление, мы построили тепловую карту чтения, записи и создания файлов на каждом этапе операции записи в течение одного эпизода на рисунке выше. Мы видим, что L2MAC понимает существующий сгенерированный код, что позволяет ему обновлять существующие файлы кода, даже те, которые изначально были созданы много шагов инструкции назад, и может просматривать файлы, когда это не точно, и обновлять файлы путем записи в файлы. Напротив, AutoGPT часто записывает в файлы только один раз, при их первоначальном создании, и может обновлять только те файлы, о которых ему известно и которые сохраняются в текущем контекстном окне. Хотя у него также есть инструмент чтения файлов, он часто забывает о файлах, которые он создал много итераций назад, из-за своего подхода к обработке контекстного окна, заключающегося в суммировании самых старых диалоговых сообщений в его контекстном окне, то есть непрерывное сжатие предыдущего прогресса с потерями. в процессе выполнения задания.
(б) Количество синтаксических ошибок в кодовой базе. (c) Составные гистограммы прохождения и неудачи самостоятельно созданных модульных тестов.
При использовании вероятностной модели (LLM) в качестве генератора для вывода кода в ее выходных данных естественным образом могут возникать ошибки. Поэтому мы хотим проверить, могут ли соответствующие методы тестирования исправить ошибки в кодовой базе при появлении ошибок. На рисунке выше (b) мы отображаем количество синтаксических ошибок в кодовой базе во время выполнения, в котором были допущены ошибки. Мы видим, что L2MAC может корректно исправлять ошибки в ранее сгенерированной кодовой базе, содержащей ошибки, которые могут возникнуть из-за синтаксических ошибок в последнем записанном файле или других файлах, которые зависят от самого последнего записанного файла, который теперь содержит ошибки. Это достигается путем предоставления вывода ошибки, когда она возникает, и изменения кодовой базы для устранения ошибки, продолжая при этом выполнять текущую инструкцию. Напротив, AutoGPT не может обнаружить ошибку в кодовой базе и продолжает работать, что может увеличить количество ошибок, образующихся в кодовой базе.
Более того, L2MAC генерирует модульные тесты вместе с функциональным кодом и использует их в качестве средства проверки ошибок для проверки функциональности кодовой базы по мере ее создания и может использовать эти ошибки для исправления кодовой базы для прохождения модульных тестов, которые теперь терпят неудачу после обновления части существующего кода. файл. Мы показываем это на рисунке выше (c) и видим, что AutoGPT, хотя ему предлагается также написать модульные тесты для всего сгенерированного кода, не может использовать эти тесты в качестве проверки ошибок целостности, что может усугубляться тем, что AutoGPT забывает, какие файлы, которые он создал ранее, и, следовательно, не может изменять существующие забытые файлы кода по мере внесения новых модификаций, что приводит к несовместимым файлам кода.
Мы представляем L2MAC, первую компьютерную среду хранимой программы общего назначения на основе LLM, которая эффективно и масштабируемо дополняет LLM хранилищем памяти для задач генерации длинных выходных данных, где это ранее не было успешно достигнуто. В частности, L2MAC, применяемый для задач генерации длинного кода, превосходит существующие решения и является чрезвычайно полезным инструментом для быстрой разработки. Мы приветствуем вклад и призываем вас использовать и цитировать проект. Нажмите здесь, чтобы начать.
Мы включаем галерею примеров приложений, полностью созданных автоматическим компьютером LLM (L2MAC) с помощью одной строки ввода. L2MAC превосходно справляется с решением больших сложных задач, например, является современным средством создания больших баз кода или даже может писать целые книги, причем все они обходят традиционные ограничения окна с фиксированным контекстом LLM.
Просто введите l2mac "Create a beautiful, playable and simple snake game with pygame. Make the snake and food be aligned to the same 10-pixel grid."
, вы получите полную кодовую базу для полностью играбельной игры, как показано здесь.
Нажмите здесь, чтобы просмотреть полные файлы на github, или загрузите их здесь. Код и приглашение для его создания находятся здесь.
Нажмите здесь, чтобы просмотреть полные файлы на github, или загрузите их здесь. Код и приглашение для его создания находятся здесь.
Просто дайте L2MAC подсказку: Write a complete recipe book for the following book title of "Twirls & Tastes: A Journey Through Italian Pasta". Description: "Twirls & Tastes" invites you on a flavorful expedition across Italy, exploring the diverse pasta landscape from the sun-drenched hills of Tuscany to the bustling streets of Naples. Discover regional specialties, learn the stories behind each dish, and master the art of pasta making with easy-to-follow recipes that promise to delight your senses.
и он может автоматически генерировать полную 26-страничную книгу.
Нажмите здесь, чтобы просмотреть полную версию книги; L2MAC создал весь текст для книги, а все изображения были созданы с помощью DALLE.
Полные выходные текстовые файлы находятся на github; вы можете скачать их здесь. Код и приглашение для его создания находятся здесь.
Нажмите здесь, чтобы просмотреть полные файлы на github, или загрузите их здесь. Код и приглашение для его создания находятся здесь.
Мы активно ждем вас, чтобы вы могли загрузить сюда свои собственные замечательные приложения, отправив PR к созданному вами приложению, поделившись им в выпуске GitHub или поделившись им на канале Discord.