ChatPaper.aiChatPaper

Desmistificando a Autorreparação do GPT para Geração 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

Resumo

Os Modelos de Linguagem de Grande Escala (LLMs, na sigla em inglês) demonstraram uma aptidão notável na geração de código, mas ainda enfrentam dificuldades em tarefas de programação desafiadoras. O autorreparo -- no qual o modelo depura e corrige erros em seu próprio código -- tornou-se recentemente uma abordagem popular para impulsionar o desempenho nesses cenários. No entanto, existem apenas estudos muito limitados na literatura sobre como e quando o autorreparo funciona de forma eficaz, e pode-se questionar até que ponto um modelo é realmente capaz de fornecer feedback preciso sobre por que o código está errado quando esse código foi gerado pelo mesmo modelo. Neste artigo, analisamos a capacidade do GPT-3.5 e do GPT-4 de realizar autorreparo no APPS, um conjunto de dados desafiador composto por diversos problemas de codificação. Para isso, primeiro estabelecemos uma nova estratégia de avaliação chamada pass@t, que mede a taxa de acerto das tarefas em relação ao número total de tokens amostrados do modelo, permitindo uma comparação justa com abordagens baseadas exclusivamente em amostragem. Com essa estratégia de avaliação, descobrimos que a eficácia do autorreparo só é observada no GPT-4. Também observamos que o autorreparo é limitado pela etapa de feedback; ao usar o GPT-4 para fornecer feedback sobre os programas gerados pelo GPT-3.5 e ao usar programadores humanos especializados para fornecer feedback sobre os programas gerados pelo GPT-4, desbloqueamos ganhos significativos de desempenho.
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