الريادة في أول إطار عمل عملي للحاسوب الآلي للبرامج المخزنة للأغراض العامة (هندسة فون نيومان) القائم على LLM في نظام متعدد الوكلاء قائم على LLM، لحل المهام المعقدة من خلال توليد مخرجات شاملة ومتسقة، غير مقيدة بقيود نافذة السياق الثابت لـ LLM .
؟ يمكن. 7 - 11، 2024: سنقدم L2MAC في المؤتمر الدولي لتمثيلات التعلم (ICLR) 2024. تعال وقابلنا في ICLR في فيينا بالنمسا! يرجى التواصل معي على sih31 (at) cam.ac.uk حتى نتمكن من الاجتماع، كما يتم قبول الاجتماعات الافتراضية أيضًا!
؟ أبريل. 23 فبراير 2024: L2MAC مفتوح المصدر بالكامل مع إصدار النسخة الأولية.
16 يناير 2024: تم قبول الورقة البحثية 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
؟ انضم إلى قناة الديسكورد الخاصة بنا! نتطلع إلى رؤيتك هناك! ؟
إذا كان لديك أي أسئلة أو تعليقات حول هذا المشروع، فلا تتردد في الاتصال بنا. نحن نقدر بشدة اقتراحاتكم!
سنرد على جميع الأسئلة خلال 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-Automatic Computer (L2MAC) لترميز قاعدة تعليمات برمجية كبيرة ومعقدة لتطبيق كامل بناءً على موجه مستخدم واحد . تظهر نتائج مهمة تصميم نظام إنشاء قاعدة التعليمات البرمجية النسبة المئوية للميزات الوظيفية المحددة التي تم تنفيذها بالكامل ( الميزات % )، وعدد الأخطاء النحوية في التعليمات البرمجية التي تم إنشاؤها ( # Errors )، وعدد أسطر التعليمات البرمجية ( LOC )، وعدد اجتياز الاختبارات ( تم اجتياز الاختبارات ). ينفذ L2MAC بشكل كامل أعلى نسبة من متطلبات ميزات المهام المحددة من قبل المستخدم عبر جميع المهام من خلال إنشاء تعليمات برمجية كاملة الوظائف تحتوي على الحد الأدنى من الأخطاء النحوية وعدد كبير من اجتياز اختبارات الوحدة التي تم إنشاؤها ذاتيًا، وبالتالي فهي أحدث ما توصلت إليه التكنولوجيا إنشاء قواعد تعليمات برمجية كبيرة للمخرجات، كما أنها قادرة على المنافسة بالمثل لإنشاء مهام مخرجات كبيرة. تم حساب متوسط النتائج على 10 بذور عشوائية.
يحقق LLM-Automatic Computer (L2MAC) أداءً قويًا وفقًا لمعيار ترميز HumanEval ويحتل حاليًا المرتبة الثالثة كأفضل وكيل ترميز للذكاء الاصطناعي في العالم على لوحة المتصدرين العالمية لمعايير صناعة الترميز الخاصة بـ HumanEval.
النسبة المئوية لمتطلبات الميزات المحددة من قبل المستخدم والتي يتم الاحتفاظ بها ضمن تعليمات مهمة الأساليب واستخدامها في السياق.
لاستكشاف ما إذا كانت الأساليب المقيسة أثناء التشغيل تحتوي على المعلومات في سياقها لإكمال المهمة مباشرة، قمنا بتكييف مقياس الميزات٪ الخاص بنا لحساب عدد متطلبات ميزات المهمة المحددة بواسطة المستخدم والتي يتم الاحتفاظ بها ضمن تعليمات مهمة الأساليب بدلاً من ذلك، على سبيل المثال، تلك التعليمات التي يتم إدخالها في النهاية إلى نافذة السياق الخاصة به أثناء تشغيله، كما هو موضح في الشكل أعلاه. من الناحية التجريبية، نلاحظ أن L2MAC قادر على الاحتفاظ بعدد كبير من متطلبات ميزات المهام المحددة من قبل المستخدم ضمن برنامجه الفوري وتنفيذ المهام طويلة الأمد الموجهة نحو التعليمات. نلاحظ أن AutoGPT يترجم أيضًا في البداية متطلبات ميزات المهمة المحددة من قبل المستخدم إلى تعليمات المهمة؛ ومع ذلك، فإنه يفعل ذلك مع ضغط أعلى، مما يؤدي إلى تكثيف المعلومات في مجرد وصف من ستة جمل. تؤدي هذه العملية إلى فقدان معلومات المهمة الهامة اللازمة لإكمال المهمة الإجمالية بشكل صحيح، بحيث تتماشى مع المهمة التفصيلية المحددة من قبل المستخدم.
خريطة الحرارة للوصول إلى الملفات. الإشارة إلى القراءة والكتابة ومتى يتم إنشاء الملفات في كل خطوة من خطوات عملية الكتابة خلال حلقة واحدة لمهمة تطبيق الدردشة عبر الإنترنت.
نود أن نفهم، أثناء عملية تنفيذ تعليمات المهمة، ما إذا كان بإمكان L2MAC فهم ملفات التعليمات البرمجية الحالية التي تم إنشاؤها داخل قاعدة التعليمات البرمجية --- والتي كان من الممكن إنشاؤها منذ العديد من التعليمات، ومن خلال فهمها، إنشاء ملفات جديدة تتفاعل مع الملفات الموجودة، والأهم من ذلك تحديث ملفات التعليمات البرمجية الموجودة عند تطبيق الميزات الجديدة. لاستخلاص المعرفة، قمنا برسم خريطة حرارية للقراءة والكتابة ومتى يتم إنشاء الملفات في كل خطوة من خطوات عملية الكتابة خلال حلقة واحدة في الشكل أعلاه. نلاحظ أن L2MAC لديه فهم للتعليمات البرمجية الحالية التي تم إنشاؤها مما يسمح له بتحديث ملفات التعليمات البرمجية الموجودة، حتى تلك التي تم إنشاؤها في الأصل منذ العديد من خطوات التعليمات، ويمكنه عرض الملفات عندما لا يكون متأكدًا وتحديث الملفات من خلال الكتابة إلى الملفات. في المقابل، غالبًا ما يكتب AutoGPT إلى الملفات مرة واحدة فقط، عند إنشائها في البداية، ويمكنه فقط تحديث الملفات التي يعرفها والتي تم الاحتفاظ بها داخل نافذة السياق الحالية. على الرغم من أنه يحتوي أيضًا على أداة قراءة الملفات، إلا أنه غالبًا ما ينسى الملفات التي قام بإنشائها منذ العديد من التكرارات نظرًا لأسلوب التعامل مع نافذة السياق الخاص به والذي يتمثل في تلخيص أقدم رسائل الحوار في نافذة السياق الخاصة به، أي الضغط المستمر مع فقدان التقدم السابق المحرز أثناء عملية إكمال المهمة.
(ب) عدد الأخطاء النحوية داخل قاعدة التعليمات البرمجية. (ج) رسوم بيانية مكدسة للنجاح والفشل في اختبارات الوحدة التي تم إنشاؤها ذاتيًا.
عند استخدام النموذج الاحتمالي (LLM) كمولد لإخراج التعليمات البرمجية، يمكن أن تحدث أخطاء بشكل طبيعي في مخرجاته. لذلك، نرغب في التحقق مما إذا كانت طرق قياس الأداء ذات الصلة، عند ظهور الأخطاء، يمكنها تصحيح خطأ قاعدة التعليمات البرمجية. نرسم عدد الأخطاء النحوية في قاعدة التعليمات البرمجية أثناء التشغيل حيث تحدث الأخطاء في الشكل (ب) أعلاه. نلاحظ أن L2MAC يمكنه تصحيح الخطأ بشكل صحيح في قاعدة التعليمات البرمجية التي تم إنشاؤها مسبقًا والتي تحتوي على أخطاء متضمنة، والتي قد تنشأ عن أخطاء نحوية من آخر ملف مكتوب أو ملفات أخرى تعتمد على أحدث ملف مكتوب، والتي تحتوي الآن على أخطاء. يقوم بذلك عن طريق تقديم مخرجات الخطأ عند ظهوره وتعديل قاعدة التعليمات البرمجية لحل الخطأ مع الاستمرار في إكمال التعليمات الحالية. في المقابل، لا يمكن لـ AutoGPT اكتشاف وقت حدوث خطأ في قاعدة التعليمات البرمجية واستمرار التشغيل، مما قد يؤدي إلى تفاقم عدد الأخطاء التي تتشكل داخل قاعدة التعليمات البرمجية.
علاوة على ذلك، يقوم L2MAC بإنشاء اختبارات الوحدة جنبًا إلى جنب مع التعليمات البرمجية الوظيفية ويستخدمها كمدقق أخطاء لفحص وظائف قاعدة التعليمات البرمجية أثناء إنشائها ويمكنه استخدام هذه الأخطاء لإصلاح قاعدة التعليمات البرمجية لاجتياز اختبارات الوحدة التي تفشل الآن بعد تحديث جزء من قاعدة بيانات موجودة. ملف. نعرض ذلك في الشكل (ج) أعلاه ونلاحظ أن AutoGPT، على الرغم من مطالبته أيضًا بكتابة اختبارات الوحدة لجميع التعليمات البرمجية التي تم إنشاؤها، غير قادر على استخدام هذه الاختبارات كفحص لخطأ التكامل، والذي يمكن أن يتفاقم بسبب ملاحظة أن AutoGPT ينسى أي منها الملفات التي أنشأها مسبقًا وبالتالي غير قادر على تعديل ملفات التعليمات البرمجية المنسية الموجودة عند إجراء تعديلات جديدة، مما يؤدي إلى ملفات تعليمات برمجية غير متوافقة.
نقدم L2MAC، أول إطار عمل حاسوبي للبرامج المخزنة للأغراض العامة قائم على LLM والذي يعمل على تعزيز LLMs بشكل فعال وقابل للتطوير من خلال مخزن ذاكرة لمهام توليد المخرجات الطويلة حيث لم يتم تحقيق ذلك بنجاح من قبل. على وجه التحديد، فإن L2MAC، عند تطبيقه لمهام إنشاء التعليمات البرمجية الطويلة، يتفوق على الحلول الحالية - وهو أداة مفيدة للغاية للتطوير السريع. نحن نرحب بالمساهمات ونشجعك على استخدام المشروع والاستشهاد به. انقر هنا للبدء.
نقوم بتضمين معرض لأمثلة التطبيقات التي تم إنتاجها بالكامل بواسطة LLM Automatic Computer (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."
، ستحصل على قاعدة بيانات كاملة للعبة قابلة للعب بالكامل، كما هو موضح هنا.
انقر هنا للحصول على الملفات الكاملة على جيثب أو قم بتنزيلها هنا. الكود والمطالبة بإنشاء هذا موجود هنا.
انقر هنا للحصول على الملفات الكاملة على جيثب أو قم بتنزيلها هنا. الكود والمطالبة بإنشاء هذا موجود هنا.
ما عليك سوى إعطاء 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.
الملفات النصية الكاملة للإخراج موجودة على جيثب؛ يمكنك تنزيلها هنا. الكود والمطالبة بإنشاء هذا موجود هنا.
انقر هنا للحصول على الملفات الكاملة على جيثب أو قم بتنزيلها هنا. الكود والمطالبة بإنشاء هذا موجود هنا.
نحن نبحث عنك بنشاط لتحميل تطبيقاتك الرائعة هنا عن طريق إرسال PR مع التطبيق الذي قمت بتقديمه، أو مشاركته مع مشكلة GitHub، أو مشاركته على قناة Discord.