Nel 2017 un gruppo di ricercatori Google ha pubblicato e presentato lo storico documento “Attention Is All You Need“. Accolto in maniera troppo fredda anche all’interno della società di Mountain View, ha permesso ai concorrenti di oggi – come OpenAI – e a tanti altri soggetti di comprendere i rudimenti di concetti come i Transformer e lo schema dell'”attenzione”, basilari nei moderni modelli generativi usati nelle applicazioni di intelligenza artificiale. Ne parliamo dettagliatamente nell’articolo in cui spieghiamo come funzionano i LLM (Large Language Model), senza usare la matematica (o quasi).
La prima versione del chatbot ChatGPT ha fatto il suo debutto a fine novembre 2022 ma ben tre anni prima, nel 2019, gli ingegneri di OpenAI presentarono il loro modello di linguaggio GPT-2. Quella mossa suscitò un acceso dibattito nella comunità scientifica e tecnologica. GPT-2 fu da molti considerato “troppo pericoloso”, per la sua capacità di generare testi coerenti e realistici.
Come riprodurre il funzionamento di GPT-2 in soli 90 minuti con un investimento di appena 18,50 euro
Andrej Karpathy, cofondatore di OpenAI, ha a più riprese spiegato cos’è ChatGPT e come funzionano i modelli generativi, proponendo esempi concreti.
GPT-2 ha rappresentato un significativo passo avanti nel campo dei modelli di linguaggio generativi. Nonostante sia ormai ampiamente superato dai modelli più recenti, GPT-2 ha introdotto alcune caratteristiche distintive, conservate poi in seguito anche nei modelli più avanzati come GPT-4 e il recentissimo GPT-4o multimodale, presentato a metà maggio 2024.
Disponibile in diverse dimensioni, con il modello più grande basato su 1,5 miliardi di parametri, GPT-2 si serve di un vocabolario limitato, composto da 50.257 voci. Utilizza l’architettura Transformer, per abilitare un’elaborazione efficiente di sequenze di testo lunghe grazie alla capacità di catturare relazioni a lungo raggio tra i termini presenti.
Un modello come come GPT-3 aveva 175 miliardi di parametri, mentre GPT-4 (sebbene le specifiche precise non siano pubbliche) potrebbe usare circa 1760 miliardi di parametri.
A cosa serve riportare in vita GPT-2 al giorno d’oggi
Con un intervento pubblicato su X, Karpathy spiega di aver scelto di riprodurre GPT-2 (nella versione più compatta da 124 milioni di parametri) per diversi motivi. Il modello generativo è una vera e propria pietra miliare nella storia dell’intelligenza artificiale e, per le sue peculiarità, è un candidato ideale utile per dimostrare le tecniche di addestramenti più efficaci ed efficienti.
Per costruire un sistema basato su GPT-2, Karpathy ha scelto il servizio Lambda, che offre GPU per le elaborazioni di intelligenza artificiale accessibili tramite cloud. La configurazione utilizzata comprende un sistema operativo Linux x86 64bit con Ubuntu 22.04 e la libreria CUDA 12. L’ingegnere si è poi servito di Miniconda, PyTorch e di altre librerie necessarie per la tokenizzazione del dataset FineWeb, contenente 1 miliardo di token e una lunghezza massima della sequenza di 1024 token.
L’addestramento con un insieme di dati già disponibili: FineWeb
FineWeb è un grande corpus di dati testuali estratti da pagine Web in lingua inglese. Creato dai ricercatori dell’Università di Stanford ha come obiettivo quello di fornire un ampio insieme di dati per l’addestramento di modelli di elaborazione del linguaggio naturale. Il dataset nel suo complesso ospita oltre 63 milioni di documenti Web per un totale di più di 343 miliardi di token.
In questo post pubblicato su GitHub, Karpathy fornisce la procedura guidata che gli interessati possono seguire per riprodurre la fase di addestramento del modello a partire da zero.
Al di là dell’installazione di Miniconda e PyTorch, l’esperto fornisce i suggerimenti per l’installazione delle librerie, l’avvio della tokenizzazione e dell’addestramento vero e proprio. Come abbiamo visto nell’articolo citato in apertura, la tokenizzazione è un processo fondamentale nell’elaborazione del linguaggio naturale che consiste nella suddivisione del testo in unità più piccole chiamate token. I token possono essere parole, parti di parole, caratteri o gruppi di parole. Questo processo permette ai modelli di linguaggio, come GPT-2, di gestire e analizzare il testo in modo più efficiente.
Risultati e valutazioni
Utilizzando otto nodi A100 80GB SXM, Karpathy è riuscito a ricreare il modello GPT-2 124M in circa 90 minuti, con un investimento totale inferiore a 20 euro. La valutazione del modello sul dataset di validazione FineWeb e il benchmark HellaSwag hanno mostrato risultati promettenti, confermando l’efficacia della procedura seguita.
Karpathy ha anche creato un modello GPT-2 350M, che ha richiesto 14 ore di addestramento, con un costo di 185 euro. Questo modello più grande rappresenta un aumento di 10 volte sia nel tempo che nel costo rispetto alla versione 124M.
I parametri sono valori interni che il modello apprende nel corso del processo di addestramento. Sono essenziali per il funzionamento del modello, in quanto determinano come il modello trasforma l’input nei risultati desiderati. In particolare, nei modelli di linguaggio come GPT-2 (e in tutti i suoi successori), i parametri includono i pesi e i bias delle connessioni tra i neuroni nei vari strati della rete neurale. Spieghiamo nel dettaglio questi concetti nell’articolo incentrato sul funzionamento dei LLM.
La riproduzione di GPT-2 rappresenta un traguardo significativo perché dimostra come un singolo utente, appoggiandosi alle risorse disponibili sul cloud e facilmente “affittabili” a consumo, sia possibile addestrare modelli avanzati in tempi ridotti e con costi contenuti.
Credit immagine in apertura: iStock.com – BlackJack3D