LLM ベースのマルチエージェント システムにおける初の実用的な LLM ベースの汎用ストアド プログラム自動コンピュータ (フォン ノイマン アーキテクチャ) フレームワークの先駆者であり、LLM の固定コンテキスト ウィンドウの制約に制限されず、広範囲かつ一貫した出力を生成することで複雑なタスクを解決します。 。
? 5月。 2024 年 7 日から 11 日まで: 2024 年学習表現国際会議 (ICLR) で L2MAC について発表します。オーストリア、ウィーンの ICLR にぜひお越しください。 sih31 (at) cam.ac.uk までご連絡ください。お会いできます。バーチャル会議も受け付けています。
? 4月。 2024 年 23 日: L2MAC が完全にオープンソース化され、初期バージョンがリリースされました。
2024 年 1 月 16 日: 論文「L2MAC: 拡張コード生成のための大規模言語モデル自動コンピューター」が ICLR 2024 での発表に受理されました。
単一のユーザー プロンプトに基づいてアプリケーション全体の大規模で複雑なコードベースをコーディングするための LLM-Automatic Computer (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 営業日以内に回答させていただきます。
最新の研究開発の最新情報を入手するには、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-Automatic Computer (L2MAC) インスタンス化。コードベース生成システム設計タスクの結果。完全に実装されている指定された機能機能の割合 ( features % )、生成されたコード内の構文エラーの数 ( # Errors )、コードの行数 ( LOC )、およびテストに合格しました ( Tests Passed )。 L2MAC は、構文エラーが最小限に抑えられ、多数の自己生成単体テストに合格する完全に機能するコードを生成することにより、すべてのタスクにわたってユーザー指定のタスク機能要件を最も高い割合で完全に実装します。そのため、L2MAC は、大規模な出力コードベースの生成、および同様に大規模な出力タスクの生成でも競争力があります。結果は 10 個のランダムなシードにわたって平均されます。
LLM-Automatic Computer (L2MAC) は、HumanEval コーディング ベンチマークで優れたパフォーマンスを達成し、現在、HumanEval のグローバル コーディング業界標準リーダーボードで世界で 3 番目に優れた AI コーディング エージェントにランクされています。
メソッドタスクの指示内に保持され、コンテキスト内で使用されるユーザー指定の機能要件の割合。
動作中にベンチマークされたメソッドに、タスクを直接完了するためのコンテキスト内の情報が含まれているかどうかを調査するために、機能 %メトリクスを調整して、代わりにメソッド タスクの指示内に保持されるユーザー指定のタスク機能要件の数をカウントしました。上の図に示すように、操作中に最終的にコンテキスト ウィンドウに入力される命令。経験的に、L2MAC はプロンプト プログラム内でユーザー指定のタスク機能要件を多数保持し、命令指向の長時間実行タスクを実行できることが観察されています。 AutoGPT は、ユーザー指定のタスク機能要件を最初にタスク指示に変換することにも注意してください。ただし、圧縮率は高く、情報がわずか 6 文の説明に凝縮されます。このプロセスにより、ユーザーが指定した詳細なタスクと一致するように、タスク全体を正しく完了するために必要な重要なタスク情報が失われます。
ファイルアクセスのヒートマップ。オンライン チャット アプリ タスクの 1 エピソード中の各書き込み操作ステップでの読み取り、書き込み、およびファイルの作成時期を示します。
私たちは、タスク命令を実行する操作中に、L2MAC がコードベース内に生成された既存のコード ファイルを理解できるかどうかを理解したいと考えています。このコード ファイルは、何命令も前に作成された可能性があり、その理解を通じて、タスク命令と相互に関連する新しいファイルを作成することができます。既存のファイルを更新し、最も重要なことは、新しい機能が実装されると既存のコード ファイルを更新することです。洞察を得るために、上の図では、読み取り、書き込み、および 1 つのエピソード中の各書き込み操作ステップでファイルが作成されたときのヒートマップをプロットします。 L2MAC は、生成された既存のコードを理解しているため、既存のコード ファイル (最初に多くの命令ステップ前に作成されたものであっても) を更新でき、ファイルが不確実な場合はファイルを表示し、ファイルへの書き込みを通じてファイルを更新できることがわかります。対照的に、AutoGPT は多くの場合、最初にファイルを作成するときに一度だけファイルに書き込み、現在のコンテキスト ウィンドウ内に保持されている既知のファイルのみを更新できます。ファイル読み取りツールもありますが、コンテキスト ウィンドウ内の最も古いダイアログ メッセージを要約するコンテキスト ウィンドウ処理アプローチ、つまり以前の進行状況を継続的に非可逆圧縮するため、何度も繰り返して作成したファイルのことを忘れてしまうことがよくあります。タスクを完了する操作中。
(b)コードベース内の構文エラーの数。 (c)自己生成された単体テストの合格および不合格の積み上げヒストグラム。
コードを出力するジェネレーターとして確率モデル (LLM) を使用すると、当然のことながら、その出力でエラーが発生する可能性があります。したがって、エラーが発生した場合に、それぞれのベンチマーク方法でコードベースのエラーを修正できるかどうかを確認したいと考えています。上の図 (b)では、実行中にエラーが発生したコードベース内の構文エラーの数をプロットしています。 L2MAC は、エラーが含まれている以前に生成されたコードベースを正しくエラー修正できることがわかります。このコードベースは、最後に書き込まれたファイルの構文エラー、または現在エラーが含まれている、最後に書き込まれたファイルに依存するその他のファイルから発生する可能性があります。これは、エラーが発生したときにエラー出力が表示され、現在の命令を完了しながらエラーを解決するためにコードベースを変更することによって行われます。対照的に、AutoGPT はコードベース内でエラーが発生したことを検出できず、動作を継続するため、コードベース内で形成されるエラーの数が増加する可能性があります。
さらに、L2MAC は機能コードと一緒に単体テストを生成し、生成時にコードベースの機能を検査するためのエラー チェッカーとして使用します。また、これらのエラーを使用してコードベースを修正し、既存のコードの一部を更新した後に失敗する単体テストに合格することができます。ファイル。これを上の図 (c)に示します。また、AutoGPT は、生成されたすべてのコードの単体テストを記述するように求められているにもかかわらず、これらのテストを整合性エラー チェックとして使用できないことがわかります。これは、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 チャネルで共有したりして、独自の素晴らしいアプリケーションをここにアップロードすることを積極的に探しています。