Migliorare il Codice Generato dagli LLM tramite Genetic Improvement: Un Riepilogo dei Recenti Avanzamenti

Abstract Questo articolo, presentato a Ital-IA 2025, fornisce un riepilogo completo del nostro programma di ricerca sull’applicazione del Genetic Improvement al codice generato dagli LLM, estendendo due studi pubblicati (EuroGP 2024 e SN Computer Science 2025). La scoperta centrale attraverso entrambi i lavori è che gli approcci neurali ed evolutivi sono complementari: gli LLM eccellono nella generazione rapida di codice plausibile, mentre il Genetic Improvement eccelle nel raffinamento sistematico verso specifiche precise. L’effetto “amplificatore di capacità” — dove i modelli più piccoli e open-source beneficiano in modo più drammatico dal raffinamento evolutivo — suggerisce che il GI può contribuire a ridurre il divario tra modelli piccoli e grandi. Discutiamo inoltre le limitazioni chiave, tra cui la dipendenza dall’oracolo, la scalabilità a progetti multi-file, il bias della grammatica ereditato dall’output dell’LLM e la mancanza di garanzie formali inerente alla ricerca stocastica. Pubblicato a Ital-IA 2025, Roma. Introduzione L’intersezione tra Large Language Models e calcolo evolutivo rappresenta una delle frontiere più promettenti nell’ingegneria del software automatizzata. Negli ultimi due anni, il nostro gruppo di ricerca ha sviluppato e raffinato una metodologia per migliorare sistematicamente il codice generato dagli LLM utilizzando tecniche di Genetic Improvement (GI). Questo articolo, presentato a Ital-IA 2025 (la 5ª Conferenza Nazionale sull’Intelligenza Artificiale, organizzata dal CINI), fornisce un riepilogo completo di questo programma di ricerca e delle sue scoperte chiave. ...

giugno 23, 2025 · 5 minuti · Giovanni Pinna

E se smettessimo di chiedere a ChatGPT di correggere il proprio codice?

TL;DR Gli LLM scrivono codice che quasi funziona. Il rimedio classico è chiedere di nuovo — la “self-correction” — ma tende a ripetere gli stessi errori. Noi abbiamo seguito una strada diversa: trattare il codice buggato come un seme e farlo evolvere. Usando l’Evoluzione Grammaticale con una grammatica costruita al volo dall’output stesso dell’LLM, abbiamo migliorato il codice di GPT-4, ChatGPT, LLaMA-2, Alpaca-13B e Alpaca-7B su 25 problemi PSB2 — con guadagni statisticamente significativi (p < 0.001) per ogni modello. Più piccolo il modello, maggiore il guadagno. La trappola della self-correction Chiedi a un qualsiasi LLM moderno di scrivere una funzione Python e otterrai qualcosa che sembra giusta. Esegui i test e spesso scoprirai che non lo è. ...

aprile 3, 2024 · 5 minuti · Giovanni Pinna