L’ascesa dell’NLP con modelli Transformer | Un’analisi completa di T5, BERT e GPT

L'ascesa dell'NLP tramite modelli Transformer | Un'analisi approfondita di T5, BERT e GPT

Elaborazione del Linguaggio Naturale (NLP) ha vissuto alcune delle scoperte più significative degli ultimi anni, principalmente grazie all’architettura del trasformatore. Queste scoperte non solo hanno migliorato le capacità delle macchine di comprendere e generare il linguaggio umano, ma hanno anche ridefinito il panorama di numerose applicazioni, dai motori di ricerca all’Intelligenza Artificiale conversazionale.

Per apprezzare appieno l’importanza dei trasformatori, è necessario prima guardare indietro ai predecessori e ai mattoni fondamentali che hanno gettato le basi per questa rivoluzionaria architettura.

Tecniche NLP Precoci: Fondamenta Prima dei Trasformatori

Word Embeddings: Da One-Hot a Word2Vec

Nelle approcci tradizionali di NLP, la rappresentazione delle parole era spesso letterale e mancava di qualsiasi forma di comprensione semantica o sintattica. L’encoding one-hot è un esempio lampante di questa limitazione.

L’encoding one-hot è un processo mediante il quale le variabili categoriche vengono convertite in una rappresentazione vettoriale binaria in cui solo un bit è “hot” (impostato a 1) mentre tutti gli altri sono “cold” (impostati a 0). Nel contesto del NLP, ogni parola di un vocabolario è rappresentata da vettori one-hot in cui ogni vettore ha la dimensione del vocabolario, e ogni parola è rappresentata da un vettore con tutti 0 e un 1 all’indice corrispondente a quella parola nella lista del vocabolario.

Esempio di Encoding One-Hot

Supponiamo di avere un piccolo vocabolario con solo cinque parole: [“re”, “regina”, “uomo”, “donna”, “bambino”]. Gli encoding one-hot per ogni parola sarebbero così:

  • “re” -> [1, 0, 0, 0, 0]
  • “regina” -> [0, 1, 0, 0, 0]
  • “uomo” -> [0, 0, 1, 0, 0]
  • “donna” -> [0, 0, 0, 1, 0]
  • “bambino” -> [0, 0, 0, 0, 1]

Rappresentazione Matematica

Se indichiamo con V 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 i-esima posizione è 1 e tutte le altre posizioni sono 0.

Il principale svantaggio dell’encoding one-hot è che tratta ogni parola come un’entità isolata, senza alcuna relazione con altre parole. Si ottengono vettori sparsi e ad alta dimensionalità che non catturano alcuna informazione semantica o sintattica sulle parole.

L’introduzione degli embeddings delle parole, in particolare Word2Vec, è stato un momento cruciale nel NLP. Sviluppato da un team di Google guidato da Tomas Mikolov nel 2013, Word2Vec rappresentava le parole in uno spazio vettoriale denso, catturando le relazioni sintattiche e semantiche delle parole basate sul loro contesto all’interno di grandi corpora di testo.

A differenza dell’encoding one-hot, Word2Vec produce vettori densi, tipicamente con centinaia di dimensioni. Parole che appaiono in contesti simili, come “re” e “regina”, avranno rappresentazioni vettoriali più vicine tra loro nello spazio vettoriale.

A scopo illustrativo, supponiamo di aver addestrato un modello Word2Vec e ora rappresentiamo le parole in uno spazio ipotetico tridimensionale. Gli embeddings (che di solito hanno più di 3 dimensioni, ma qui ridotti per semplicità) potrebbero assomigliare a qualcosa del genere:

  • “re” -> [0.2, 0.1, 0.9]
  • “regina” -> [0.21, 0.13, 0.85]
  • “uomo” -> [0.4, 0.3, 0.2]
  • “donna” -> [0.41, 0.33, 0.27]
  • “bambino” -> [0.5, 0.5, 0.1]

Anche se questi numeri sono finti, illustrano come parole simili abbiano vettori simili.

Rappresentazione Matematica

Se rappresentiamo l’incorporamento di una parola Word2Vec come vw​, e il nostro spazio di incorporamento 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 incorporamento.

Relazioni Semantiche

Word2Vec può anche catturare relazioni complesse, come analogie. Ad esempio, la famosa relazione catturata dagli incorporamenti di Word2Vec è:

vettore(“re”) – vettore(“uomo”) + vettore(“donna”)≈vettore(“regina”)vettore(“re”) – vettore(“uomo”) + vettore(“donna”)≈vettore(“regina”)

Questo è possibile perché Word2Vec regola i vettori delle parole durante l’addestramento in modo che le parole che condividono contesti comuni nel corpus siano posizionate vicine nello spazio vettoriale.

Word2Vec utilizza due architetture principali per produrre una rappresentazione distribuita delle parole: Continuous Bag-of-Words (CBOW) e Skip-Gram. CBOW predice una parola obiettivo dalle sue parole di contesto circostanti, mentre Skip-Gram fa il contrario, predice le parole di contesto da una parola obiettivo. 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 LSTM

Con l’evolversi del campo, l’attenzione si è spostata verso la comprensione delle sequenze di testo, che era cruciale per compiti come la traduzione automatica, la sintesi del testo e l’analisi del sentiment. Le Reti Neurali Ricorrenti (RNN) sono diventate la base per queste applicazioni grazie alla loro capacità di gestire dati sequenziali mantenendo una forma di memoria.

Tuttavia, le RNN avevano dei limiti. Hanno avuto difficoltà con le dipendenze a lungo termine a causa del problema del gradiente scomparso, dove le informazioni si perdono su sequenze lunghe, rendendo difficile apprendere le correlazioni tra eventi distanti.

Le reti Long Short-Term Memory (LSTM), introdotte da Sepp Hochreiter e Jürgen Schmidhuber nel 1997, hanno affrontato questo problema con un’architettura più sofisticata. Le LSTM hanno porte che controllano il flusso di informazioni: la porta di input, la porta di oblio e la porta di output. Queste porte determinano quali informazioni vengono memorizzate, aggiornate o scartate, consentendo alla rete di preservare le dipendenze a lungo termine e migliorando significativamente le prestazioni su una vasta gamma di compiti di elaborazione del linguaggio naturale.

L’Architettura Transformer

Il panorama del NLP ha subito una trasformazione drammatica con l’introduzione del modello transformer nel famoso articolo “Attention is All You Need” di Vaswani et al. nel 2017. L’architettura transformer si discosta dall’elaborazione sequenziale delle RNN e delle LSTM e utilizza invece un meccanismo chiamato ‘auto-attenzione’ per ponderare l’influenza delle diverse parti dei dati di input.

L’idea principale del transformer è che possa elaborare l’intero dato di input in una volta sola, anziché in modo sequenziale. Questo consente una maggiore parallelizzazione e, di conseguenza, aumenti significativi della velocità di addestramento. Il meccanismo di auto-attenzione permette 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 Transformers:

Nel modello originale del Transformer, come descritto nell’articolo “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 è 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 nuovi contenuti; semplicemente trasforma 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-attenzione consente a ogni posizione nell’encoder di prestare attenzione a tutte le posizioni nel livello precedente dell’encoder, quindi può apprendere il contesto intorno a ogni parola.
  • Incorporamenti Contestuali: L’output dell’encoder è una serie di vettori che rappresentano la sequenza di input in uno spazio ad alta dimensione. Questi vettori sono spesso chiamati incorporamenti contestuali perché codificano non solo le singole parole ma anche il loro contesto all’interno della frase.

Decoder:

  • Ruolo: Il ruolo del decoder è generare dati di output in sequenza, una parte alla volta, in base all’input ricevuto dall’encoder e a ciò che ha generato finora. È progettato per compiti come la generazione di testo, in cui l’ordine di generazione è cruciale.
  • Funzionalità: I livelli del decoder contengono anche meccanismi di autoattenzione, ma sono mascherati per evitare che le posizioni guardino posizioni successive. Ciò garantisce che la previsione per una particolare posizione possa dipendere solo da output noti alle posizioni precedenti. Inoltre, i livelli del decoder includono un secondo meccanismo di attenzione che guarda l’output dell’encoder, integrando il contesto dell’input nel processo di generazione.
  • Capacità di generazione sequenziale: Questo si riferisce alla capacità del decoder di generare una sequenza elemento per elemento, basandosi su ciò che ha già prodotto. Ad esempio, quando si genera del testo, il decoder predice la parola successiva in base al contesto fornito dall’encoder e alla sequenza di parole che ha già generato.

Ogni di queste sub-layer all’interno dell’encoder e del decoder è cruciale per la capacità del modello di gestire compiti complessi di NLP. Il meccanismo di attenzione multipla, in particolare, consente al modello di concentrarsi selettivamente su diverse parti della sequenza, fornendo una comprensione ricca del contesto.

Dopo il successo iniziale del modello transformer, c’è stata una proliferazione di nuovi modelli costruiti sulla sua architettura, ognuno con le proprie innovazioni e ottimizzazioni per compiti diversi:

BERT (Bidirectional Encoder Representations from Transformers): Introdotto da Google nel 2018, BERT ha rivoluzionato il modo in cui le informazioni contestuali vengono integrate nelle rappresentazioni linguistiche. Preallena su un grande corpus di testo con un modello di linguaggio mascherato e la previsione della frase successiva, BERT cattura contesti bidirezionali ricchi ed ha raggiunto risultati all’avanguardia su una vasta gamma di compiti di NLP.

BERT

BERT

T5 (Text-to-Text Transfer Transformer): Introdotto da Google nel 2020, T5 rappresenta tutti i compiti di NLP come un problema di testo-su-testo, utilizzando un formato unificato basato sul testo. Questo approccio semplifica il processo di applicazione del modello a una varietà di compiti, tra cui la traduzione, la sintesi e il question answering.

t5 Architecture

T5 Architecture

GPT (Generative Pre-trained Transformer): Sviluppato da OpenAI, la linea di modelli GPT è iniziata con GPT-1 e ha raggiunto GPT-4 entro il 2023. Questi modelli sono preallenati utilizzando l’apprendimento non supervisionato su grandi quantità di dati testuali e vengono sintonizzati per vari compiti. La loro capacità di generare testo coerente e rilevante in contesto li ha resi altamente influenti sia in applicazioni accademiche che commerciali di intelligenza artificiale.

GPT

GPT Architecture

Ecco un confronto più approfondito dei modelli T5, BERT e GPT su varie dimensioni:

1. Tokenizzazione e Vocabolario

  • BERT: Utilizza la tokenizzazione WordPiece con una dimensione del vocabolario di circa 30.000 tokens.
  • 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 presegmentate.

2. Obiettivi di Preallenamento

  • BERT: Modello di Linguaggio Mascherato (MLM) e Previsione della Frase Successiva (NSP).
  • GPT: Modello di Linguaggio Causale (CLM), in cui ogni token predice il token successivo nella sequenza.
  • T5: Utilizza un obiettivo di rimozione del rumore in cui tratti casuali di testo vengono sostituiti con un token sentinella e il modello impara a ricostruire il testo originale.

3. Rappresentazione dell’Input

  • BERT: I Token, Segmento e Rappresentazioni Posizionali sono combinati per rappresentare l’input.
  • GPT: I Token e Rappresentazioni Posizionali sono combinati (nessuna rappresentazione del segmento in quanto non è stato progettato per compiti di coppie di frasi).
  • T5: Solo Rappresentazioni dei Token con codifica posizionale relativa aggiunta durante le operazioni di attenzione.

4. Meccanismo di Attenzione

  • BERT: Utilizza codifiche posizionali assolute e consente a ciascun token di prestare attenzione a tutti i token a sinistra e a destra (attenzione bidirezionale).
  • GPT: Utilizza anche codifiche posizionali assolute ma limita l’attenzione solo ai token precedenti (attenzione unidirezionale).
  • T5: Implementa una variante del transformer che utilizza bias di posizione relativa invece di rappresentazioni posizionali.

5. Architettura del Modello

  • BERT: Architettura solo Encoder con multiple layer di blocchi di transformer.
  • GPT: Architettura solo Decoder, anch’essa con multiple layer ma progettata per compiti generativi.
  • T5: Architettura Encoder-decoder, in cui sia l’encoder che il decoder sono composti da layer di transformer.

6. Approccio di Fine-tuning

  • BERT: Adatta gli stati nascosti finali del modello pre-addestrato per i compiti successivi con layer di output aggiuntivi se necessari.
  • GPT: Aggiunge un layer lineare sopra il transformer e si sintonizza sul compito successivo utilizzando l’obiettivo di modellamento linguistico causale.
  • T5: Converte tutti i compiti in un formato di testo-a-testo, in cui il modello viene sintonizzato per generare la sequenza target dalla sequenza di input.

7. Dati di Addestramento e Scala

  • BERT: Addestrato su BooksCorpus e Wikipedia in inglese.
  • GPT: GPT-2 e GPT-3 sono stati addestrati su diversi dataset estratti da internet, con GPT-3 addestrato su un corpus ancora più grande chiamato Common Crawl.
  • T5: Addestrato su “Colossal Clean Crawled Corpus”, che è una versione ampia e pulita di Common Crawl.

8. Gestione del Contesto e della Bidirezionalità

  • BERT: Progettato per comprendere il contesto in entrambe le direzioni contemporaneamente.
  • GPT: Addestrato per comprendere il contesto in direzione avanti (da sinistra a destra).
  • T5: Può modellare il contesto bidirezionale nell’encoder e unidirezionale nel decoder, adatto per compiti sequenza-a-sequenza.

9. Adattabilità ai Compiti Successivi

  • BERT: Richiede layer di testa specifici per il compito e il fine-tuning per ogni compito successivo.
  • GPT: È di natura generativa e può essere sollecitato a eseguire compiti con modifiche minime alla sua struttura.
  • T5: Tratta ogni compito come un problema “testo-a-testo”, rendendolo intrinsecamente flessibile ed adattabile ai nuovi compiti.

10. Interpretabilità e Spiegabilità

  • BERT: La natura bidirezionale fornisce rappresentazioni contestuali ricche 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: Il framework 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 Transformers in NLP

Le reti Transformers hanno rivoluzionato il campo del NLP, consentendo ai modelli di elaborare sequenze di dati in parallelo, aumentando notevolmente la velocità ed efficienza nell’addestramento delle reti neurali di grandi dimensioni. Hanno introdotto il meccanismo di auto-attenzione, consentendo ai modelli di valutare 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, includendo ma non limitandosi alla traduzione, alla risposta alle domande e alla sintesi del testo.

La ricerca continua a spingere i limiti di ciò che i modelli basati su trasformatori possono raggiungere. 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 il few-shot learning, in cui i modelli eseguono compiti con un numero minimo di esempi, e metodi per un transfer learning più efficace sono all’avanguardia della ricerca attuale.

I modelli di linguaggio come quelli basati su trasformatori imparano dai dati che possono contenere dei pregiudizi. I ricercatori e i professionisti stanno lavorando attivamente per identificare, comprendere e mitigare questi pregiudizi. Le tecniche vanno da set di dati addestrati appositamente ad aggiustamenti post-addestramento mirati alla giustizia e alla neutralità.