Démystification de l'auto-réparation GPT pour la génération de code
Demystifying GPT Self-Repair for Code Generation
June 16, 2023
Auteurs: Theo X. Olausson, Jeevana Priya Inala, Chenglong Wang, Jianfeng Gao, Armando Solar-Lezama
cs.AI
Résumé
Les grands modèles de langage (LLMs) ont démontré une aptitude remarquable en génération de code, mais peinent encore sur des tâches de programmation complexes. L'auto-réparation -- où le modèle débogue et corrige les erreurs dans son propre code -- est récemment devenue une méthode populaire pour améliorer les performances dans ces contextes. Cependant, la littérature ne contient que des études très limitées sur comment et quand l'auto-réparation fonctionne efficacement, et on peut se demander dans quelle mesure un modèle est réellement capable de fournir un retour d'information précis sur pourquoi le code est erroné lorsque ce code a été généré par le même modèle. Dans cet article, nous analysons la capacité de GPT-3.5 et GPT-4 à effectuer de l'auto-réparation sur APPS, un ensemble de données complexe composé de défis de codage variés. Pour ce faire, nous établissons d'abord une nouvelle stratégie d'évaluation appelée pass@t qui mesure le taux de réussite des tâches par rapport au nombre total de tokens échantillonnés à partir du modèle, permettant une comparaison équitable avec les approches basées uniquement sur l'échantillonnage. Avec cette stratégie d'évaluation, nous constatons que l'efficacité de l'auto-réparation n'est observée qu'avec GPT-4. Nous observons également que l'auto-réparation est limitée par l'étape de retour d'information ; en utilisant GPT-4 pour fournir un retour sur les programmes générés par GPT-3.5 et en utilisant des programmeurs humains experts pour fournir un retour sur les programmes générés par GPT-4, nous débloquons des gains de performance significatifs.
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.