Fondamenti di IA

Che cosa sono le Reti Neurali Transformer?

mm
Aggiungi Unite.AI alle tue fonti preferite su Google

Descrizione delle Reti Neurali Transformer

I transformer sono un tipo di modello di apprendimento automatico specializzato nell’elaborazione e nell’interpretazione di dati sequenziali, rendendoli ottimali per le attività di elaborazione del linguaggio naturale. Per comprendere meglio cosa sia un modello di apprendimento automatico transformer e come funzioni, analizziamo più da vicino i modelli transformer e i meccanismi che li guidano.

Questo articolo coprirà:

  • Modelli sequenza-sequenza
  • L’architettura della rete neurale transformer
  • Il meccanismo di attenzione
  • Differenze tra transformer e RNN/LSTM

Modelli sequenza-sequenza

I modelli sequenza-sequenza sono un tipo di modello NLP utilizzato per convertire sequenze di un tipo in una sequenza di un altro tipo. Esistono vari tipi di modelli sequenza-sequenza, come ad esempio modelli di reti neurali ricorrenti e modelli di memoria a lungo termine.

I modelli sequenza-sequenza tradizionali come RNN e LSTM non sono l’oggetto di questo articolo, ma la loro comprensione è necessaria per apprezzare come funzionano i modelli transformer e perché sono superiori ai modelli sequenza-sequenza tradizionali.

In breve, i modelli RNN e LSTM consistono in reti encoder e decoder che analizzano i dati di input in vari passaggi temporali. La rete encoder è responsabile della formazione di una rappresentazione codificata delle parole nei dati di input. Ad ogni passaggio temporale, la rete encoder prende una sequenza di input e uno stato nascosto dal passaggio precedente nella serie. Gli stati nascosti vengono aggiornati man mano che i dati procedono attraverso la rete, fino all’ultimo passaggio temporale, dove viene generato un “vettore di contesto”. Il vettore di contesto viene poi passato alla rete decoder, che viene utilizzata per generare una sequenza di output predetta.

Questi modelli possono essere migliorati attraverso l’utilizzo di un “meccanismo di attenzione”. Un meccanismo di attenzione definisce quali porzioni del vettore di input la rete dovrebbe concentrarsi per generare l’output corretto. In altre parole, un meccanismo di attenzione consente al modello transformer di elaborare una parola di input mentre si concentra anche sulle informazioni rilevanti contenute nelle altre parole di input. I meccanismi di attenzione mascherano anche le parole che non contengono informazioni rilevanti.

Architettura della rete neurale transformer

Approfondiremo il meccanismo di attenzione più avanti, ma per ora analizziamo l’architettura di una rete neurale transformer a un livello più alto.

In generale, una rete neurale transformer ha una struttura come la seguente:

Mentre questa struttura generale può variare tra le reti, le parti fondamentali rimangono le stesse: codici posizionali, vettori di parole, meccanismo di attenzione, rete neurale feed-forward.

Codici posizionali e vettori di parole

Una rete neurale transformer funziona prendendo una sequenza di input e convertendola in due altre sequenze. La rete transformer produce una sequenza di vettori di parole e codici posizionali.

I vettori di parole sono solo il testo rappresentato in un formato numerico che la rete neurale può elaborare. Nel frattempo, i codici posizionali sono rappresentazioni vettoriali che contengono informazioni sulla posizione della parola corrente nella frase di input, in relazione alle altre parole.

Altri modelli di reti neurali basati sul testo, come RNN e LSTM, utilizzano vettori per rappresentare le parole nei dati di input. Questi vettori di parole mappano le parole su valori costanti, ma ciò è limitante perché le parole possono essere utilizzate in contesti diversi. Una rete transformer risolve questo problema rendendo i valori delle parole più flessibili, utilizzando funzioni sinusoidali per far sì che i vettori di parole assumano valori diversi a seconda della posizione della parola nella frase.

Ciò consente al modello di rete neurale di conservare le informazioni relative alla posizione relativa delle parole di input, anche dopo che i vettori attraversano i livelli della rete transformer.

I codici posizionali e i vettori di parole vengono sommati e poi passati sia alla rete encoder che alla rete decoder. Mentre le reti neurali transformer utilizzano schemi encoder/decoder come RNN e LSTM, una delle principali differenze tra loro è che tutti i dati di input vengono alimentati nella rete contemporaneamente, mentre in RNN e LSTM i dati vengono passati sequenzialmente.

Le reti encoder sono responsabili della conversione degli input in rappresentazioni che la rete può apprendere, mentre le reti decoder fanno il contrario e convertono le rappresentazioni in una distribuzione di probabilità utilizzata per generare le parole più probabili nella frase di output. È fondamentale che sia la rete encoder che la rete decoder abbiano un meccanismo di attenzione.

Poiché le GPU sono in grado di elaborazione parallela, vengono utilizzati più meccanismi di attenzione in parallelo, calcolando le informazioni rilevanti per tutte le parole di input. Questa capacità di prestare attenzione a più parole contemporaneamente, chiamata “attenzione multi-testa”, aiuta la rete neurale ad apprendere il contesto di una parola all’interno di una frase, ed è uno dei principali vantaggi che le reti transformer hanno rispetto a RNN e LSTM.

Il meccanismo di attenzione

Il meccanismo di attenzione è la parte più importante di una rete transformer. Il meccanismo di attenzione è ciò che consente ai modelli transformer di superare il limite di attenzione di un modello RNN o LSTM tradizionale. I modelli sequenza-sequenza tradizionali scartano tutti gli stati intermedi e utilizzano solo lo stato finale/vettore di contesto quando avviano la rete decoder per generare previsioni su una sequenza di input.

Scartare tutto tranne il vettore di contesto finale funziona bene quando le sequenze di input sono abbastanza brevi. Tuttavia, man mano che la lunghezza della sequenza di input aumenta, le prestazioni del modello si deteriorano utilizzando questo metodo. Ciò è dovuto al fatto che è difficile riassumere una lunga sequenza di input come un singolo vettore. La soluzione è aumentare l'”attenzione” del modello e utilizzare gli stati intermedi dell’encoder per costruire vettori di contesto per il decoder.

Il meccanismo di attenzione definisce quanto sono importanti gli altri token di input per il modello quando vengono create le rappresentazioni per un token specifico. Ad esempio, “esso” è un pronome generico, spesso utilizzato per riferirsi agli animali quando il loro sesso non è noto. Un meccanismo di attenzione consentirebbe a un modello transformer di determinare che nel contesto attuale “esso” si riferisce a uno scoiattolo, poiché può esaminare tutte le parole rilevanti nella frase di input.

Un meccanismo di attenzione può essere utilizzato in tre modi diversi: encoder-decoder, encoder-only, decoder-only.

L’attenzione encoder-decoder consente al decoder di considerare le sequenze di input quando genera un output, mentre i meccanismi di attenzione encoder-only e decoder-only consentono alle reti di considerare tutte le parti delle sequenze precedenti e attuali rispettivamente.

La costruzione di un meccanismo di attenzione può essere divisa in cinque passaggi:

  1. Calcolare un punteggio per tutti gli stati dell’encoder.
  2. Calcolare i pesi dell’attenzione
  3. Calcolare i vettori di contesto
  4. Aggiornare il vettore di contesto con l’output del passaggio temporale precedente
  5. Generare l’output con il decoder

Il primo passaggio consiste nel far calcolare al decoder un punteggio per tutti gli stati dell’encoder. Ciò avviene addestrando la rete decoder, che è una rete neurale feed-forward di base. Quando il decoder viene addestrato sulla prima parola nella sequenza di input, non è ancora stato creato uno stato interno/nascosto, quindi lo stato finale dell’encoder viene tipicamente utilizzato come stato precedente del decoder.

Per calcolare i pesi dell’attenzione, viene utilizzata una funzione softmax per generare una distribuzione di probabilità per i pesi dell’attenzione.

Una volta calcolati i pesi dell’attenzione, è necessario calcolare il vettore di contesto. Ciò avviene moltiplicando i pesi dell’attenzione e lo stato nascosto insieme per ogni passaggio temporale.

Dopo che il vettore di contesto è stato calcolato, viene utilizzato insieme alla parola generata nel passaggio temporale precedente per generare la parola successiva nella sequenza di output. Poiché il decoder non ha un output precedente a cui fare riferimento nel primo passaggio temporale, viene spesso utilizzato un token “start” speciale al suo posto.

Differenze tra transformer e RNN/LSTM

Copriamo rapidamente alcune delle differenze tra RNN e LSTM.

I RNN elaborano gli input sequenzialmente, mentre uno stato nascosto viene mantenuto e alterato dalle parole di input man mano che procedono attraverso la rete. Gli stati nascosti di un RNN contengono generalmente poche informazioni rilevanti relative agli input precedenti. I nuovi input sovrascrivono spesso lo stato corrente, il che provoca una perdita di informazioni e degrada le prestazioni nel tempo.

Al contrario, i modelli transformer elaborano l’intera sequenza di input contemporaneamente. Il meccanismo di attenzione consente a ogni parola di output di essere informata da ogni input e stato nascosto, rendendo la rete più affidabile per lunghi testi.

Gli LSTM sono una versione modificata dei RNN, adattata per gestire sequenze di input più lunghe. L’architettura LSTM utilizza una struttura chiamata “porte”, con “porte di input”, “porte di output” e “porte di dimenticanza”. La progettazione con porte gestisce la perdita di informazioni comune ai modelli RNN. I dati vengono ancora elaborati sequenzialmente e la progettazione ricorrente rende difficile addestrare i modelli LSTM utilizzando l’elaborazione parallela, rendendo più lungo il tempo di addestramento complessivo.

Gli ingegneri LSTM aggiungevano spesso meccanismi di attenzione alla rete, noto per migliorare le prestazioni del modello. Tuttavia, alla fine si scoprì che il meccanismo di attenzione da solo migliorava l’accuratezza. Questa scoperta portò alla creazione di reti transformer che utilizzavano meccanismi di attenzione e calcolo parallelo grazie alle GPU.

Blogger e programmatore con specializzazioni in Machine Learning e Deep Learning argomenti. Daniel spera di aiutare gli altri a utilizzare il potere dell'AI per il bene sociale.