Connect with us

Che cosa sono le reti neurali Transformer?

IA 101

Che cosa sono le reti neurali Transformer?

mm

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, diamo uno sguardo più da vicino ai modelli transformer e ai 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 comprensione di essi è 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 di 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. A ogni passaggio temporale, la rete encoder prende una sequenza di input e uno stato nascosto dal passaggio temporale precedente nella serie. I valori degli stati nascosti vengono aggiornati mentre i dati procedono attraverso la rete, fino all’ultimo passaggio temporale, dove viene generato un “vettore di contesto”. Il vettore di contesto viene quindi passato alla rete decoder, che viene utilizzato per generare una sequenza di output prediligendo la parola più probabile che si abbini alla parola di input per i rispettivi passaggi temporali.

Questi modelli possono essere aumentati 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 il 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 diamo uno sguardo all’architettura di una rete neurale transformer a un livello più alto.

In generale, una rete neurale transformer ha un aspetto simile al seguente:

Mentre questa struttura generale può cambiare tra le reti, i pezzi fondamentali rimarranno gli stessi: codifiche posizionali, vettori di parole, meccanismo di attenzione, rete neurale feed-forward.

Codifiche posizionali e vettori di parole

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

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

Altri modelli di reti neurali basati su testo come RNN e LSTM utilizzano vettori per rappresentare le parole nei dati di input. Questi vettori di parole mappano le parole a 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 preservare le informazioni relative alla posizione relativa delle parole di input, anche dopo che i vettori attraversano i livelli della rete transformer.

Le codifiche posizionali e i vettori di parole vengono sommati e quindi passati sia alla rete encoder che alla rete decoder. Sebbene le reti neurali transformer utilizzino schemi encoder/decoder come RNN e LSTM, una delle principali differenze tra di essi è che tutti i dati di input vengono immessi nella rete contemporaneamente, mentre in RNN/LSTM i dati vengono immessi 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 codifiche 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 elaborare in parallelo, 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 andare oltre 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 abbastanza 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ò si verifica perché diventa molto difficile riassumere una lunga sequenza di input come un singolo vettore. La soluzione è aumentare l'”attenzione” del modello e utilizzare gli stati encoder intermedi per costruire vettori di contesto per la rete decoder.

Il meccanismo di attenzione definisce quanto sono importanti gli altri token di input per il modello quando vengono create le codifiche 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, perché 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 correnti rispettivamente.

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

  1. Calcolare un punteggio per tutti gli stati encoder.
  2. Calcolare i pesi di 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 passo consiste nel far sì che il decoder calcoli un punteggio per tutti gli stati encoder. Ciò viene fatto 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 solitamente utilizzato come stato precedente del decoder.

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

Una volta calcolati i pesi di attenzione, il vettore di contesto deve essere calcolato. Ciò viene fatto moltiplicando i pesi di 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.

Differenze tra transformer e RNN/LSTM

Copriamo rapidamente alcune delle differenze tra RNN e LSTM.

Le RNN elaborano gli input sequenzialmente, mentre un vettore di stato nascosto viene mantenuto e alterato dalle parole di input man mano che procedono attraverso la rete. Gli stati nascosti di una 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 delle 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 a porte gestisce la perdita di informazioni comune ai modelli RNN. I dati vengono ancora elaborati sequenzialmente e la progettazione ricorrente rende i modelli LSTM difficili da addestrare utilizzando il calcolo parallelo, rendendo il tempo di addestramento più lungo in generale.

Gli ingegneri LSTM aggiungevano spesso meccanismi di attenzione alla rete, noti per migliorare le prestazioni del modello. Tuttavia, alla fine è stato scoperto che il meccanismo di attenzione da solo migliorava l’accuratezza. Questa scoperta ha portato 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.