Artificial Intelligence

DeepCoder realizza programmi con codice trovato in rete

Come tutti i grandi programmatori genero la maggior parte del mio codice a partire da risposte a domande su StackOverflow. Non riesco ad aggiungere l’autenticazione a Flask? Voglio arrestare sendmail? StackOverflow! Ora, grazie all’enorme quantità di codice presente su Internet, un algoritmo di AI può diventare intelligente e produttivo come un bravo sviluppatore.

Il sistema, chiamato DeepCoder, fondamentalmente cerca un corpus di codice adeguato a costruire un progetto per delle specifiche date. E’ già stato utilizzato per completare gare di programmazione e potrebbe, se alimentato con un corpus più ampio di dati, ambire a creare prodotti più complessi.

Dal paper:

Per costruire un sistema IPS si devono risolvere due problemi. In primo luogo, il problema di ricerca: trovare i frammenti di codice coerenti con quello di cui abbiamo bisogno cercando in un insieme ampio di frammenti di codice. In secondo luogo, il problema del ranking: se ci sono diversi frammenti di codice nello spazio di ricerca coerenti con gli esempi di input-output, quale scegliamo? Le soluzioni di entrambi i problemi dipendono dalla formulazione del problema specifico. In effetti il primo paletto che si deve piantare nel formulare un approccio ad un sistema di IPS deve essere la scelta del linguaggio specifico di dominio. Il sistema diventa più intelligente man mano che “si allena” a cercare di capire quali frammenti di codice lavorano meglio insieme e quando utilizzare un determinato frammento piuttosto che un altro. DeepCoder durante questo “allenamento” si migliora e può diventare sempre più veloce a costruire programmi.

Matej Balog presso l’Università di Cambridge e Alexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin, Daniel Tarlow di Microsoft Research hanno realizzato DeepCdoer e un paper sul suo utilizzo. I programmatori fanno notare che un sistema di questo tipo, per ora, non può costruire progetti più grandi a partire da piccoli frammenti di codice che, ad essere onesti, suona come un’affermazione che ci si poteva aspettare.

Visto che è cosi che molti programmatori lavorano, tagliando e cucendo codice riadattandolo alle proprie esigenze, questo sembra un campo di applicazione straordinario per un sistema di deep-learning come DeepCoder. E’ facile immaginare come questo possa essere una grande soluzione, ad esempio, per semplici applicazioni CRUD(Create Read Update Delete), gli strumenti di base necessari per aggiornare ed aggiungere record ad un database. In realtà potrebbe significare la fine del lavoro da programmatore, almeno entry level. Tuttavia uno scenario del genere appartiene ancora ad un futuro lontano per come sono oggi i risultati di simili sistemi.

Vuoi sapere come i circuiti DNA riescono a fare operazioni matematiche?

 

articolo originale:techcrunch.com

Articoli correlati

Close
Close