ChatGPT e GPT-3 sono grandi modelli in grado di generare contenuto: Large Language Generation Model (LLG). Nascono entrambi utilizzando le Generative Pre-Training Transformer: nuove metodologie di reti neurali ideate da un team di Google. Nello specifico il concetto di Transformer è stato presentato per la prima volta nel 2017 nel paper “Attention is All You Need” i cui autori erano membri del Team di Google Brain.
Il concetto di Transformer si contrappone alle Recurrent Neural Networks. Senza entrare in dettagli tecnici la principale differenza Transformer and Recurrent Neural Networks è la capacità delle prime di analizzare grandi quantità di dati in parallelo riducendo i tempi di apprendimento del modello.
OpenAI, l’azienda dietro a ChatGPT, presentando GPT-3 (alla base di ChatGPT) ha suscitato grandissimo hype per la qualità del testo generato dal modello: GPT-3 e ChatGPT possono generare contenuti quasi indistinguibili dal un testo scritto da un essere umano.
Oggi ChatGPT è rappresentato come l’alba di una nuova era che porterà OpenAI a dominare il mercato uccidendo Google lungo la strada. Sarà vero?
A mio parere no: Google non starà fermo a guardare e GPT-3 non è privo di problemi.
GPT-3 ha imparato statisticamente come generare un testo: non ha reale coscienza del contenuto generato e non ha alcuna capacità di verificare la sua correttezza.
Nel progetto test che sto affrontando con mio fratello ai-summary.com generiamo riassunti di articoli relativi all’intelligenza artificiale più diffusi sulla rete: spesso GPT-3 riporta informazioni non al 100% corrette ad esempio citando un autore non presente nel paper di ricerca, oppure ‘inventando’ parti di testo non correlate con l’articolo da riassumere. Non sono problemi riscontrati spesso, ma per capire il problema mi piace riprendere un commento di Julian Togelius:
GPT-3 spesso si comporta come uno studente intelligente che cerca di superare un esame senza aver studiato. Alcuni elementi li conosce bene, alcuni sono mezze verità altri sono completamente inventati, ma li mette insieme in un racconto che a prima vista sembra stare in piedi
Come imparano questi modelli?
OpenAI non ha reso pubblici i dataset utilizzati per fare il training del loro modello, ma sappiamo alcune cose:
il dataset è formato da 45 terabyte di testo. il dataset è costituto da: il testo che OpenAI ha raccolto nel corso degli anni facendo lo scraping di alcuni siti, il contenuto di pagine linkate da reddit che hanno raccolto almeno 3 stelle, le selezioni di libri fatte da due diverse associazioni ed infine la versione inglese di Wikipedia
per analizzare il dataset sono stati utilizzati 175 miliardi di parametri (per farvi capire la differenza in ordine di grandezza: il modello BERT di Google ne usa 1,5 miliardi). Un parametro possiamo identificarlo come la connessione tra un neurone e l’altro della rete neurale alla base del modello stesso
nella fase di training il modello ha creato 96 attention layer per identificare il peso da dare a tutti gli input ricevuti al fine di raggiungere l’output richiesto
Da questa breve e non precisa descrizione è palese quanto sia importante il dataset in entrata di GPT-3, ma cosa vuol dire prepare un dataset: non è solo selezionare il testo.
I diversi passaggi possiamo elencarli come segue:
Raccolta dati: può includere lo scraping di siti web, la raccolta di dati da database pubblici o dati da altre fonti.
Preprocess dei dati: questo può includere attività come dividere il testo in parole (ogni parola sarà un token infatti questa procedura prende il nome di tokenizzation), rimuovere la punteggiatura e i caratteri speciali, convertire il testo in minuscolo.
Creazione vocabolario: il modello è in grado di processare solo le parole presenti nel suo vocabolario, quindi è importante creare un vocabolario di tutte le parole uniche presenti nel set di dati.
Convertire il testo in dati numerici: una delle tecniche più utilizzate è il word embeddings che permette di rappresentare le parole come vettori numerici.
Dividere i dati in set di training e set di validazione: è comune dividere i dati in due set: un set di training utilizzato per addestrare il modello, e un set di validazione utilizzato per valutare le prestazioni del modello dopo l'addestramento.
Generare sequenze di input e output: i modelli Transformer processano tipicamente sequenze di dati, quindi è necessario generare sequenze di input e output dai dati. Ad esempio, in un'attività di traduzione linguistica, la sequenza di input sarebbe una frase in una lingua e la sequenza di output sarebbe la traduzione corrispondente in un'altra lingua.
Aggiungere padding alle sequenze: se le sequenze hanno lunghezze diverse, sarà necessario aggiungere padding con un simbolo speciale per renderle tutte della stessa lunghezza.
Il reperimento e la preparazione del dato è forse lo step più importante in una pipeline di machine learning: la qualità del dato è il primo elemento per determinare la qualità del modello finale. Per questo motivo sono sempre più numerose le iniziative per condividere i dati tra aziende.
Google in particolare su questo ambito alla fine del 2022 ha presentato un nuovo progetto: The Data Cards Playbook, un toolkit pensato per garantire la trasparenza nella documentazione di dataset.
Può sembrare un problema minore per i non addetti ai lavori ed anche la soluzione ideata da Google potrebbe sembrare banale (un insieme di regole e template per presentare il dataset), ma superando la prima impressione è facile intuire l’importanza del progetto solo analizzando la ricchezza del dato esposto per spiegare il dataset stesso.
La Data Strategy deve essere alla base di ogni progetto
Il dato è l’elemento più importante, anche più importante probabilmente del risultato finale. Una data strategy è sempre alla base di un progetto ben riuscito e crearla non implica conoscenze di statistica o matematica avanzata: una buona data strategy nasce esclusivamente dalla capacità di analisi degli obiettivi prefissati.
L’obiettivo di OpenAI:
OpenAI’s mission is to ensure that artificial general intelligence (AGI)—by which we mean highly autonomous systems that outperform humans at most economically valuable work—benefits all of humanity.
We will attempt to directly build safe and beneficial AGI, but will also consider our mission fulfilled if our work aids others to achieve this outcome
GPT è uno dei progetti su cui OpenAI sta lavorando per raggiungere quell’obiettivo. GPT-3 insieme a ChatGPT sono l’ultimo traguardo raggiunto (GPT-4 verrà presentato nel corso del 2023). GPT è l’abbreviazione di Generative Pre-training Transformer, un modello generativo di linguaggio. Il team di OpenAI prima di GPT-3 è passata attraverso la versione 1 e la versione 2 modelli non straordinari, ma una strategia di raccolta del dato attenta, che si è arrichita con il passare del tempo e delle versioni, ha permesso di raggiungere un traguardo incredibile.
Uno degli errori che vedo compiere più spesso nelle data strategy è concentrarsi principalmente sui dati da raccogliere ampliando a dismisura l’eterogeneità degli stessi, invece di concentrarsi su un obiettivo specifico. È molto più efficiente raccogliere i dati per un obbiettivo, migliorarli, verificarne la correttezza delle ipotesi formulate e testare la qualità dei dato per ottenere l’obiettivo prefissato, piuttosto che perseguire più obiettivi in contemporanea. In questo modo l’azienda inizierà da subito a raccogliere risultati invece di perdersi in progetti giganteschi che durano anni senza mai vedere alcun risultato.
La strategia a step di OpenAI ha portato a risultati clamorosi con GPT-3 e DALL-E 2, perché invece le aziende non specializzate cercano di raggiungere 20 obiettivi diversi contemporaneamente?
Complimenti, finalmente una lettura interessantissima sul funzionamento di ChatGPT, GPT-3.
Filippo fantastico.
Riesci cortesemente a fare degli esempi sul set degli obiettivi? Magari applicazioni corrette e non corrette.
Grazie