L’ingegneria del software freelance è un campo lucrativo e dinamico in cui sviluppatori qualificati affrontano sfide diverse, dalla correzione di bug allo sviluppo di funzionalità full-stack. Negli ultimi anni, questi lavoratori sono stati tra i primi a incorporare sistemi di intelligenza artificiale nel loro flusso di lavoro per aiutare a scrivere codice. Questo solleva una domanda interessante: un sistema di intelligenza artificiale potrebbe fare lo stesso lavoro da solo? In altre parole, gli ingegneri del software hanno effettivamente sviluppato se stessi fuori dai loro lavori? Ora otteniamo una sorta di risposta grazie al lavoro di Samuel Miserendino, Michele Wang e colleghi di OpenAI Research, che hanno sviluppato uno strumento di benchmarking che determina se i modelli di linguaggio di grandi dimensioni all’avanguardia (LLM) possono completare un insieme di compiti di sviluppo software reali che sono stati risolti dagli esseri umani. Questi sviluppatori umani hanno guadagnato un milione di dollari nel processo, sollevando la domanda ovvia se i sistemi di intelligenza artificiale potrebbero guadagnarsi da vivere da soli.
La risposta sarà di conforto limitato per gli sviluppatori umani. “Il lavoro freelance nel mondo reale nel nostro benchmark rimane impegnativo per i modelli di linguaggio di frontiera,” dicono Miserendino, Wang e co. Tuttavia, calcolano che i migliori modelli potrebbero guadagnare con successo una frazione significativa del milione di dollari.
Ingegneria del software non significa solo scrivere codice. Gli ingegneri devono interpretare i requisiti dei clienti, navigare in codebase complesse e prendere decisioni architettoniche di alto livello sull’approccio corretto. I lavori freelance nel mondo reale richiedono sviluppo full-stack, debugging e competenze manageriali. Valutare le prestazioni dei modelli di linguaggio di grandi dimensioni in questi compiti è complicato perché la maggior parte dei benchmark coinvolge problemi di codifica standard, che rappresentano solo una piccola parte della sfida del freelance. Miserendino, Wang e co hanno deciso di cambiare questo creando un database di compiti di ingegneria del software reali precedentemente risolti da freelance umani. Chiamano il loro benchmark SWE-Lancer e sperano che diventi uno standard per testare le prestazioni di codifica nel mondo reale dei modelli di linguaggio di grandi dimensioni avanzati.
Il team ha ottenuto i compiti freelance da Expensify, una società pubblica che possiede un sistema di gestione delle spese utilizzato da 12 milioni di clienti. Questo software richiede manutenzione e sviluppo costanti, per i quali l’azienda si affida a lavoratori freelance. Expensify rende pubblici questi compiti di codifica e li pubblica sul sito web di freelance Upwork.
Il team di OpenAI ha scelto 1488 di questi compiti. Circa la metà di essi era destinata a programmatori individuali e coinvolgeva compiti come lo sviluppo di patch di codifica per risolvere problemi reali. L’altra metà dei compiti era per i manager e coinvolgeva la selezione della migliore soluzione tra le proposte concorrenti presentate dai freelance umani. Tutti i compiti erano stati completati da freelance umani che erano stati pagati importi variabili da $250 a $32,000. Il valore totale di tutti i compiti era di un milione di dollari.
Per mettere alla prova i modelli di intelligenza artificiale all’avanguardia, il team ha assegnato ogni compito a Claude 3.5 Sonnet di Anthropic e ai modelli GPT-4o e o1 di OpenAI. I sistemi di intelligenza artificiale hanno ricevuto il testo che descriveva il problema come appariva sulla piattaforma Upwork insieme a uno snapshot del codice prima che la correzione fosse effettuata, insieme all’obiettivo di risolvere il problema.
Per i compiti di gestione, i modelli hanno ricevuto varie soluzioni proposte a un problema, uno snapshot del codice da correggere e l’obiettivo di scegliere la soluzione più adatta.
I risultati sono illuminanti. “Sonnet 3.5 performa meglio, seguito da o1 e poi GPT-4o,” dicono Miserendino, Wang e co. Ma erano lontani dall’essere perfetti. “Tutti i modelli guadagnano ben al di sotto del milione di dollari di possibile pagamento sull’intero dataset SWE-Lancer,” dicono i ricercatori. Tuttavia, c’è un ritorno significativo per alcuni problemi. “Sull’intero dataset SWE-Lancer, Claude 3.5 Sonnet guadagna oltre $400,000 su $1,000,000 possibili.” Questo sembra un reddito ragionevole per un sviluppatore freelance che utilizza l’intelligenza artificiale per assistere nel proprio lavoro. Ma ci sono chiaramente delle limitazioni. I sistemi di intelligenza artificiale hanno performato meglio nei compiti di gestione rispetto ai compiti di codifica individuale, che spesso hanno prodotto correzioni superficiali piuttosto che affrontare i problemi alla radice. Questo suggerisce che l’intelligenza artificiale è migliore nel valutare le soluzioni piuttosto che implementarle.
Nel complesso, i sistemi di intelligenza artificiale sono stati in grado di affrontare meno del 50 percento dei compiti disponibili, il che porta il team a una conclusione cupa. “Il lavoro freelance nel mondo reale nel nostro benchmark rimane impegnativo per i modelli di linguaggio di frontiera,” dicono i ricercatori.
Il team afferma che l’incapacità degli LLM di superare i freelance umani deriva da diversi problemi fondamentali. Ad esempio, i modelli di intelligenza artificiale mancano di una comprensione profonda del codice — invece, sono semplicemente generatori di pattern. Gli ingegneri umani affinano iterativamente le loro soluzioni, eseguendo test e debug di comportamenti inaspettati, un approccio che gli LLM faticano a copiare.
Ma mentre gli LLM non sono pronti a sostituire gli ingegneri umani, il benchmark SWE-Lancer rivela un potenziale entusiasmante. Suggerisce che gli assistenti di intelligenza artificiale probabilmente aiuteranno ad automatizzare i compiti di codifica di routine, in modo che gli sviluppatori umani possano concentrarsi sulla risoluzione di problemi di livello superiore. Una cosa su cui i ricercatori non si concentrano in dettaglio è il tempo impiegato per completare i compiti da parte degli umani rispetto alle macchine. Potrebbe essere che i sistemi di intelligenza artificiale non siano attualmente molto migliori in alcuni compiti, ma che siano significativamente più veloci. Questo inevitabilmente influenzerà la pianificazione aziendale. Ma mostrano che alcuni compiti sono maturi per l’automazione e probabilmente già eseguiti in questo modo da freelance e aziende intraprendenti. Questa proporzione è destinata ad aumentare man mano che i modelli diventano più capaci.
E a giudicare dai miglioramenti che i modelli di intelligenza artificiale hanno raggiunto su altri benchmark per problemi avanzati di matematica e simili, questo miglioramento è destinato ad accelerare rapidamente.
Chiaramente, il momento per un cambiamento dirompente è ora.