ChatGPT è una tecnologia di chatbot basata sull'Intelligenza Artificiale (AI). Utilizza un sistema di apprendimento profondo basato su una tecnologia chiamata "Transformer" (per l'esattezza GPT-3 sta per Generative Pre-Trained Transformer 3). Quest'ultimo è un algoritmo di machine learning sviluppato da OpenAI, un'azienda di ricerca specializzata nelle tecnologie di intelligenza artificiale, che ha realizzato questo prodotto capace di creare un'esperienza di chat altamente interattiva.
Infatti ChatGPT è capace di fornire conversazioni più naturali e di risposte a domande più pertinenti rispetto ad altri chatbot basati su AI. In altre parole, si può parlare con chatGPT come se fosse una persona reale.
Prima di iniziare a usare chatGPT, bisogna creare un account (completamente gratuito). Si fa facilmente, utilizzando una e-mail o un account social. Una volta creato l'account, si può iniziare a chattare! Per iniziare una conversazione con chatGPT, bisogna prima inserire un messaggio di apertura. Si può dire qualcosa come "Ciao! Come va?" o "Ciao, sono un nuovo utente".
ChatGPT risponderà con una risposta intelligente e personalizzata in base a ciò che e stato scritto. A partire da lì, si potrà iniziare a chattare con lui come se stesse parlando con una persona reale.
ChatGPT è in grado di memorizzare le conversazioni fatte con ogni utente, in modo da poter continuare a parlare di cose già discusse in precedenza. È anche possibile fare domande come: "Qual è il tuo film preferito?" o "Cosa pensi della politica?".
Non è limitato ai soli argomenti di conversazione. Si può anche chiedere di aiutare a fare ricerche su internet o a ricordare una cosa importante. Può condividere informazioni su argomenti più svariati. Le caratteristiche di chatGPT permettono di offrire una vasta gamma di funzionalità che rendono l'esperienza di chat, unica.
Ecco alcune delle sue principali funzionalità:
Comprende i testi scritti dall'utente e fornisce risposte pertinenti alla conversazione.
Ricorda le conversazioni precedenti e le usa per creare risposte personalizzate.
Fornisce suggerimenti su argomenti di conversazione, inclusi film, libri, musica, sport, notizie e molto altro.
Consente di ricercare informazioni online e di condividere dati pertinenti alla conversazione.
Può aiutare a ricordare le cose importanti condivise in precedenza.
È possibile anche personalizzare l'aspetto di chatGPT scegliendo tra una varietà di temi e colori.
È possibile invitare altri amici per chattare insieme.
Per non rischiare di scendere troppo sul tecnico, darò solo le informazioni chiave sul processo di deep learning utilizzato. Con questa "infarinatura" resa disponibile a tutti, i tecnici più appassionati potranno utilizzare gli spunti che seguono per ricerche più approfondite. Inoltre, più avanti, c'è un paragrafo in cui aggiungo qualche dettaglio sul funzionamento del sistema.
ChatGPT utilizza una rete di codifica per convertire l'input testuale dell'utente in uno spazio di rappresentazione vettoriale.
Come già detto, ChatGPT utilizza un modello di deep learning basato sulla Rete Transformer (GPT-2) sviluppata da OpenAI. GPT-2 è un modello statistico all'avanguardia che può essere addestrato con grandi quantità di testo e quindi usato per generare risposte naturali ed appropriate a una domanda in linguaggio naturale.
Il modello è ancora sperimentale e quindi viene costantemente aggiornato e affinato per fornire le migliori risposte, grazie anche alle numerose interazioni di utenti curiosi.
In dettaglio, la Rete Transformer (GPT-2) è un modello di rete neurale basato su un'architettura di linguaggio naturale (NLU - Natural Language Processing). Si compone di 3 layer di reti che collaborano tra loro:
una di codifica,
una di decodifica,
una rete di "attenzione".
La rete di codifica converte l'input testuale in uno spazio di rappresentazione vettoriale.
Approfondimento tecnico (saltate se non vi interessa!):
Convertire un input testuale in uno spazio di rappresentazione vettoriale significa mappare ogni frase o termine dell'input testuale in un vettore di numeri che rappresenta la frase o il termine. Si tratta di un artifizio per trasformare con margine di approssimazione accettabile, parole, frasi e concetti in matrici di numeri. Questo permette ai computer di interpretare e comprendere meglio il significato del testo. Uno spazio di rappresentazione vettoriale può essere usato per misurare la similarità tra parole o frasi, e l'insieme di queste "similitudini" astraggono i concetti in una forma assimilabile dai computer.
Esistono diversi algoritmi noti per convertire un input testuale in uno spazio di rappresentazione vettoriale.
Gli algoritmi più usati sono word2vec, GloVe, FastText e doc2vec.
L'algoritmo di trasformazione usato da ChatGPT è sicuramente proprietario, ma con buona probabilità si basa sull'evoluzione di quelli appena elencati.
La rete di decodifica converte lo spazio di rappresentazione vettoriale appena ottenuto, in una sequenza di parole.
La rete di attenzione serve a incoraggiare le relazioni semantiche tra le parole. Lo fa pesando in maniera diversa i processi, sulla base dell'attinenza al risultato atteso. Sono attività che richiedono una mole impressionante di informazioni e, di conseguenza, una potenza di calcolo alla portata di pochi.
Gli sviluppatori si stanno cercando di sviluppare metodi più avanzati per addestrare il modello su grandi quantità di testo, cosa che permetterebbe di migliorare i metodi per la gestione delle conversazioni, in modo da renderle più naturali ed intuitive.
Ecco quindi che lo sforzo maggiore degli ingegneri di OpenAI verte nell'adattare modelli noti sull'ottimizzazione per l'elaborazione di maggiori quantità di dati.
Grazie a quanto spiegato sopra, ChatGPT consente di personalizzare la conversazione in base alle esigenze dell'utente e di reagire in modo flessibile a richieste complesse, cosa che la rende compatibile a diverse esigenze aziendali.
Ad esempio, chatGPT può essere usato per fornire servizi di:
assistenza clienti,
supporto tecnico,
formazione ai dipendenti,
supporto alla vendita,
pubblicità,
marketing,
analisi delle prestazioni.
Inoltre, può essere utilizzato per creare e gestire bot personalizzati per automatizzare alcuni processi aziendali interni.
Per poter raggiungere questi obiettivi aziendali, sono necessari dei training specifici. A tal proposito, ChatGPT offre una serie di opzioni di formazione per aiutare i professionisti IT a comprendere e sfruttare al meglio le sue funzionalità.
Questo include corsi online, webinar, seminari e workshop, oltre a documentazione e video tutorial.
Evito di dare dettagli su questi approfondimenti tecnici, che comunque si possono trovare sul sito web ufficiale, www.chatgpt.com.
Per convertire l'input testuale dell'utente in uno spazio vettoriale, ChatGPT utilizza un modello di rete neurale profonda (DNN - Deep Neural Network). Il modello DNN è costituito da una rete di codifica che si compone di due parti: una rete di codifica di input (Encoder) e una rete di codifica di output (Decoder). Il modello DNN di ChatGPT è stato addestrato su un grande set di dati di conversazioni umane per apprendere come interpretare l'input dell'utente.
La rete di codifica di input è responsabile della codifica dei dati in entrata. Utilizza una rete neurale profonda a più strati (Multi Layer Perceptron, MLP). Le informazioni codificate vengono quindi inviate al modello DNN per l'elaborazione.
MLP è una rete neurale costituita da più strati di neuroni che elaborano le informazioni in entrata e producono, quindi, la desiderata rappresentazione vettoriale dei dati. I dati vengono elaborati dai diversi strati di MLP e convertiti in spazi vettoriali distinti.
La rete di codifica di output è responsabile della conversazione con l'utente. Per generare una risposta ChatGPT utilizza una rete neurale ricorrente (RNN). La RNN utilizza l'output della rete di codifica di input come input al suo primo strato. A questo punto, la RNN utilizza i dati codificati per generare la risposta. RNN è una rete neurale costituita da più strati di neuroni che elaborano le informazioni in entrata e producono una risposta appropriata.
Per chi non la conoscesse, la rete RNN è un tipo di rete neurale ottimizzata per la la gestione di dati sequenziali, ovvero dei dati, come ad esempio un testo, in cui ogni parola, ogni frase, ha un qualche legame con la parola o la frase che segue. La peculiarità delle reti RNN sta nella capacità di ricordare le informazioni passate. Utilizzano connessioni ricorrenti che collegano gli strati di neuroni tra loro. Questo fa sì che l’output di un layer venga utilizzato come input per il layer successivo, rimanendo così parte dello stato di memoria del sistema. Tali connessioni permettono alla rete di mantenere una traccia della sequenza temporale.
Ecco perchè le reti RNN sono spesso utilizzate per processare testi o input linguistici in quanto sono in grado di prendere in considerazione la relazione tra le parole introducendo un modello matematico molto vicino al "contesto" della frase. Possono anche essere utilizzate per generare testo o per attività di sintesi vocale. Vengono utilizzate anche nei software di traduzione e sono una componente fondamentale nella comprensione del testo.
Riassumendo, i dati vettoriali provenienti dalle conversazioni umane (tramite reti MLP), vengono elaborati dai diversi strati di RNN e convertiti in una risposta, cosa che permette a questa piattaforma di chatbot di funzionare e di produrre conversazioni più realistiche ed appropriate all'input dell'utente.
Vedere qualcosa di nuovo che pare funzionare bene, può creare tanto entusiasmo, ma c'è da dire che il sistema non è assolutamente ancora perfetto.
I problemi si evidenziano soprattutto quando si chiede al bot di fornire risposte lunghe. Questo è dovuto al fatto che se si supera di molto la "connessione" modellizzata sulla sequenza, tramite rete RNN (vedi paragrafo precedente), un occhio attento di chi sa come funzionano questi processi, nota una progressiva disconnessione concettuale tra un sotto-argomento e l'altro.
La risposta potrebbe non essere completamente coerente e logica a volte, o comunque può apparire un po' scollegata, frastagliata e con numerose ridondanze.
I capoversi di un testo lungo come un articolo non sono legati bene logicamente in una risposta lunga perché il modello GPT-2 è ottimizzato per fornire risposte naturali contenute, anche se basate su grandi quantità di testo. Una risposta più è lunga, meno riesce ad essere organica. Su questo, gli ingegneri di OpenAI stanno lavorando. Cercano di individuare ed inserire escamotage varie.
Devono ricorrere a soluzioni "di fortuna" perchè purtroppo non è possibile risolvere allungando le sequenze della rete RNN per questioni di capacità computazionali: crescerebbero troppo (esponenzialmente) per fornire pochi benefici in più, quasi impercettibili.
Una delle tecniche piuttosto evidenti adottate, sta nel far creare a ChatGPT, prima uno schema di risposta (una sorta di indice) per poi sviluppare i punti. Questo work-around permette di dare una parvenza di maggiore organizzazione nel testo restituito, ma non elimina le ridondanze e i concetti ripetuti in ogni capoverso.
Molti capoversi continuano ad apparire distaccati, non organici, spesso preceduti da parole come "inoltre" che aiutano a collegare nuovi concetti. In qualche caso possono stare anche bene, ma quando notiamo più di un capoverso su due inizia in questa maniera, possiamo dire che c'è ancora un po' di lavoro da fare.
C'è ancora un po' di lavoro da fare, ma c'è da dire che il lavoro fatto è veramente eccellente.
Come per ogni innovazione mi aspetto che, finita la fase di "gioco", diventi un ottimo strumento di lavoro ed una comodità che arricchirà la nostra vita di tutti i giorni.
Stiamo a vedere...