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.