Demystificatie van GPT Zelfherstel voor Codegeneratie
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
Samenvatting
Grote Taalmodellen (LLMs) hebben een opmerkelijke vaardigheid getoond in codegeneratie, maar worstelen nog steeds met uitdagende programmeertaken. Zelfreparatie – waarbij het model fouten in zijn eigen code opspoort en corrigeert – is recentelijk een populaire methode geworden om de prestaties in deze contexten te verbeteren. Er bestaan echter slechts zeer beperkte studies in de literatuur over hoe en wanneer zelfreparatie effectief werkt, en men kan zich afvragen in hoeverre een model daadwerkelijk in staat is om accurate feedback te geven over waarom de code fout is, wanneer die code door hetzelfde model is gegenereerd. In dit artikel analyseren we het vermogen van GPT-3.5 en GPT-4 om zelfreparatie uit te voeren op APPS, een uitdagende dataset die bestaat uit diverse programmeeruitdagingen. Hiervoor introduceren we eerst een nieuwe evaluatiestrategie genaamd pass@t, die het slagingspercentage van de taken meet tegenover het totale aantal tokens dat uit het model is gesamplet, waardoor een eerlijke vergelijking met puur op sampling gebaseerde benaderingen mogelijk wordt. Met deze evaluatiestrategie ontdekken we dat de effectiviteit van zelfreparatie alleen wordt waargenomen bij GPT-4. We merken ook op dat zelfreparatie wordt beperkt door de feedbackfase; door GPT-4 te gebruiken om feedback te geven op de programma's gegenereerd door GPT-3.5 en door ervaren menselijke programmeurs feedback te laten geven op de programma's gegenereerd door GPT-4, behalen we aanzienlijke prestatieverbeteringen.
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.