Modelli e piattaforme di IA
Ascesa dell’NLP con i modelli Transformer | Un’analisi completa di T5, BERT e GPT
Il Natural Language Processing (NLP) ha vissuto alcuni dei più grandi 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’AI conversazionale.
Per apprezzare appieno il significato dei Transformer, dobbiamo prima guardare ai precursori e ai blocchi fondamentali che hanno gettato le basi per questa rivoluzionaria architettura.
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 non aveva alcuna forma di comprensione semantica o sintattica. La codifica one-hot è un esempio di questa limitazione.
La codifica one-hot è un processo in cui le variabili categoriche vengono convertite in una rappresentazione vettoriale binaria in cui 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 codifica one-hot
Supponiamo di avere un vocabolario minuscolo con solo cinque parole: [“king”, “queen”, “man”, “woman”, “child”]. I vettori di codifica 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 come la dimensione del nostro vocabolario e come la rappresentazione vettoriale one-hot della i-esima parola nel vocabolario, la rappresentazione matematica di sarebbe:
dove la i-esima posizione è 1 e tutte le altre posizioni sono 0.
Il principale svantaggio della codifica one-hot è che tratta ogni parola come un’entità isolata, senza alcuna relazione con le 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 (GOOGL ) guidato da Tomas Mikolov nel 2013, Word2Vec rappresentava 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 della codifica 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 l’una all’altra nello spazio vettoriale.
Per illustrare, supponiamo di avere addestrato un modello Word2Vec e di rappresentare le parole in uno spazio ipotetico tridimensionale. Gli embeddings (che sono solitamente più di 3D ma ridotti qui per semplicità) potrebbero essere 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]
Mentre questi numeri sono fittizi, illustrano come le parole simili hanno vettori simili.
Rappresentazione matematica
Se rappresentiamo l’embedding Word2Vec di una parola come , e il nostro spazio di embedding ha dimensioni, allora può essere rappresentato come:
Relazioni semantiche
Word2Vec può anche catturare relazioni complesse, come analogie. Ad esempio, la famosa relazione catturata dagli embeddings Word2Vec è:
vector(“king”) – vector(“man”) + vector(“woman”)≈vector(“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 target dai suoi contesti di parole, mentre Skip-Gram fa il contrario, predice le parole di contesto da una parola target. Ciò ha permesso alle macchine di iniziare a comprendere l’uso e il significato delle parole in modo più sfumato.
Modeling di sequenze: RNN e LSTM
Mentre il campo progrediva, l’attenzione si spostò verso la comprensione di sequenze di testo, fondamentale per compiti come la traduzione automatica, la sintesi di testo e l’analisi del sentimento. Le Reti Neurali Ricorrenti (RNN) divennero il pilastro per queste applicazioni grazie alla 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 scomparso, dove le informazioni si perdono lungo le lunghe sequenze, rendendo difficile imparare le correlazioni tra eventi distanti.
Le reti Long Short-Term Memory (LSTM), introdotte da Sepp Hochreiter e Jürgen Schmidhuber nel 1997, affrontarono questo problema con un’architettura più sofisticata. Le LSTM hanno porte che controllano il flusso di informazioni: la porta di input, la porta di output e la porta di forget. 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 un’ampia gamma di compiti NLP.
L’architettura Transformer
Il panorama dell’NLP subì 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 LSTM e utilizza invece un meccanismo chiamato ‘auto-attenzione’ per pesare l’influenza delle diverse parti dei dati di input.
L’idea fondamentale del Transformer è che possa elaborare l’intero input contemporaneamente, 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 layer che hanno la stessa struttura generale ma servono scopi diversi.
Encoder:
- Ruolo: Il ruolo dell’encoder è 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; semplicemente trasforma l’input in uno stato che il decoder può utilizzare.
- Funzionalità: Ogni layer 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 layer precedente dell’encoder—quindi, può imparare il contesto intorno a ogni parola.
- Embedding 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 embedding contestuali perché codificano non solo le parole individuali ma anche il loro contesto all’interno della frase.
Decoder:
- Ruolo: Il ruolo del decoder è di generare output dati sequenzialmente, un pezzo alla volta, in base all’input che riceve dall’encoder e a ciò che ha generato finora. È progettato per compiti come la generazione di testo, dove l’ordine di generazione è cruciale.
- Funzionalità: I layer 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 particolare posizione possa dipendere solo dagli output noti alle posizioni precedenti. Inoltre, i layer del decoder includono un secondo meccanismo di attenzione che si concentra sull’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 sottolayer all’interno dell’encoder e del decoder è cruciale per la capacità del modello di gestire compiti NLP complessi. Il meccanismo di auto-attenzione multi-testa, in particolare, consente al modello di concentrarsi selettivamente su diverse parti della sequenza, fornendo una comprensione ricca del contesto.
Modelli popolari che utilizzano 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 (Bidirectional Encoder Representations from Transformers): Introdotta da Google nel 2018, BERT rivoluzionò 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 raggiunto risultati di stato dell’arte su un’ampia gamma di compiti NLP.
T5 (Text-to-Text Transfer Transformer): Introdotta da Google nel 2020, T5 riformula tutti i compiti NLP come problemi di testo-per-testo, utilizzando un formato testuale unificato. Questo approccio semplifica il processo di applicazione del modello a una varietà di compiti, tra cui traduzione, riassunto e risposta alle domande.
GPT (Generative Pre-trained Transformer): 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 ottimizzati per vari compiti. La loro capacità di generare testo coerente e contestualmente rilevante li ha resi molto influenti sia nelle applicazioni accademiche che commerciali.
Ecco un confronto più approfondito dei modelli T5, BERT e GPT su varie dimensioni:
1. Tokenizzazione e Vocabolario
- BERT: Utilizza la tokenizzazione WordPiece con un vocabolario di circa 30.000 token.
- GPT: Utilizza la codifica Byte Pair Encoding (BPE) con un vocabolario di grandi dimensioni (ad esempio, GPT-3 ha un 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: Masked Language Modeling (MLM) e Next Sentence Prediction (NSP).
- GPT: Causal Language Modeling (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 sentinel e il modello impara a ricostruire il testo originale.
3. Rappresentazione di input
- BERT: Le embedding di token, segmento e posizionali vengono combinate per rappresentare l’input.
- GPT: Le embedding di token e posizionali vengono combinate (nessuna embedding di segmento poiché non è progettato per compiti di coppia di frasi).
- T5: Solo embedding 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 token di prestare attenzione a tutti i token 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 codici posizionali.
5. Architettura del modello
- BERT: Architettura solo encoder con多 strati di blocchi Transformer.
- GPT: Architettura solo decoder, anch’essa con多 strati ma progettata per compiti generativi.
- T5: Architettura encoder-decoder, dove sia l’encoder che il decoder sono composti da strati Transformer.
6. Approccio di fine-tuning
- BERT: Adatta gli stati nascosti finali del modello pre-addestrato per compiti downstream con layer di output aggiuntivi se necessario.
- GPT: Aggiunge un layer lineare in cima al Transformer e ottimizza sul compito downstream utilizzando lo stesso obiettivo di modeling linguistico causale.
- T5: Converte tutti i compiti in un formato testo-per-testo, dove il modello viene ottimizzato 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”, 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-per-sequenza.
9. Adattabilità ai compiti downstream
- BERT: Richiede layer di testa specifici del compito e ottimizzazione per ogni compito downstream.
- GPT: È generativo per natura e può essere promosso per eseguire compiti con minimi cambiamenti alla sua struttura.
- T5: Tratta ogni compito come un problema di “testo-per-testo”, rendendolo intrinsecamente flessibile e adattabile a nuovi compiti.
10. Interpretazione ed esplicabilità
- BERT: La natura bidirezionale fornisce embedding contestuali ricchi ma può essere più difficile da interpretare.
- GPT: Il contesto unidirezionale può essere più facile 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 complessa 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 notevolmente la velocità e l’efficienza dell’addestramento di grandi reti neurali. Hanno introdotto il meccanismo di auto-attenzione, 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 alle domande e riassunto 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 pochi esempi, e metodi per un trasferimento di apprendimento più efficace sono all’avanguardia della ricerca attuale.
I modelli linguistici 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 set di dati di addestramento curati a regolazioni post-addestramento finalizzate alla correttezza e alla neutralità.















