In questi mesi abbiamo parlato spesso dell'evoluzione del mercato delle intelligenze artificiali. Sostanzialmente le AI sono un'insieme di algoritmi che permettono ad un sistema informatico di addestrarsi per comprendere al meglio i task che una persona propone, tali algoritmi possono poi evolversi per eseguire i task in automatico senza che gli vengano richiesti espressamente, cosi da evitare operazioni estremamente ripetitive o molto complesse per l'uomo. È questo il caso di Bayou una deep learning software coding application sviluppata dal DARPA.
Bayou sfrutta quindi il deep learning, ovvero quella branca del machine learning che si basa su diversi livelli di rappresentazione, corrispondenti a gerarchie di caratteristiche, fattori o concetti, dove i concetti di alto livello sono definiti sulla base di quelli di basso livello. DARPA, che fa parte del ministero della difesa statunitense, ha realizzato Bayou in collaborazione con Google, sfruttando quindi l'esperienza dei suoi ingegneri e anche la sua architettura Cloud. Le applicazioni di deep learning e di machine learning necessitano infatti di una imponente potenza di calcolo con la quale addestrare le applicazioni a compiere determinate operazioni in automatico o a seconda di un determinato trigger.
Bayou è in grado di scrivere porzioni di codice basato su API Java in completa autonomia. Si occupa di analizzare le parole chiave immesse dai programmatori riguardanti il tipo di programma che si vuole creare, e dopo averle elaborate restituisce un output con il codice Java che agevolerà il team di sviluppatori durante, magari fornendo funzioni già pronte o porzioni di codice su cui basarsi.
Moltissimi team hanno provato a realizzare un sistema che sia capace di scrivere ampie porzioni di codice in autonomia, ma l'approccio intrapreso dagli sviluppatori Google e da quelli DARPA è stato rivoluzionario. Questo perché solitamente è necessario fornire molti dettagli su ciò che dovrebbe fare un programma, e scrivere questi dettagli può significare tanto lavoro quanto scrivere il codice normalmente. Bayou rappresenta quindi uno step evolutivo importante per i sistemi di intelligenza artificiale, perché capace di scrivere porzioni di codice molto complesse con molte meno informazioni rispetto ad altri progetti dello stesso tipo.
Bastano infatti poche parole chiave e semplici indicazioni per comunicare a Bayou il tipo di programma che si intende realizzare. Bayou è stato addestrato tramite l'analisi di milioni di righe di codice Java presenti sui repository pubblici di Github. Il tutto basandosi sul metodo chiamato neural sketch learning, Bayou infatti è composto di una complessa rete neurale che è addestrata per riconoscere e rilevare pattern di alto livello tramite migliaia di esempi appresi.
Nel dettaglio Bayou realizza dunque una "bozza" di ogni programma analizzato, e li mette in relazione con le istruzioni scritte dal programmatore cosi da capire al meglio cosa si intende realizzare. I programmi Java con cui si è "addestrato" Bayou sono contrassegnati da un'etichetta che contiene una serie di informazioni come ad esempio il set di chiamate alle API, la funzione della libreria, i tipi di codice implementati e i loro rispettivi metadata.
Quando un utente formula una domanda a Bayou sulla base di tali etichette il sistema andrà ad effettuare un'analisi di queste etichette per capire che tipo di programma è stato richiesto, cosi da ottenere il massimo risultato delle bozze elaborate. Successivamente un modulo di Bayou, che conosce i dettagli di basso livello di Java, da il via ad un processo di elaborazione logica e dunque genera le porzioni di codice, presentandole all'utente come se fossero il risultato di una ricerca sul Web.
Lo sviluppo software moderno è tutto incentrato sulle API, questi insiemi di librerie, regole, strumenti, definizioni e protocolli consentono ad una porzione di codice di interagire con interi sistemi, database, piattaforme hardware e altro software. Dunque è normale che il team di Bayou si sia focalizzato sulla realizzazione di nuove API Java in modo automatico. Presto DARPA e Google dovrebbero rilasciare il progetto al pubblico coperto da un licenza open source, in modo tale che Bayou possa diventare facilmente la base di partenza per migliaia di altri progetti sparsi in tutto il mondo.
Via Bayou