Codex, la vera utilità (e i limiti) dell'AI che aiuta a programmare - Agenda Digitale

GPT-3 OpenAI

Codex, la vera utilità (e i limiti) dell’AI che aiuta a programmare

Il codice creato dall’intelligenza artificiale Codex di Gpt-3 può risultare la base di partenza del lavoro di un programmatore, che così può anche correggere gli errori e migliorare il codice stesso. Ma non può stabilire da sola le regole. Ecco vantaggi e limiti

20 Set 2021
Nicola Gatti

direttore dell'Osservatorio Artificial Intelligence del Polimi e membro dell’Associazione Italiana per l’Intelligenza Artificiale (AIxIA)

Aiutare i programmatori nello sviluppo codice. È in questa direzione che OpenAI ha lavorato, recentemente, per l’evoluzione applicativa di GPT-3, (Generative Pre-trained Transformer 3), che è uno strumento capace di generare in modo automatico testi in accordo a delle richieste specifiche dell’utente.

Cos’è Codex di Open AI, per sviluppare codice in automatico

Il risultato è un sistema chiamato Codex. L’obiettivo alla base di Codex è molto semplice ed è quello di facilitare il lavoro di un programmatore o, in futuro, persino sostituirlo. L’idea è quella di poter spiegare al computer in linguaggio naturale il funzionamento di un programma che si vuole scrivere e lasciare che il computer, tramite l’AI, scriva il programma in modo autonomo al posto del programmatore.

INFOGRAFICA
Orientati tra le opportunità del Piano Nazionale Transizione 4.0
Big Data
IoT

Un semplice esempio è quello di una applicazione capace di creare sfondi per il computer sulla base delle immagini preferite di un utente. Invece di scrivere il codice dell’applicazione attraverso un linguaggio di programmazione, il programmatore può spiegare alla macchina cosa vuole che il programma faccia e Codex generare il programma.

I test di GPT-3: che cosa è davvero l’AI che sembra “umana”

Com’è stato addestrato Codex

Codex è stato addestrato con un enorme quantità di testo in linguaggio naturale e codice informatico, ed è in grado di lavorare con 12 diversi linguaggi di programmazione. Di fatto, Codex interpreta quanto espresso dall’umano in linguaggio naturale, creando una sua rappresentazione astratta interna che descrive il funzionamento dell’algoritmo tramite l’uso di blocchi elementari di codice. Dal punto di vista concreto, questa rappresentazione definisce il flusso logico del programma, specificando quelle che sono le variabili, i parametri e le funzioni elementari. Il passaggio successivo svolto da Codex è quello di tradurre questa rappresentazione astratta nel linguaggio di programmazione scelto.

Come funziona Codex

Questa ultima parte risulta una semplice applicazione di GPT-3. Infatti, la generazione di testo tramite GPT-3 richiede che venga definito il linguaggio in termini di regole sintattiche di composizione delle frasi.

GPT-3 non conosce propriamente il linguaggio, ma usa delle regole che definiscono quando le frasi sono ben formate. La stessa cosa può essere svolta con un linguaggio di programmazione. E’ possibile cioè definire le regole sintattiche del linguaggio di programmazione e lasciare che GPT-3 generi istruzioni che soddisfino quelle regole.

Le applicazioni (teoriche) di Codex

Qualora Codex fosse affidabile al 100%, permetterebbe ad una azienda di software un importante risparmio di tempo. Infatti, Codex sostituirebbe non solo il lavoro di scrittura del codice ma anche di progettazione, che costituisce l’aspetto più critico del processo di sviluppo di un sistema software. La progettazione e la scrittura del codice di grandi applicazioni richiedono il lavoro di centinaia, se non migliaia, di programmatori.

A cosa serve davvero (per ora) Codex

Allo stato attuale, Codex funziona bene per applicazioni molto semplici ed elementari. La stima resa nota dai ricercatori di OpenAI è che il codice prodotto da Codex sia corretto il 37% delle volte. In molti casi però, gli errori sono minimi e facilmente correggibili da un programmatore esperto. Per quanto la presenza degli errori impedisca l’utilizzo diretto del codice prodotto da Codex, il risparmio di tempo per un programmatore può comunque essere considerevole.

Da molti anni infatti si lavora, nel campo dell’Ingegneria del Software, a strumenti automatici di generazione del software che aiutino nella progettazione. Nessuno di questi strumenti però è in grado di produrre codice in automatico per un compito richiesto da un programmatore e solo l’AI può occuparsi di questi aspetti.

Il codice di Codex può infatti risultare la base di partenza del lavoro di un programmatore, che così può anche correggere gli errori e migliorare il codice stesso.

Riduce i tempi di prototipazione e permette di arrivare più velocemente al rilascio sul mercato del sistema software.

Cosa non può fare

Codex, come tutti gli strumenti basati sulle reti neurali, è capace di apprendere dagli esempi che popolano la sua base di conoscenza, ma non è in grado di costruire in modo autonomo programmi per rispondere a obiettivi che non conosce.

Questo richiede quindi che il programmatore fornisca a Codex sempre maggiore conoscenza nel tempo per permettere a Codex di far crescere le sue capacità. Il ruolo dell’umano non verrà mai sostituito quindi, ma rimarrà in qualità di insegnante al sistema di AI.

WHITEPAPER
Product Lifecycle Management: cos’è, come funziona e come deve evolvere
Logistica/Trasporti
Manifatturiero/Produzione
@RIPRODUZIONE RISERVATA

Articolo 1 di 4