Quanto è difficile programmare? Forse non più di quanto si immagini. Quando pensiamo alla programmazione, infatti, la maggior parte di noi immagina enormi stanzoni dove fila di ingegneri scrivono liste di codici incomprensibili ai più. Probabilmente nella stragrande maggioranza dei casi è proprio così, o almeno lo è stato fino ad ora perché da questo momento le cose potrebbero cambiare. Grazie a Codex, un tool basato sull’intelligenza artificiale (AI) sviluppato da OpenAI, programmare sarà un gioco da ragazzi. L’azienda no profit fondata da Elon Musk nel 2015 fa ricerca proprio nel campo dell’AI. L’ultima ritrovata di OpenAI è Codex, il primo sistema di intelligenza artificiale in grado di tradurre il linguaggio dell’uomo in un linguaggio di programmazione.
Codex nasce dall’idea di voler replicare il meccanismo dei suggerimenti di ricerca di Google per rendere la programmazione alla portata di tutti. Il tool, infatti, consente di tradurre quello che l’utente scrive a parole in uno tra i circa dodici linguaggi di programmazione messi a disposizione. Non solo, il sistema di intelligenza artificiale Codex sviluppato da OpenAI funziona come una vera e propria API (Application Programming Interface). Esso, comunicando direttamente con GitHub grazie a Copilot, copia intere porzioni di codice già scritte e conservate nel suo repository. Una volta copiato, il codice viene poi compilato e interpretato da Codex stesso. Sebbene esso sia stato pensato prevalentemente per Python, funziona abbastanza bene anche con JavaScript, PHP, Swift, TypeScript, Shell e molti altri linguaggi di programmazione.
Codex è considerato da OpenAI stessa il diretto discendente di GPT-3, un modello auto-regressivo basato sull’intelligenza artificiale. GPT-3, infatti, è la terza generazione di Generative Pre-trained Transformer, la serie di modelli di linguaggi auto-regressivi in grado di produrre testi come se fossero scritti da esseri umani. Il training dataset di Codex è composto da migliaia di frasi (in inglese) e miliardi di righe di codice open source prese direttamente da GitHub. Inoltre, esso presenta una memoria circa tre volte più grande rispetto al suo predecessore. I 14KB di spazio dedicato solo per Python (contro i 4KB di GPT-3) permettono, infatti, di memorizzare molte più informazioni contestuali durante l’esecuzione di qualsiasi attività.
Il funzionamento del tool è molto semplice. L’algoritmo è stato pensato per essere strutturato in due parti. Prima di tutto, il problema di partenza (la creazione di una pagina web o di un’interfaccia software) deve essere scomposto in problemi più elementari. Una volta chiarito come scomporre il problema, il programmatore deve stimolare l’utilizzo di opportune librerie, API o funzioni già esistenti. Questa è probabilmente la parte più difficile per chi si avvicina alla programmazione ma è anche uno degli aspetti più performanti di Codex. Nella pagina ufficiale di OpenAI Codex vengono mostrati una serie di video esempi molto interessanti. Di seguito ne riportiamo uno relativo alla creazione di un simpatico giochino scritto in JavaScript.
OpenAI Codex è basato su algoritmi di intelligenza artificiale, sempre più utilizzati in svariati campi della tecnologia. Alexa, Siri, ma anche YouTube, Google, Amazon, Netflix e molti altri utilizzano l’AI per svolgere compiti di assistenza vocale o di indirizzamento delle pubblicità. A differenza di quanto spesso immaginiamo, l’intelligenza artificiale non riguarda solo gli aspetti legati all’apprendimento automatico delle macchine. Essa coinvolge anche il problem solving, la classificazione della conoscenza in domini, la pianificazione, i sistemi di percezione artificiale e la robotica.
Molti non sanno che l’intelligenza artificiale è molto più “vecchia” di quanto si immagini. Essa fonda le sue radici negli anni ’40 dello scorso secolo, cambiando continuamente forma nel corso dei decenni. Dalla Cibernetica alla Symbolic AI, dall’approccio statistico degli anni ’90 fino alla più recente Artificial General Intelligence. Oggi l’intelligenza artificiale è impiegata per lo più nel campo del machine learning e della robotica. Algoritmi sempre più performanti di apprendimento automatico sono utilizzati in molti contesti. Codex è un sistema molto elaborato che coinvolge quasi tutti gli aspetti dell’intelligenza artificiale.
OpenAI renderà presto disponibile privatamente e gratuitamente (durante il periodo iniziale) il sistema di intelligenza artificiale Codex in versione beta. Codex è un modello di programmazione general-purpose dalle innumerevoli potenzialità. OpenAI lo ha testato maggiormente nella trasposizione da un linguaggio di programmazione ad un altro, riscuotendo un discreto successo. L’azienda stessa, però, è consapevole delle incredibili capacità di Codex e per questo continuerà a testarlo per migliorarlo sempre di più. Codex è il primo esempio di intelligenza artificiale applicato al campo della programmazione. Esso potrebbe configurarsi come il primo tassello di una rivoluzione senza precedenti: in un futuro non molto lontano le macchine potranno addirittura imparare ad auto-programmarsi?