ChatGPT: può un computer programmarsi da solo?

Parole
Simone Andreotti
Immagini
Elisa Del Maestro
Tempo di lettura
5

Introduzione al funzionamento di ChatGPT e ai suoi usi per la programmazione e non

C

ChatGPT è un modello di linguaggio sviluppato da OpenAI, un'organizzazione di ricerca sulle intelligenze artificiali. Utilizza l'apprendimento automatico per generare risposte in tempo reale alle domande degli utenti, simulando una conversazione naturale. Il modello è stato addestrato su enormi quantità di dati tratti da internet, che gli permette di rispondere a molte domande diverse con grande flessibilità e accuratezza.

La principale forza di ChatGPT è la capacità di tener conto del contesto della conversazione: ciò gli consente di fornire risposte più complete e di continuare conversazioni già iniziate, espandendole senza dover ricominciare da zero.

Come funziona:

ChatGPT utilizza il modello Trasformer del deep learning, che ha rivoluzionato il modo in cui i modelli di linguaggio processano e comprendono il testo. Prima dell'introduzione della tecnologia Transformer, introdotta solo nel 2017, i modelli di linguaggio analizzavano le informazioni in modo sequenziale, una parola alla volta, mantenendo solo una limitata quantità di informazioni sul contesto. La tecnologia Transformer, invece, adotta una architettura a self-attention che permette al modello di analizzare tutto il testo insieme, tenendo in considerazione il contesto completo della frase o del documento all'interno del suo processo di elaborazione.Tutto questo sarà utile a memorizzare ogni parola incontrata per le elaborazioni successive.

Ciò rende possibile una comprensione più precisa del significato del testo per generare risposte più coerenti e appropriate. Inoltre, la tecnologia Transformer è più efficiente rispetto alle architetture a sequenza quando si lavora con grandi quantità di dati, un vantaggio importante in applicazioni come ChatGPT che devono fornire risposte all'utente in tempo reale.

Addestramento IA:

L'addestramento è una parte cruciale del machine learning, che consiste nel fornire al sistema un insieme di dati noti, detti dati di addestramento, per permettere al modello di acquisire la capacità di effettuare una determinata attività. Il modello utilizza questi dati per costruire una rappresentazione interna del problema, che gli permette di fare previsioni o di prendere decisioni su dati nuovi e sconosciuti.

Tuttavia, addestrare un modello di intelligenza artificiale può essere un processo complesso e richiedere una vasta gamma di competenze, come la conoscenza dei dati, del problema, la competenza nell'uso degli algoritmi di apprendimento automatico e l'abilità nell'ottimizzazione dei parametri.

Il processo di addestramento viene supervisionato dagli sviluppatori, che devono filtrare sia gli input per rimuovere gli errori, sia gli output errati per evitare che il sistema continui a generarli, fornendo così una direzione precisa alla crescita del sistema.

Inoltre l'incremento dei dati richiede una grande potenza di calcolo, che a sua volta richiede un grande investimento da parte degli sviluppatori prima che sia possibile ottenere risultati significativi. Nel caso di ChatGPT è stimato che ogni singola richiesta fatta dagli utenti costa alla casa madre circa 1-2 centesimi, ovvero circa centomila dollari al giorno solo in spese di gestione.

Usi di ChatGPT:

Data l’enorme quantità di informazioni che possiede può essere usato per le richieste più disparate, un po’ come se fosse un motore di ricerca, col vantaggio che, mantenendo il contesto delle richieste precedenti, può dare risposte più precise o soluzioni personalizzate ad ogni problema. Inoltre potendo rispondere in tutte le lingue risulta utile anche come traduttore.
La chat ha una limitazione di 2048 “tokens” sommando la domanda e la risposta. Un token è solitamente parte di una parola ed è composto da 3-4 caratteri, compresi gli spazi, quindi per ogni singola richiesta può ricevere grandi quantità di informazioni che userà per fornire risposte anche molto dettagliate.

Usi per lo sviluppo software:

Uno degli usi che ha visto brillare questa chat è la programmazione: avendo avuto accesso a tutta la documentazione presente su internet conosce tutti i linguaggi di programmazione ed è dunque capace di scrivere codice seguendo le indicazioni dell’utente.

ChatGPT risponde molto bene se gli vengono richieste singole funzioni o di spiegare il funzionamento di parti di codice riuscendo solitamente a dare risposte complete; se il problema da risolvere diventa molto complesso spesso perde dettagli e parti dello sviluppo, in particolare se gli si chiede tutto in una sola volta. Alla richiesta di scrivere il codice “una funzione alla volta” invece migliora di molto l’attendibilità delle risposte.

Risulta molto utile anche per aggiungere documentazione e commenti a codice già esistente e per il debugging, poiché potendo prendere in input sia il codice che l’errore cerca di offrire soluzioni o alternative.

Un esempio pratico:

Per comprendere meglio la potenza della chat vi propongo un piccolo esempio di programmazione. Nelle immagini che seguono è presente prima l’input che ho fornito alla chat e sotto la sua risposta, tagliata per motivi di spazio:

esempio1

e questo è il codice fornito eseguito:

matrix1

Una volta creato un codice basterà chiedere modifiche fino ad ottenere il risultato voluto:

matrix-arcobaleno

e questo è il nuovo codice eseguito:

arcobaleno

Come potete vedere in pochi secondi si può generare del codice funzionante e personalizzato che potrà poi entrare a far parte di un'applicazione più grande o 

essere modificato fino a renderlo un programma a sé stante, non vi resta che provare!

Limitazioni:

Col crescere della complessità dei problemi capita spesso che le soluzioni proposte non siano corrette: per questo è sempre necessario conoscere l’argomento per poter comprenderne gli errori (ed eventualmente correggerli) senza affidarsi ciecamente a ciò che viene generato.

Altri due problemi invece derivano dalla struttura e dall’addestramento della chat:
- il primo è che le informazioni attualmente sono limitate a settembre 2021, ciò significa che non potrà dare risposte su tecnologie uscite successivamente o su eventuali aggiornamenti che potrebbero aver modificato librerie o software, di cui era a conoscenza;
- il secondo deriva da un problema del comportamento della chat sul quale stessi sviluppatori stanno ancora lavorando: anche se non è in grado di rispondere ad una domanda, che sia per mancanza di dettagli forniti in input o per conoscenze limitate sull’argomento, in ogni caso risponderà anche a costo di inventare qualcosa che sicuramente non funzionerà, o di dare direttamente informazioni errate pur di mantenere la conversazione fluida.

In conclusione:

L'uso di modelli di intelligenza artificiale come ChatGPT può essere uno strumento utile per semplificare molte ricerche e ottenere buoni risultati, a patto che sia utilizzato in modo responsabile e consapevole delle sue limitazioni. Con il continuo sviluppo dell'IA è probabile che questi modelli diventino sempre più precisi e in grado di supportare una vasta gamma di professioni e ambiti. Ad esempio, anche la stesura di questo articolo è stata supportata da ChatGPT, sebbene abbia necessitato di ulteriore riscrittura. Tuttavia, le potenzialità future di questi modelli sono promettenti e già adesso possono rappresentare un valido aiuto in molte attività.

Come ultimo appunto OpenAi sta sviluppando Codex, una chat diversa da ChatGPT e specializzata nella produzione di codice, ancora in fase di testing e non molto stabile, ma funziona e si può testare sul suo sito.

 

Analizza la tua presenza online.

Scrivici per una consulenza gratuita



Richiedi consulenza

Simone Andreotti

Frontend Developer

Sono da sempre appassionato all'informatica ed in generale a tutto ciò che si può fare tramite un pc. 
Ho sempre mille idee e salto da un progetto all'altro senza sosta, se qualcuno fa qualcosa che non ho mai visto devo provarci ...