Rendere davvero intelligente la pipeline LLM-più-evoluzione

TL;DR Il nostro lavoro a EuroGP 2024 ha mostrato che il Genetic Improvement (GI) può salvare il codice generato da LLM. Questo seguito rende più intelligente la parte GI in sé. Tre upgrade: selezione lexicase per tenere vivi gli specialisti, down-sampling al 10% per ridurre il compute, e una funzione di fitness raffinata (F_E) che dà credito parziale anziché pass/fail. Su quattro LLM (GPT-4, ChatGPT, Code Llama 7B, LLaMA 3 8B) e tre problemi PSB2, abbiamo migliorato 11 combinazioni modello-problema su 12. I modelli più piccoli guadagnano di più. Il GI è, sempre più, un amplificatore di capacità per modelli economici. Cosa avevamo lasciato sul tavolo l’ultima volta Il paper di EuroGP 2024 ha dimostrato l’idea base: prendi la prima bozza buggata di un LLM, passala alla Grammatical Evolution, ricevi codice migliore. Guadagni statisticamente significativi su ogni modello. ...

luglio 1, 2025 · 6 minuti · Giovanni Pinna

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