LLM 고정 컨텍스트 창 제약 조건에 제한되지 않고 광범위하고 일관된 출력을 생성하여 복잡한 작업을 해결하기 위해 LLM 기반 다중 에이전트 시스템에서 최초의 실용적인 LLM 기반 범용 저장 프로그램 자동 컴퓨터(von Neumann 아키텍처) 프레임워크를 개척했습니다. .
? 5월. 2024년 7~11일: ICLR(International Conference on Learning Representation) 2024에서 L2MAC를 발표할 예정입니다. 오스트리아 비엔나 ICLR에서 만나보세요! 우리가 만날 수 있도록 sih31 (at) cam.ac.uk로 연락해주세요. 가상 회의도 가능합니다!
? 4월. 2024년 2월 23일: L2MAC는 초기 버전이 출시되면서 완전히 오픈 소스화되었습니다.
2024년 1월 16일: 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
? 디스코드 채널에 참여하세요! 그곳에서 뵙기를 고대하고 있습니다! ?
이 프로젝트에 대해 질문이나 의견이 있으면 언제든지 저희에게 연락해 주세요. 귀하의 제안에 진심으로 감사드립니다!
모든 질문에 영업일 기준 2~3일 이내에 답변해 드리겠습니다.
최신 연구 및 개발에 대한 최신 정보를 얻으려면 Twitter에서 @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) 인스턴스화입니다. 완전히 구현된 지정된 기능 기능의 비율( Feature % ), 생성된 코드의 구문 오류 수( # Errors ), 코드 줄 수( LOC ) 및 코드 수를 보여주는 코드베이스 생성 시스템 설계 작업 결과 테스트 통과( 테스트 통과 ). L2MAC는 구문 오류가 최소화 되고 자체 생성 단위 테스트를 통과하는 횟수가 많은 완전 기능 코드를 생성하여 모든 작업에 걸쳐 가장 높은 비율의 사용자 지정 작업 기능 요구 사항을 완벽하게 구현합니다. 대규모 출력 코드베이스 생성 및 대규모 출력 작업 생성에 대해서도 비슷한 경쟁력을 갖고 있습니다. 결과는 무작위 시드 10개에 대한 평균입니다.
LLM-Automatic Computer(L2MAC)는 HumanEval 코딩 벤치마크에서 강력한 성능을 달성했으며 현재 HumanEval의 글로벌 코딩 산업 표준 리더보드에서 세계 3위의 AI 코딩 에이전트 로 선정되었습니다.
메서드 작업 지침 내에 유지되고 상황에 맞게 사용되는 사용자 지정 기능 요구 사항의 비율입니다.
작업 중 벤치마킹된 방법에 작업을 직접 완료하기 위한 정보가 컨텍스트 내에 포함되어 있는지 탐색하기 위해 기능 % 메트릭을 조정하여 대신 방법 작업 지침 내에 유지되는 사용자 지정 작업 기능 요구 사항 수를 계산했습니다. 위 그림에 표시된 것처럼 작업 중에 결국 컨텍스트 창에 입력되는 명령입니다. 경험적으로 우리는 L2MAC가 프롬프트 프로그램 내에서 많은 수의 사용자 지정 작업 기능 요구 사항을 유지하고 지침 중심의 장기 실행 작업을 수행할 수 있음을 관찰했습니다. AutoGPT는 초기에 사용자가 지정한 작업 기능 요구 사항을 작업 지침으로 변환합니다. 그러나 더 높은 압축률을 사용하여 정보를 단순한 6개의 문장 설명으로 압축합니다. 이 프로세스로 인해 전체 작업을 올바르게 완료하는 데 필요한 중요한 작업 정보가 손실되어 세부적인 사용자 지정 작업과 일치하게 됩니다.
파일 액세스 히트맵. 온라인 채팅 앱 작업에 대한 한 에피소드 동안 각 쓰기 작업 단계에서 읽기, 쓰기 및 파일 생성 시기를 나타냅니다.
우리는 작업 명령을 실행하는 동안 L2MAC이 코드베이스 내에서 기존에 생성된 코드 파일을 이해할 수 있는지 이해하고 싶습니다. 이 코드 파일은 이전에 여러 명령이 생성되었을 수 있으며, 그 이해를 통해 작업과 상호 연관되는 새로운 파일을 생성합니다. 기존 파일을 업데이트하고 가장 중요한 것은 새로운 기능이 구현되면 기존 코드 파일을 업데이트하는 것입니다. 통찰력을 얻기 위해 위 그림의 한 에피소드 동안 각 쓰기 작업 단계에서 읽기, 쓰기 및 파일 생성 시기의 히트맵을 플롯합니다. 우리는 L2MAC가 기존 코드 파일을 업데이트할 수 있는 기존 생성 코드를 이해하고 있으며, 심지어 원래 여러 단계 전에 생성된 파일도 업데이트할 수 있으며, 확실하지 않은 경우 파일을 보고 파일 쓰기를 통해 파일을 업데이트할 수 있음을 관찰했습니다. 이와 대조적으로 AutoGPT는 파일을 처음 생성할 때 파일에 한 번만 쓰는 경우가 많으며 현재 컨텍스트 창 내에 보관되어 있는 것으로 알고 있는 파일만 업데이트할 수 있습니다. 파일 읽기 도구도 있지만 컨텍스트 창에서 가장 오래된 대화 메시지를 요약하는 컨텍스트 창 처리 방식, 즉 이전 진행 상황에 대한 지속적인 손실 압축으로 인해 이전에 여러 번 반복해서 생성한 파일을 잊어버리는 경우가 많습니다. 작업을 완료하는 동안.
(b) 코드베이스 내의 구문 오류 수. (c) 자체 생성 단위 테스트의 통과 및 실패에 대한 누적 히스토그램.
코드를 출력하기 위한 생성기로 확률 모델(LLM)을 사용하면 출력에서 자연스럽게 오류가 발생할 수 있습니다. 따라서 우리는 오류가 나타날 때 각 벤치마크 방법이 코드베이스의 오류를 수정할 수 있는지 확인하고 싶습니다. 위 그림 (b) 에서는 오류가 발생한 실행 중에 코드베이스의 구문 오류 수를 표시합니다. 우리는 L2MAC가 오류가 포함된 이전에 생성된 코드베이스를 올바르게 오류 수정할 수 있다는 것을 관찰했습니다. 이는 마지막으로 작성된 파일이나 현재 오류가 포함되어 있는 가장 최근에 작성된 파일에 의존하는 다른 파일의 구문 오류로 인해 발생할 수 있습니다. 오류가 발생하면 오류 출력을 표시하고 현재 명령을 완료하는 동안 오류를 해결하기 위해 코드베이스를 수정함으로써 이를 수행합니다. 이와 대조적으로 AutoGPT는 코드베이스에 오류가 발생하고 계속 작동하는 시기를 감지할 수 없으며, 이로 인해 코드베이스 내에 형성되는 오류 수가 더 많아질 수 있습니다.
또한 L2MAC는 기능 코드와 함께 단위 테스트를 생성하고 이를 오류 검사기로 사용하여 생성된 코드베이스의 기능을 검사하고 이러한 오류를 사용하여 기존 코드의 일부를 업데이트한 후 실패하는 단위 테스트를 통과하도록 코드베이스를 수정할 수 있습니다. 파일. 위 그림 (c) 에서 이를 보여주고 AutoGPT가 생성된 모든 코드에 대한 단위 테스트를 작성하라는 메시지를 표시하는 동안 이러한 테스트를 무결성 오류 확인으로 사용할 수 없다는 것을 관찰합니다. 이전에 생성한 파일을 새로 수정해도 잊어버린 기존 코드 파일을 수정할 수 없어 호환되지 않는 코드 파일이 발생합니다.
우리는 이전에 성공적으로 달성되지 않았던 긴 출력 생성 작업을 위한 메모리 저장소로 LLM을 효과적이고 확장 가능하게 확장하는 최초의 LLM 기반 범용 저장 프로그램 컴퓨터 프레임워크인 L2MAC를 제시합니다. 특히 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 채널에서 공유하여 자신만의 멋진 애플리케이션을 여기에 업로드할 수 있기를 적극적으로 찾고 있습니다.