Entmystifizierung der GPT-Selbstreparatur für die Code-Generierung
Demystifying GPT Self-Repair for Code Generation
June 16, 2023
Autoren: Theo X. Olausson, Jeevana Priya Inala, Chenglong Wang, Jianfeng Gao, Armando Solar-Lezama
cs.AI
Zusammenfassung
Große Sprachmodelle (LLMs) haben eine bemerkenswerte Fähigkeit zur Codegeneration gezeigt, kämpfen jedoch immer noch mit anspruchsvollen Programmieraufgaben. Selbstreparatur – bei der das Modell Fehler in seinem eigenen Code debuggt und behebt – ist in letzter Zeit zu einer beliebten Methode geworden, um die Leistung in diesen Kontexten zu steigern. Es gibt jedoch nur sehr begrenzte Studien in der Literatur, die untersuchen, wie und wann Selbstreparatur effektiv funktioniert, und man könnte sich fragen, inwieweit ein Modell wirklich in der Lage ist, genaue Rückmeldungen darüber zu geben, warum der Code fehlerhaft ist, wenn dieser Code vom gleichen Modell generiert wurde. In diesem Artikel analysieren wir die Fähigkeit von GPT-3.5 und GPT-4, Selbstreparatur auf APPS durchzuführen, einem anspruchsvollen Datensatz, der aus diversen Programmierherausforderungen besteht. Dazu entwickeln wir zunächst eine neue Bewertungsstrategie namens pass@t, die die Erfolgsrate der Aufgaben im Verhältnis zur Gesamtzahl der vom Modell generierten Tokens misst und so einen fairen Vergleich zu rein stichprobenbasierten Ansätzen ermöglicht. Mit dieser Bewertungsstrategie stellen wir fest, dass die Wirksamkeit der Selbstreparatur nur bei GPT-4 zu beobachten ist. Wir beobachten auch, dass die Selbstreparatur durch die Feedback-Phase begrenzt wird; durch die Verwendung von GPT-4, um Feedback zu den von GPT-3.5 generierten Programmen zu geben, und durch die Verwendung von erfahrenen menschlichen Programmierern, um Feedback zu den von GPT-4 generierten Programmen zu geben, erzielen wir signifikante Leistungssteigerungen.
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.