Published January 1, 2023 | Version v1
Publication Open

Self-Edit: Fault-Aware Code Editor for Code Generation

  • 1. Peking University

Description

Large language models (LLMs) have demonstrated an impressive ability to generate codes on competitive programming tasks.However, with limited sample numbers, LLMs still suffer from poor accuracy.Inspired by the process of human programming, we propose a generateand-edit approach named Self-Edit that utilizes execution results of the generated code from LLMs to improve the code quality on the competitive programming task.We execute the generated code on the example test case provided in the question and wrap execution results into a supplementary comment.Utilizing this comment as guidance, our fault-aware code editor is employed to correct errors in the generated code.We perform extensive evaluations across two competitive programming datasets with nine different LLMs.Compared to directly generating from LLMs, our approach can improve the average of pass@1 by 89% on APPS-dev, 31% on APPS-test, and 48% on HumanEval over nine popular code generation LLMs with parameter sizes ranging from 110M to 175B.Compared to other post-processing methods, our method demonstrates superior accuracy and efficiency.

⚠️ This is an automatic machine translation with an accuracy of 90-95%

Translated Description (Arabic)

أظهرت نماذج اللغات الكبيرة (LLMs) قدرة مثيرة للإعجاب على توليد رموز على مهام البرمجة التنافسية. ومع ذلك، مع وجود عدد محدود من العينات، لا تزال LLMs تعاني من ضعف الدقة. مستوحاة من عملية البرمجة البشرية، نقترح نهجًا للتوليد والتحرير يسمى التحرير الذاتي يستخدم نتائج تنفيذ التعليمات البرمجية التي تم إنشاؤها من LLMs لتحسين جودة التعليمات البرمجية في مهمة البرمجة التنافسية. نقوم بتنفيذ التعليمات البرمجية التي تم إنشاؤها على مثال حالة الاختبار المقدمة في السؤال ونغلف نتائج التنفيذ في تعليق تكميلي. باستخدام هذا التعليق كتوجيه، يتم استخدام محرر التعليمات البرمجية الذي يدرك الخطأ لتصحيح الأخطاء في التعليمات البرمجية التي تم إنشاؤها. نقوم بإجراء تقييمات واسعة عبر مجموعتين من بيانات البرمجة التنافسية مع تسع LLMs مختلفة. مقارنة بالتوليد المباشر من LLMs، يمكن لنهجنا تحسين متوسط النجاح@1 بنسبة 89 ٪ على APPS - dev، و 31 ٪ على APPS - test، و 48 ٪ على HumanEval على تسعة LLMs جيل من التعليمات البرمجية الشائعة مع أحجام المعلمات تتراوح من 110 إلى 175B. مقارنة بالتوليد مباشرة من LLMs، يوضح طرقنا الأخرى الكفاءة والكفاءة العالية.

Translated Description (French)

Les grands modèles linguistiques (LLM) ont démontré une capacité impressionnante à générer des codes sur des tâches de programmation concurrentielles. Cependant, avec des échantillons limités, les LLM souffrent toujours d'une faible précision. Inspirés par le processus de programmation humaine, nous proposons une approche de génération et d'édition appelée Self-Edit qui utilise les résultats d'exécution du code généré par les LLM pour améliorer la qualité du code sur la tâche de programmation concurrentielle. Nous exécutons le code généré sur l'exemple de test fourni dans la question et enveloppons les résultats d'exécution dans un commentaire supplémentaire. En utilisant ce commentaire comme guide, notre éditeur de code conscient des pannes est utilisé pour corriger les erreurs dans le code généré. Nous effectuons des évaluations approfondies sur deux ensembles de données de programmation concurrentiels avec neuf LLM différents. Comparée à la génération directe à partir des LLM, notre approche peut améliorer la moyenne de Pass@1 de 89% sur APPS-dev, 31% sur APPS-test et 48% sur HumanEval sur neuf LLM de génération de code populaires avec des tailles de paramètres allant de 110M à 175B. Comparée à d'autres méthodes de post-traitement, notre méthode démontre une précision et une efficacité supérieures.

Translated Description (Spanish)

Los modelos de lenguaje grandes (LLM) han demostrado una capacidad impresionante para generar códigos en tareas de programación competitivas. Sin embargo, con números de muestra limitados, los LLM todavía sufren de poca precisión. Inspirados por el proceso de programación humana, proponemos un enfoque de generación y edición llamado Autoedición que utiliza los resultados de ejecución del código generado de los LLM para mejorar la calidad del código en la tarea de programación competitiva. Ejecutamos el código generado en el caso de prueba de ejemplo proporcionado en la pregunta y envolvemos los resultados de ejecución en un comentario complementario. Utilizando este comentario como guía, nuestro editor de código consciente de fallos se emplea para corregir errores en el código generado. Realizamos evaluaciones exhaustivas en dos conjuntos de datos de programación competitiva con nueve LLM diferentes. Comparados con la generación directa de LLM, nuestro enfoque puede mejorar el promedio de aprobación@1 en un 89% en APPS-dev, un 31% en la prueba APPS y un 48% en HumanE en nueve LLM de generación de código populares con tamaños de parámetros que van desde 110M a 175B. Comparado con otros métodos de procesamiento posterior, nuestro método demuestra precisión y eficiencia.

Files

2023.acl-long.45.pdf.pdf

Files (1.1 MB)

⚠️ Please wait a few minutes before your translated files are ready ⚠️ Note: Some files might be protected thus translations might not work.
Name Size Download all
md5:d49ecb361ecd425a6b6f35e670ba021b
1.1 MB
Preview Download

Additional details

Additional titles

Translated title (Arabic)
التحرير الذاتي: محرر تعليمات برمجية مدرك للخطأ لإنشاء التعليمات البرمجية
Translated title (French)
Auto-édition : Éditeur de code tenant compte des pannes pour la génération de code
Translated title (Spanish)
Autoedición: Editor de código consciente de fallos para la generación de código

Identifiers

Other
https://openalex.org/W4385572345
DOI
10.18653/v1/2023.acl-long.45

GreSIS Basics Section

Is Global South Knowledge
Yes
Country
China

References

  • https://openalex.org/W4205131770
  • https://openalex.org/W4212939303
  • https://openalex.org/W4224060952
  • https://openalex.org/W4224925096
  • https://openalex.org/W4226485558
  • https://openalex.org/W4281763794
  • https://openalex.org/W4286750487
  • https://openalex.org/W4291238279
  • https://openalex.org/W4310514998