ChatPaper.aiChatPaper

Demistificare l'auto-riparazione di GPT per la generazione di codice

Demystifying GPT Self-Repair for Code Generation

June 16, 2023
Autori: Theo X. Olausson, Jeevana Priya Inala, Chenglong Wang, Jianfeng Gao, Armando Solar-Lezama
cs.AI

Abstract

I modelli linguistici di grandi dimensioni (LLM) hanno dimostrato una notevole abilità nella generazione di codice, ma continuano a incontrare difficoltà in compiti di programmazione complessi. L'autoriparazione -- in cui il modello individua e corregge gli errori nel proprio codice -- è recentemente diventata un metodo popolare per migliorare le prestazioni in questi contesti. Tuttavia, nella letteratura esistono solo studi molto limitati su come e quando l'autoriparazione funziona efficacemente, e ci si potrebbe chiedere fino a che punto un modello sia realmente in grado di fornire un feedback accurato sul motivo per cui il codice è errato quando quel codice è stato generato dallo stesso modello. In questo articolo, analizziamo la capacità di GPT-3.5 e GPT-4 di eseguire l'autoriparazione su APPS, un dataset impegnativo composto da una varietà di problemi di programmazione. A tal fine, stabiliamo una nuova strategia di valutazione denominata pass@t che misura il tasso di successo dei compiti rispetto al numero totale di token campionati dal modello, consentendo un confronto equo con approcci basati esclusivamente sul campionamento. Con questa strategia di valutazione, scopriamo che l'efficacia dell'autoriparazione è visibile solo in GPT-4. Osserviamo inoltre che l'autoriparazione è limitata dalla fase di feedback; utilizzando GPT-4 per fornire feedback sui programmi generati da GPT-3.5 e utilizzando programmatori umani esperti per fornire feedback sui programmi generati da GPT-4, otteniamo significativi miglioramenti delle prestazioni.
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