Ricerca nel sito web

Cattive notizie per gli sviluppatori? Questa intelligenza artificiale sta diventando molto brava a scrivere codice


DeepMind afferma che la sua ricerca potrebbe aiutare i programmatori a codificare in modo più efficiente e aprire il campo a persone che non programmano.

Decidere quale linguaggio di programmazione imparare è una grande domanda per gli sviluppatori di oggi a causa dell'enorme investimento di tempo che richiede. Ma questa domanda potrebbe essere resa superflua in un futuro in cui i modelli di intelligenza artificiale (AI) fanno tutto il lavoro pesante comprendendo la descrizione di un problema e codificando una soluzione.  

I ricercatori di DeepMind, l'unità di Google focalizzata sull'intelligenza artificiale, affermano che il suo sistema AlphaCode è in grado di esprimere soluzioni a problemi in codice che raggiunge un punteggio di livello medio nelle competizioni di programmazione intraprese da nuovi programmatori. Queste competizioni richiedono agli esseri umani di comprendere un problema descritto in linguaggio naturale e quindi di codificare un algoritmo in modo efficiente. 

In un nuovo articolo non sottoposto a revisione paritaria, i ricercatori di DeepMind descrivono in dettaglio come AlphaCode abbia raggiunto una classifica media del 54,3% dei partecipanti a 10 competizioni di programmazione tenutesi in precedenza con più di 5.000 partecipanti. Le competizioni sono state ospitate sulla piattaforma di concorso Codeforces.

VEDI: I datori di lavoro sono alla disperata ricerca di data scientist mentre la domanda esplode

DeepMind afferma che AlphaCode è il primo sistema di generazione di codice AI che si comporta a un livello competitivo nelle competizioni di codice per sviluppatori umani. La ricerca potrebbe migliorare la produttività dei programmatori e potrebbe aiutare i non programmatori a esprimere una soluzione senza sapere come scrivere il codice.  

I concorrenti umani e, quindi, AlphaCode dovevano analizzare una descrizione di una sfida o di un puzzle e scrivere rapidamente un programma per risolverli. Questo è più difficile rispetto all'addestramento di un modello utilizzando i dati di GitHub per risolvere una semplice sfida di codifica.  

Come gli esseri umani, AlphaCode aveva bisogno di comprendere una descrizione in linguaggio naturale di più paragrafi del problema, i dettagli narrativi di base e una descrizione della soluzione desiderata in termini di input e output. 

Per risolvere il problema, il concorrente avrebbe bisogno di creare un algoritmo e quindi implementare l'algoritmo in modo efficiente, richiedendo potenzialmente di selezionare, ad esempio, un linguaggio di programmazione più veloce come C++ su Python per superare tali vincoli. 

Il set di dati pre-addestramento di AlphaCode includeva 715 GB di codice da file presi da repository GitHub scritti in C++, C#, Go, Java, JavaScript/TypeScript, Lua, Python, PHP, Ruby, Rust e Scala. Il team ha messo a punto il modello utilizzando set di dati di problemi di programmazione competitiva estratti da Codeforces e set di dati simili. 

La spinta che DeepMind ha dato ad AlphaCode è stata ottenuta combinando modelli di trasformatori su larga scala. Esempi di questi includono GPT-3 di OpenAI e il modello linguistico BERT di Google. DeepMind ha utilizzato modelli linguistici basati su trasformatori per generare il codice, quindi filtrare l'output in un piccolo insieme di "programmi promettenti" che sono stati inviati per la valutazione.

"Al momento della valutazione, creiamo un'enorme quantità di programmi C++ e Python per ogni problema, ordini di grandezza più grandi rispetto al lavoro precedente", spiega il team AlphaCode di DeepMind in un post sul blog. 

"Quindi filtriamo, raggruppiamo e riclassifichiamo queste soluzioni in un piccolo insieme di 10 programmi candidati che sottoponiamo a valutazione esterna. Questo sistema automatizzato sostituisce il processo di prova ed errore dei concorrenti di debug, compilazione, superamento dei test e infine invio".

DeepMind dimostra come AlphaCode codifica una soluzione a un determinato problema qui. 

DeepMind considera alcuni potenziali svantaggi di ciò che sta cercando di ottenere. Ad esempio, i modelli possono generare codice con punti deboli sfruttabili, tra cui "vulnerabilità non intenzionali da codice obsoleto o intenzionali iniettate da attori malintenzionati nel set di addestramento".

VEDI: Sviluppatore web o CTO, quali lavori tecnologici hanno gli stipendi in più rapida crescita?

Inoltre, ci sono costi ambientali. L'addestramento del modello ha richiesto "centinaia di giorni petaFLOPS" nei data center di Google. Ma la generazione di codice AI a lungo termine "potrebbe portare a sistemi in grado di scrivere e migliorare in modo ricorsivo, portando rapidamente a sistemi sempre più avanzati". 

C'è il rischio che l'automazione riduca la domanda per gli sviluppatori, ma DeepMind sottolinea i limiti degli strumenti di completamento del codice odierni che migliorano notevolmente la produttività della programmazione, ma che fino a poco tempo fa erano limitati a suggerimenti di una sola riga e limitati a determinati linguaggi o brevi frammenti di codice. 

Tuttavia, DeepMind sottolinea che il suo lavoro non è affatto vicino a essere una minaccia per i programmatori umani, ma che i suoi sistemi devono essere in grado di sviluppare capacità di risoluzione dei problemi per aiutare l'umanità. 

"La nostra esplorazione della generazione di codice lascia un ampio margine di miglioramento e suggerisce idee ancora più interessanti che potrebbero aiutare i programmatori a migliorare la loro produttività e aprire il campo a persone che attualmente non scrivono codice", affermano i ricercatori di DeepMind. 

Articoli correlati