Intelligenza artificiale
Ascesa dell’NLP con i Modelli Transformer | Un’Analisi Completa di T5, BERT e GPT

L’elaborazione del linguaggio naturale (NLP) ha vissuto alcuni dei più importanti progressi negli ultimi anni, principalmente grazie all’architettura transformer. Questi progressi non solo hanno migliorato le capacità delle macchine di comprendere e generare il linguaggio umano, ma hanno anche ridefinito il panorama di numerose applicazioni, dalle motori di ricerca all’intelligenza artificiale conversazionale.
Per apprezzare appieno il significato dei transformer, dobbiamo prima guardare ai precursori e ai blocchi costitutivi che hanno gettato le basi per questa architettura rivoluzionaria.
Tecniche NLP Precoci: Le Fondamenta Prima dei Transformer
Word Embeddings: Da One-Hot a Word2Vec
Negli approcci NLP tradizionali, la rappresentazione delle parole era spesso letterale e mancava di qualsiasi forma di comprensione semantica o sintattica. L’encoding one-hot è un esempio di questa limitazione.
L’encoding one-hot è un processo mediante il quale le variabili categoriche vengono convertite in una rappresentazione vettoriale binaria dove solo un bit è “hot” (impostato su 1) mentre tutti gli altri sono “cold” (impostati su 0). Nel contesto dell’NLP, ogni parola in un vocabolario è rappresentata da vettori one-hot dove ogni vettore è della dimensione del vocabolario, e ogni parola è rappresentata da un vettore con tutti 0 e un 1 all’indice corrispondente a quella parola nell’elenco del vocabolario.
Esempio di Encoding One-Hot
Supponiamo di avere un vocabolario minuscolo con solo cinque parole: [“king”, “queen”, “man”, “woman”, “child”]. I vettori one-hot per ogni parola sarebbero così:
- “king” -> [1, 0, 0, 0, 0]
- “queen” -> [0, 1, 0, 0, 0]
- “man” -> [0, 0, 1, 0, 0]
- “woman” -> [0, 0, 0, 1, 0]
- “child” -> [0, 0, 0, 0, 1]
Rappresentazione Matematica
Se denotiamo V come la dimensione del nostro vocabolario e wi come la rappresentazione vettoriale one-hot della i-esima parola nel vocabolario, la rappresentazione matematica di wi sarebbe:
wi=[0,0,…,1,…,0,0] dove la posizione i-esima è 1 e tutte le altre posizioni sono 0.dove la posizione i-esima è 1 e tutte le altre posizioni sono 0.
Il principale svantaggio dell’encoding one-hot è che tratta ogni parola come un’entità isolata, senza alcun rapporto con altre parole. Ciò risulta in vettori sparsi e ad alta dimensionalità che non catturano alcuna informazione semantica o sintattica sulle parole.
L’introduzione di word embeddings, in particolare Word2Vec, è stato un momento cruciale nell’NLP. Sviluppato da un team di Google guidato da Tomas Mikolov nel 2013, Word2Vec ha rappresentato le parole in uno spazio vettoriale denso, catturando relazioni sintattiche e semantiche tra le parole in base al loro contesto all’interno di grandi corpora di testo.
A differenza dell’encoding one-hot, Word2Vec produce vettori densi, solitamente con centinaia di dimensioni. Le parole che appaiono in contesti simili, come “king” e “queen”, avranno rappresentazioni vettoriali che sono più vicine tra loro nello spazio vettoriale.
Per illustrare, supponiamo di avere addestrato un modello Word2Vec e di rappresentare ora le parole in uno spazio ipotetico tridimensionale. Le embeddings (che sono solitamente più di 3D ma ridotte qui per semplicità) potrebbero sembrare così:
- “king” -> [0.2, 0.1, 0.9]
- “queen” -> [0.21, 0.13, 0.85]
- “man” -> [0.4, 0.3, 0.2]
- “woman” -> [0.41, 0.33, 0.27]
- “child” -> [0.5, 0.5, 0.1]
Sebbene questi numeri siano fittizi, illustrano come parole simili hanno vettori simili.
Rappresentazione Matematica
Se rappresentiamo l’embedding Word2Vec di una parola come vw, e il nostro spazio di embedding ha d dimensioni, allora vw può essere rappresentato come:
vw=[v1,v2,…,vd] dove ogni vi è un numero in virgola mobile che rappresenta una caratteristica della parola nello spazio di embedding.
Relazioni Semantiche
Word2Vec può anche catturare relazioni complesse, come analogie. Ad esempio, la famosa relazione catturata dalle embeddings Word2Vec è:
vettore(“king”) – vettore(“man”) + vettore(“woman”)≈vettore(“queen”)vettore(“king”) – vettore(“man”) + vettore(“woman”)≈vettore(“queen”)
Ciò è possibile perché Word2Vec regola i vettori delle parole durante l’addestramento in modo che le parole che condividono contesti comuni nel corpus siano posizionate vicino nello spazio vettoriale.
Word2Vec utilizza due principali architetture per produrre una rappresentazione distribuita delle parole: Continuous Bag-of-Words (CBOW) e Skip-Gram. CBOW predice una parola bersaglio dalle parole di contesto, mentre Skip-Gram fa il contrario, predice le parole di contesto da una parola bersaglio. Ciò ha permesso alle macchine di iniziare a comprendere l’uso e il significato delle parole in modo più sfumato.
Modellazione di Sequenze: RNN e LSTMs
Man mano che il campo progrediva, l’attenzione si spostava verso la comprensione di sequenze di testo, che era cruciale per attività come la traduzione automatica, la sintesi di testo e l’analisi dei sentimenti. Le Reti Neurali Ricorrenti (RNN) divennero il pilastro per queste applicazioni a causa della loro capacità di gestire dati sequenziali mantenendo una forma di memoria.
Tuttavia, le RNN non erano senza limitazioni. Lottavano con le dipendenze a lungo termine a causa del problema del gradiente che scompare, dove le informazioni vengono perse su lunghe sequenze, rendendo difficile l’apprendimento di correlazioni tra eventi distanti.
Le Reti Neurali a Memoria a Lungo Termine (LSTMs), introdotte da Sepp Hochreiter e Jürgen Schmidhuber nel 1997, affrontarono questo problema con un’architettura più sofisticata. Le LSTMs hanno porte che controllano il flusso di informazioni: la porta di input, la porta di forget e la porta di output. Queste porte determinano quali informazioni vengono memorizzate, aggiornate o scartate, permettendo alla rete di preservare le dipendenze a lungo termine e migliorando notevolmente le prestazioni su una vasta gamma di attività NLP.
L’Architettura Transformer
Il panorama dell’NLP ha subito una trasformazione drammatica con l’introduzione del modello transformer nel paper “Attention is All You Need” di Vaswani et al. nel 2017. L’architettura transformer si allontana dall’elaborazione sequenziale delle RNN e delle LSTMs e utilizza invece un meccanismo chiamato ‘auto-attenzione’ per pesare l’influenza delle diverse parti dei dati di input.
L’idea principale del transformer è che può elaborare l’intero dato di input in una sola volta, anziché sequenzialmente. Ciò consente una maggiore parallelizzazione e, di conseguenza, aumenti significativi nella velocità di addestramento. Il meccanismo di auto-attenzione consente al modello di concentrarsi su diverse parti del testo mentre lo elabora, il che è cruciale per comprendere il contesto e le relazioni tra le parole, indipendentemente dalla loro posizione nel testo.
Encoder e Decoder nei Transformer:
Nel modello Transformer originale, come descritto nel paper “Attention is All You Need” di Vaswani et al., l’architettura è divisa in due parti principali: l’encoder e il decoder. Entrambe le parti sono composte da livelli che hanno la stessa struttura generale ma servono scopi diversi.
Encoder:
- Ruolo: Il ruolo dell’encoder è quello di elaborare i dati di input e creare una rappresentazione che catturi le relazioni tra gli elementi (come le parole in una frase). Questa parte del transformer non genera nuovo contenuto; trasforma semplicemente l’input in uno stato che il decoder può utilizzare.
- Funzionalità: Ogni livello dell’encoder ha meccanismi di auto-attenzione e reti neurali feed-forward. Il meccanismo di auto-atenzione consente a ogni posizione nell’encoder di prestare attenzione a tutte le posizioni nel livello precedente dell’encoder—quindi, può imparare il contesto intorno a ogni parola.
- Embeddings Contestuali: L’output dell’encoder è una serie di vettori che rappresentano la sequenza di input in uno spazio ad alta dimensionalità. Questi vettori sono spesso chiamati embeddings contestuali perché codificano non solo le parole individuali ma anche il loro contesto all’interno della frase.
Decoder:
- Ruolo: Il ruolo del decoder è quello di generare dati di output sequenzialmente, un pezzo alla volta, in base all’input che riceve dall’encoder e a ciò che ha generato finora. È progettato per attività come la generazione di testo, dove l’ordine di generazione è cruciale.
- Funzionalità: I livelli del decoder contengono anche meccanismi di auto-atenzione, ma sono mascherati per impedire alle posizioni di prestare attenzione a posizioni successive. Ciò garantisce che la previsione per una posizione particolare possa dipendere solo da output noti in posizioni precedenti. Inoltre, i livelli del decoder includono un secondo meccanismo di attenzione che presta attenzione all’output dell’encoder, integrando il contesto dall’input nel processo di generazione.
- Capacità di Generazione Sequenziale: Ciò si riferisce alla capacità del decoder di generare una sequenza un elemento alla volta, costruendo su ciò che ha già prodotto. Ad esempio, quando si genera testo, il decoder predice la prossima parola in base al contesto fornito dall’encoder e alla sequenza di parole che ha già generato.
Ognuno di questi sottolivelli all’interno dell’encoder e del decoder è cruciale per la capacità del modello di gestire compiti NLP complessi. Il meccanismo di auto-atenzione multi-testa consente al modello di concentrarsi selettivamente su diverse parti della sequenza, fornendo una comprensione ricca del contesto.
Modelli Popolari che Sfruttano i Transformer
Dopo il successo iniziale del modello transformer, ci fu un’esplosione di nuovi modelli costruiti sulla sua architettura, ognuno con le proprie innovazioni e ottimizzazioni per diversi compiti:
BERT (Rappresentazioni Encoder Bidirezionali da Transformer): Introdotta da Google nel 2018, BERT ha rivoluzionato il modo in cui le informazioni contestuali vengono integrate nelle rappresentazioni linguistiche. Addestrando su un grande corpus di testo con un modello linguistico mascherato e una previsione di frase successiva, BERT cattura contesti bidirezionali ricchi e ha ottenuto risultati di stato dell’arte su una vasta gamma di attività NLP.
T5 (Transformer di Trasferimento Testo-Testo): Introdotta da Google nel 2020, T5 riformula tutti i compiti NLP come un problema di trasferimento testo-testo, utilizzando un formato testuale unificato. Questo approccio semplifica il processo di applicazione del modello a una varietà di compiti, tra cui traduzione, sintesi e risposta a domande.
GPT (Transformer Generativo Pre-addestrato): Sviluppato da OpenAI, la linea di modelli GPT iniziò con GPT-1 e raggiunse GPT-4 nel 2023. Questi modelli sono stati pre-addestrati utilizzando l’apprendimento non supervisionato su grandi quantità di dati testuali e adattati per vari compiti. La loro capacità di generare testo coerente e contestualmente pertinente li ha resi estremamente influenti in applicazioni AI sia accademiche che commerciali.
Ecco una comparazione più approfondita dei modelli T5, BERT e GPT su diverse dimensioni:
1. Tokenizzazione e Vocabolario
- BERT: Utilizza la tokenizzazione WordPiece con una dimensione del vocabolario di circa 30.000 token.
- GPT: Utilizza la codifica Byte Pair (BPE) con una grande dimensione del vocabolario (ad esempio, GPT-3 ha una dimensione del vocabolario di 175.000).
- T5: Utilizza la tokenizzazione SentencePiece che tratta il testo come grezzo e non richiede parole pre-segmentate.
2. Obiettivi di Pre-addestramento
- BERT: Modello linguistico mascherato (MLM) e previsione di frase successiva (NSP).
- GPT: Modello linguistico causale (CLM), dove ogni token predice il token successivo nella sequenza.
- T5: Utilizza un obiettivo di denoising dove span di testo casuali vengono sostituiti con un token sentinella e il modello impara a ricostruire il testo originale.
3. Rappresentazione dell’Input
- BERT: Le embeddings di token, segmento e posizionali vengono combinate per rappresentare l’input.
- GPT: Le embeddings di token e posizionali vengono combinate (nessuna embedding di segmento poiché non è progettato per compiti di coppia di frasi).
- T5: Solo embeddings di token con codici posizionali relativi aggiunti durante le operazioni di attenzione.
4. Meccanismo di Attenzione
- BERT: Utilizza codici posizionali assoluti e consente a ogni posizione nell’encoder di prestare attenzione a tutte le posizioni a sinistra e a destra (attenzione bidirezionale).
- GPT: Utilizza anche codici posizionali assoluti ma limita l’attenzione ai token precedenti (attenzione unidirezionale).
- T5: Implementa una variante del transformer che utilizza bias di posizione relativi invece di embeddings posizionali.
5. Architettura del Modello
- BERT: Architettura solo encoder con多 livelli di blocchi transformer.
- GPT: Architettura solo decoder, anch’essa con più livelli ma progettata per compiti generativi.
- T5: Architettura encoder-decoder, dove sia l’encoder che il decoder sono composti da livelli transformer.
6. Approccio di Adattamento
- BERT: Adatta gli stati nascosti finali del modello pre-addestrato per compiti a valle con layer di output aggiuntivi se necessario.
- GPT: Aggiunge uno strato lineare in cima al transformer e adatta sul compito a valle utilizzando lo stesso obiettivo di modello linguistico causale.
- T5: Converte tutti i compiti in un formato testo-testo, dove il modello viene adattato per generare la sequenza di output dalla sequenza di input.
7. Dati di Addestramento e Scala
- BERT: Addestrato su BooksCorpus e Wikipedia inglese.
- GPT: GPT-2 e GPT-3 sono stati addestrati su dataset diversi estratti da internet, con GPT-3 addestrato su un corpus ancora più grande chiamato Common Crawl.
- T5: Addestrato sul “Colossal Clean Crawled Corpus”, che è una versione grande e pulita del Common Crawl.
8. Gestione del Contesto e Bidirezionalità
- BERT: Progettato per comprendere il contesto in entrambe le direzioni contemporaneamente.
- GPT: Addestrato per comprendere il contesto in direzione in avanti (da sinistra a destra).
- T5: Può modellare il contesto bidirezionale nell’encoder e unidirezionale nel decoder, adatto per compiti di sequenza-sequenza.
9. Adattabilità ai Compiti a Valle
- BERT: Richiede layer di testa specifici del compito e adattamento per ogni compito a valle.
- GPT: È generativo per natura e può essere istruito per eseguire compiti con minimi cambiamenti alla sua struttura.
- T5: Tratta ogni compito come un problema “testo-testo”, rendendolo intrinsecamente flessibile e adattabile a nuovi compiti.
10. Interpretazione e Spiegabilità
- BERT: La natura bidirezionale fornisce embeddings contestuali ricchi ma può essere più difficile da interpretare.
- GPT: Il contesto unidirezionale può essere più semplice da seguire ma manca della profondità del contesto bidirezionale.
- T5: La struttura encoder-decoder fornisce una chiara separazione dei passaggi di elaborazione ma può essere complesso da analizzare a causa della sua natura generativa.
L’Impatto dei Transformer sull’NLP
I transformer hanno rivoluzionato il campo dell’NLP consentendo ai modelli di elaborare sequenze di dati in parallelo, aumentando drasticamente la velocità e l’efficienza dell’addestramento di grandi reti neurali. Hanno introdotto il meccanismo di auto-atenzione, permettendo ai modelli di pesare l’importanza di ogni parte dei dati di input, indipendentemente dalla distanza all’interno della sequenza. Ciò ha portato a miglioramenti senza precedenti in una vasta gamma di compiti NLP, tra cui traduzione, risposta a domande e sintesi di testo.
La ricerca continua a spingere i confini di ciò che i modelli basati su transformer possono realizzare. GPT-4 e i suoi contemporanei non sono solo più grandi in scala ma anche più efficienti e capaci grazie ai progressi nell’architettura e nei metodi di addestramento. Tecniche come l’apprendimento a pochi esempi, dove i modelli eseguono compiti con esempi minimi, e metodi per un apprendimento di trasferimento più efficace sono all’avanguardia della ricerca attuale.
I modelli del linguaggio come quelli basati su transformer imparano dai dati che possono contenere pregiudizi. Ricercatori e pratici stanno attivamente lavorando per identificare, comprendere e mitigare questi pregiudizi. Le tecniche vanno da dataset di addestramento curati a regolazioni post-addestramento finalizzate alla correttezza e alla neutralità.













