Possono i modelli di linguaggio sostituire i programmatori? Ricercatori di Princeton e dell’Università di Chicago introducono SWE-bench un framework di valutazione che testa modelli di apprendimento automatico nella risoluzione di problemi reali tratti da

Possiamo affidarci ai modelli di linguaggio per sostituire i programmatori? SWE-bench il framework di valutazione sviluppato dai ricercatori di Princeton e dell'Università di Chicago per testare l'efficacia dei modelli di apprendimento automatico nella soluzione di problemi reali

Valutare la competenza dei modelli di linguaggio nell’affrontare sfide ingegneristiche del mondo reale è essenziale per il loro progresso. Entra in gioco SWE-bench, un innovativo framework di valutazione che impiega le issue e le pull requests dei repository Python di GitHub per valutare l’abilità di questi modelli nel gestire compiti di codifica e problem-solving. Sorprendentemente, i risultati rivelano che anche i modelli più avanzati riescono ad affrontare solo le problematiche più semplici. Ciò sottolinea la necessità impellente di ulteriori progressi nei modelli di linguaggio per consentire soluzioni pratiche ed intelligenti nell’ingegneria del software.

Pur essendoci framework di valutazione precedentemente introdotti per i modelli di linguaggio, spesso necessitano di maggiore versatilità e affrontano la complessità dei compiti dell’ingegneria del software reale. In particolare, i benchmark esistenti per la generazione di codice devono catturare la complessità di queste sfide. Il framework SWE-bench, sviluppato da ricercatori dell’Università di Princeton e dell’Università di Chicago, si distingue concentrandosi su problematiche di ingegneria del software del mondo reale, come la generazione di patch e il ragionamento sul contesto complesso, offrendo una valutazione più realistica e completa per migliorare i modelli di linguaggio con le capacità dell’ingegneria del software. Ciò è particolarmente rilevante nel campo dell’apprendimento automatico per l’ingegneria del software.

Visto che i modelli di linguaggio (LM) sono ampiamente utilizzati nelle applicazioni commerciali, diventa evidente la necessità di benchmark robusti per valutarne le capacità. I benchmark esistenti devono essere rivisti con LMs complessi e compiti del mondo reale. I compiti di ingegneria del software offrono una sfida avvincente con la loro complessità e verificabilità tramite test unitari. SWE-bench sfrutta le issue e le soluzioni di GitHub per creare un benchmark pratico per valutare i LMs in un contesto di ingegneria del software, promuovendo l’applicabilità nel mondo reale e gli aggiornamenti continui.

La loro ricerca include 2.294 problemi di ingegneria del software del mondo reale provenienti da GitHub. I LMs modificano le basi di codice per risolvere le problematiche relative a funzioni, classi e file. Gli input del modello includono istruzioni sul compito, testo della problematica, file recuperati, patch di esempio e un prompt. Le prestazioni del modello sono valutate in due impostazioni di contesto: recupero sparso e recupero oracle.

I risultati della valutazione indicano che anche i modelli all’avanguardia come Claude 2 e GPT-4 faticano a risolvere problemi di ingegneria del software del mondo reale, ottenendo tassi di successo fino al 4,8% e all’1,7%, anche con i migliori metodi di recupero del contesto. I loro modelli performano peggio quando si tratta di questioni da contesti più lunghi e mostrano sensibilità alle variazioni del contesto. I loro modelli tendono a generare file di patch più brevi e meno ben formattati, evidenziando le difficoltà nel gestire compiti complessi legati al codice.

Man mano che i LMs avanzano, l’articolo sottolinea la necessità critica della loro valutazione completa in scenari pratici e del mondo reale. Il framework di valutazione, SWE-bench, funge da banco di prova sfidante e realistico per valutare le capacità dei LMs di prossima generazione nel contesto dell’ingegneria del software. I risultati della valutazione rivelano le limitazioni attuali anche dei LMs all’avanguardia nell’affrontare complesse sfide di ingegneria del software. I loro contributi sottolineano la necessità di sviluppare LMs più pratici, intelligenti e autonomi.

I ricercatori propongono diverse strade per sviluppare il framework di valutazione SWE-bench. La loro ricerca suggerisce di ampliare il benchmark con una gamma più ampia di problemi di ingegneria del software. Esplorare tecniche avanzate di recupero e approcci di apprendimento multi-modali può migliorare le prestazioni dei modelli di linguaggio. Risolvere le limitazioni nella comprensione dei cambiamenti complessi del codice e migliorare la generazione di file di patch ben formattati sono evidenziati come importanti aree di esplorazione futura. Questi passi mirano a creare un framework di valutazione più completo ed efficace per i modelli di linguaggio in scenari di ingegneria del software del mondo reale.