ChatPaper.aiChatPaper

Desmitificando la Autorreparación de GPT para la Generación de Código

Demystifying GPT Self-Repair for Code Generation

June 16, 2023
Autores: Theo X. Olausson, Jeevana Priya Inala, Chenglong Wang, Jianfeng Gao, Armando Solar-Lezama
cs.AI

Resumen

Los Modelos de Lenguaje de Gran Escala (LLMs, por sus siglas en inglés) han demostrado una notable aptitud en la generación de código, pero aún enfrentan dificultades en tareas de programación desafiantes. La autorreparación —en la que el modelo depura y corrige errores en su propio código— se ha convertido recientemente en un enfoque popular para mejorar el rendimiento en estos escenarios. Sin embargo, existen estudios muy limitados en la literatura sobre cómo y cuándo la autorreparación funciona de manera efectiva, y uno podría preguntarse hasta qué punto un modelo es realmente capaz de proporcionar retroalimentación precisa sobre por qué el código está incorrecto cuando ese código fue generado por el mismo modelo. En este artículo, analizamos la capacidad de GPT-3.5 y GPT-4 para realizar autorreparación en APPS, un conjunto de datos desafiante que consiste en diversos problemas de programación. Para ello, primero establecemos una nueva estrategia de evaluación denominada pass@t, que mide la tasa de aprobación de las tareas en relación con el número total de tokens muestreados del modelo, permitiendo una comparación justa con enfoques basados únicamente en muestreo. Con esta estrategia de evaluación, encontramos que la efectividad de la autorreparación solo se observa en GPT-4. También observamos que la autorreparación está limitada por la etapa de retroalimentación; al utilizar GPT-4 para proporcionar retroalimentación sobre los programas generados por GPT-3.5 y al emplear programadores humanos expertos para dar retroalimentación sobre los programas generados por GPT-4, desbloqueamos mejoras significativas en el rendimiento.
English
Large Language Models (LLMs) have shown remarkable aptitude in code generation but still struggle on challenging programming tasks. Self-repair -- in which the model debugs and fixes mistakes in its own code -- has recently become a popular way to boost performance in these settings. However, only very limited studies on how and when self-repair works effectively exist in the literature, and one might wonder to what extent a model is really capable of providing accurate feedback on why the code is wrong when that code was generated by the same model. In this paper, we analyze GPT-3.5 and GPT-4's ability to perform self-repair on APPS, a challenging dataset consisting of diverse coding challenges. To do so, we first establish a new evaluation strategy dubbed pass@t that measures the pass rate of the tasks against the total number of tokens sampled from the model, enabling a fair comparison to purely sampling-based approaches. With this evaluation strategy, we find that the effectiveness of self-repair is only seen in GPT-4. We also observe that self-repair is bottlenecked by the feedback stage; using GPT-4 to give feedback on the programs generated by GPT-3.5 and using expert human programmers to give feedback on the programs generated by GPT-4, we unlock significant performance gains.
PDF191December 15, 2024