Negli ultimi anni, i Large Language Models (LLM) hanno fatto passi da gigante nella risoluzione di problemi informatici complessi, dimostrando capacità sempre più sofisticate nella programmazione e nell’automazione di attività tecniche. Tuttavia, una delle sfide aperte riguarda la loro reale efficacia nell’affrontare compiti di ingegneria del software “nel mondo reale”. Per rispondere a questa domanda, un gruppo di ingegneri OpenAI ha presentato SWE-Lancer, un benchmark innovativo progettato per testare le capacità dei LLM su problemi pratici di sviluppo software, tratti direttamente dal mercato del lavoro.
In un altro articolo abbiamo spiegato come sia possibile usare i chatbot per sviluppare software nonché per individuare e correggere bug. Abbiamo anche parlato delle recenti evoluzioni di GitHub Copilot che introduce la Modalità Agente e diventa in grado di intervenire direttamente sul codice di programmazione.
Cos’è SWE-Lancer, soluzione per valutare le abilità di programmazione dei modelli AI
Il benchmark sviluppato da OpenAI si chiama SWE-Lancer ed è costruito su quasi 1.500 task reali di ingegneria del software pubblicati su Upwork, una delle principali piattaforme per il lavoro freelance. Su Upwork vari committenti richiedono la risoluzione di problematiche specifiche e gli sviluppatori indipendenti possono candidarsi per gestirle e risolverle.
Il valore complessivo dei task considerati da SWE-Lancer ammonta a 1 milione di dollari in pagamenti reali, offrendo così un quadro concreto della difficoltà e della remunerazione di ciascun compito.
SWE-Lancer è strutturato per valutare le capacità di modelli AI avanzati, come GPT-4o, Claude 3.5 Sonnet e altri, nella risoluzione di problemi di software engineering. Si differenzia inoltre dagli altri benchmark esistenti grazie alla sua attenzione all’applicabilità pratica e all’uso di test end-to-end per la valutazione delle soluzioni proposte.
Obiettivi e finalità
L’introduzione di SWE-Lancer mira a rispondere a domande fondamentali sull’automazione dell’ingegneria del software e sulle implicazioni economiche dell’AI nel settore. Nello specifico, il benchmark consente di:
- Misurare la capacità dei LLM di risolvere problemi reali, mettendoli alla prova su task con una complessità che varia da semplici correzioni di bug a implementazioni di funzionalità avanzate.
- Quantificare l’impatto economico dell’AI nell’industria del software, valutando quanto bene un modello può effettivamente completare i task richiesti rispetto a un ingegnere umano.
- Migliorare la robustezza delle valutazioni sui modelli AI, utilizzando test end-to-end verificati da esperti per garantire che le soluzioni generate siano realmente funzionanti e non semplici adattamenti superficiali.
Risultati e limiti attuali
A valle dei test condotti con i modelli più avanzati, emerge che i LLM non sono ancora in grado di sostituire completamente gli ingegneri umani nel contesto freelance. I migliori risultati sono stati ottenuti dal modello Claude 3.5 Sonnet, che ha raggiunto un punteggio del 26,2% nei task IC SWE e del 44,9% nei task SWE Manager, guadagnando virtualmente circa 208.050 dollari su 500.800 dollari disponibili nella valutazione pubblica del benchmark (SWE-Lancer Diamond).
Nel caso dei problemi IC SWE (Individual Contributor SWE Tasks), il modello generativo è chiamato a produrre codice per correggere bug o implementare nuove funzionalità. I task SWE Manager prevedono invece che il modello assuma il ruolo di un manager tecnico che deve selezionare la miglior proposta di implementazione tra quelle presentate dai freelancer.
I dati raccolti con il benchmark SWE-Lancer evidenziano che, sebbene i modelli AI possano davvero supportare lo sviluppo software, la loro capacità di risolvere problemi complessi in autonomia è ancora limitata. I principali ostacoli riscontrati sono i seguenti:
- Difficoltà nella gestione di problemi multi-file, con interdipendenze complesse all’interno di una base di codice.
- Mancanza di contestualizzazione avanzata, che porta a selezionare soluzioni subottimali nei task di gestione tecnica.
- Difficoltà nell’adattarsi a standard di qualità richiesti nel settore dello sviluppo software: si pensi alle best practice in tema di coding e sicurezza informatica.
Credit immagine in apertura: iStock.com – Khanchit Khirisutchalual