Modelli linguistici di grandi dimensioni: DeBERTa: BERT potenziato dalla decodifica con attenzione districata |  di Vyacheslav Efimov |  Novembre 2023

 | Intelligenza-Artificiale

Esplorando la versione avanzata del meccanismo dell’attenzione in Transformers

Negli ultimi anni, BERT è diventato lo strumento numero uno in molte attività di elaborazione del linguaggio naturale. La sua eccezionale capacità di elaborare, comprendere le informazioni e costruire word embedding con elevata precisione raggiunge prestazioni allo stato dell’arte.

Come è noto, BERT si basa su Attenzione meccanismo derivato dall’architettura Transformer. Oggigiorno l’attenzione è la componente chiave della maggior parte dei modelli linguistici.

Tuttavia, nuove idee e approcci si evolvono regolarmente nel mondo dell’apprendimento automatico. Una delle tecniche più innovative nei modelli simili a BERT è apparsa nel 2021 e ha introdotto una versione di attenzione potenziata chiamata “Attenzione districata”. L’implementazione di questo concetto ha dato origine DeBERTa – il modello che incorpora l’attenzione districata. Sebbene DeBERTa introduca solo un paio di nuovi principi di architettura, i suoi miglioramenti sono prominenti nei principali benchmark della PNL, rispetto ad altri modelli di grandi dimensioni.

In questo articolo faremo riferimento all’originale Articolo DeBERTa e coprire tutti i dettagli necessari per capire come funziona.

Nel blocco Transformer originale, ogni token è rappresentato da un singolo vettore che contiene informazioni sul contenuto e sulla posizione del token sotto forma di somma di incorporamento per elemento. Lo svantaggio di questo approccio è la potenziale perdita di informazioni: il modello potrebbe non distinguere se una parola stessa o la sua posizione dia più importanza a una determinata componente vettoriale incorporata.

Incorporamento della costruzione in BERT e DeBERTa. Invece di memorizzare tutte le informazioni in un unico vettore, DeBERTa utilizza due vettori separati per memorizzare gli incorporamenti di parole e posizioni.

DeBERTa propone un nuovo meccanismo in cui la stessa informazione viene archiviata in due vettori diversi. Inoltre, anche l’algoritmo per il calcolo dell’attenzione viene modificato per tenere esplicitamente conto delle relazioni tra il contenuto e le posizioni dei token. Ad esempio, le parole “ricerca” E “carta” sono molto più dipendenti quando appaiono vicini che in parti di testo diverse. Questo esempio giustifica chiaramente il motivo per cui è necessario considerare anche le relazioni contenuto-posizione.

L’introduzione dell’attenzione districata richiede modifiche nel calcolo del punteggio di attenzione. A quanto pare, questo processo è molto semplice. Il calcolo dei punteggi di attenzione incrociata tra due incorporamenti ciascuno costituito da due vettori può essere facilmente scomposto nella somma di quattro moltiplicazioni a coppie dei loro sottovettori:

Calcolo del punteggio di attenzione incrociata tra due vettori di incorporamento.

La stessa metodologia può essere generalizzata in forma matriciale. Dal diagramma possiamo osservare quattro diversi tipi di matrici (vettori) ciascuno dei quali rappresenta una determinata combinazione di informazioni di contenuto e posizione:

  • contenuto-contenuto matrice;
  • contenuto in posizione matrice;
  • posizione rispetto al contenuto matrice;
  • posizione per posizione matrice.

È possibile osservare che la matrice posizione per posizione non memorizza alcuna informazione preziosa in quanto non contiene dettagli sul contenuto delle parole. Questo è il motivo per cui questo termine viene scartato nell’attenzione districata.

Per i restanti tre termini, la matrice di attenzione sull’output finale viene calcolata in modo simile a quella del Transformer originale.

Calcolo dell’attenzione districata in uscita in DeBERTa

Anche se il processo di calcolo sembra simile, ci sono un paio di sottigliezze che devono essere prese in considerazione.

Dal diagramma sopra, possiamo notare che il simbolo della moltiplicazione * utilizzato per la moltiplicazione tra matrici Qc del contenuto della query e Krᵀ delle posizioni chiave & matrici Kc del contenuto chiave e Qrᵀ della posizione della query differisce dal normale simbolo di moltiplicazione della matrice X. In realtà, ciò non avviene per caso poiché le coppie di matrici menzionate in DeBERTa vengono moltiplicate in un modo leggermente diverso per tenere conto del posizionamento relativo dei token.

  • Secondo le normali regole di moltiplicazione delle matrici, se C = A x Bpoi l’elemento C(i)(j) viene calcolato moltiplicando per elemento il io-esima fila di UN dal J-esima colonna di B.
  • In un caso speciale di DeBERTa, se C = A*BPoi C(i)(j) è calcolato come la moltiplicazione di io-esima fila di UN di δ(i, j)-esima colonna di B Dove D denota una funzione di distanza relativa tra gli indici io E J che è definito dalla formula seguente:
Definizione della distanza relativa tra gli indici i e j. k è un iperparametro che controlla la massima distanza relativa possibile. Immagine adottata dall’autore.

K può essere pensato come un iperparametro che controlla la massima distanza relativa possibile tra gli indici io E J. In DeBERTa, K è impostato su 512. Per avere un’idea migliore della formula, tracciamo una mappa termica che visualizza le distanze relative (k = 6) per diversi indici di io E J.

Ad esempio, se k = 6, io = 15 E j = 13poi la distanza relativa D fra io E J è uguale a 8. Per ottenere un punteggio contenuto-posizione per gli indici io = 15 E j = 13durante la moltiplicazione del contenuto della query Qc e posizione chiave Kr matrici, la quindicesima riga di Qc dovrebbe essere moltiplicato per l’ottava colonna di Krᵀ.

Calcolo del punteggio contenuto-posizione per i token i e j

Tuttavia, per i punteggi posizione-contenuto, l’algoritmo funziona in modo leggermente diverso: invece della distanza relativa δ(i, j)questa volta l’algoritmo utilizza il valore di δ(j, i) nella moltiplicazione di matrici. Come spiegano gli autori del documento: “questo è perché per una data posizione i, posizione-contenuto calcola il peso dell’attenzione del contenuto chiave in j rispetto alla posizione della query in i, quindi la distanza relativa è δ(j, i)”.

Calcolo del punteggio posizione-contenuto per i token i e j

δ(i, j) ≠ δ(j, i), cioè δ non è una funzione simmetrica, il che significa che la distanza tra i e j non è la stessa distanza tra j e i.

Prima di applicare la trasformazione softmax, i punteggi di attenzione vengono divisi per una costante √(3d) per un allenamento più stabile. Questo fattore di scala è diverso da quello utilizzato nel Transformer originale (√d). Questa differenza in 3 volte è giustificato da grandezze maggiori risultanti dalla somma di 3 matrici nel meccanismo di attenzione DeBERTa (invece di una singola matrice in Transformer).

L’attenzione districata tiene conto solo del contenuto e del posizionamento relativo. Tuttavia, non viene considerata alcuna informazione sul posizionamento assoluto che potrebbe effettivamente svolgere un ruolo importante nella previsione finale. Gli autori del paper DeBERTa danno un esempio concreto di tale situazione: una frase “un nuovo negozio è stato aperto accanto al nuovo centro commerciale” che viene dato in pasto a BERT con la scritta mascherata “negozio” E “centro commerciale” per la previsione. Sebbene le parole mascherate abbiano un significato e un contesto locale simili (l’aggettivo “nuovo”), hanno un contesto linguistico diverso che non viene catturato dall’attenzione districata. In una lingua possono esserci numerose situazioni analoghe, per questo motivo è fondamentale incorporare nel modello il posizionamento assoluto.

In BERT, il posizionamento assoluto viene preso in considerazione negli input embedding. Parlando di DeBERTa, incorpora il posizionamento assoluto dopo tutti gli strati Transformer ma prima di applicare lo strato softmax. È stato dimostrato negli esperimenti che l’acquisizione del posizionamento relativo in tutti gli strati del Transformer e solo dopo aver introdotto il posizionamento assoluto migliora le prestazioni del modello. Secondo i ricercatori, farlo al contrario potrebbe impedire al modello di apprendere informazioni sufficienti sul posizionamento relativo.

Architettura

Secondo il cartail decoder maschera avanzato (EMD) ha due blocchi di input:

  • H – gli stati nascosti dal precedente livello Transformer.
  • IO — qualsiasi informazione necessaria per la decodifica (ad esempio stati nascosti Hincorporamento o output della posizione assoluta dal livello EMD precedente).
Decodificatore di maschera migliorato in DeBERTa. Immagine adottata dall’autore.

In generale, possono essercene più N Blocchi EMD all’interno di un modello. Se è così, sono costruiti con le seguenti regole:

  • l’output di ciascun livello EMD è l’input IO per il livello EMD successivo;
  • l’output dell’ultimo strato EMD viene inviato al capo del modello linguistico.

Nel caso di DeBERTa, il numero di strati EMD è impostato su n = 2 con l’incorporamento della posizione utilizzato per IO nel primo strato EMD.

Un’altra tecnica frequentemente utilizzata nella PNL è la condivisione dei pesi tra diversi livelli con l’obiettivo di ridurre la complessità del modello (ad es ALBERTO). Questa idea è implementata anche nei blocchi EMD di DeBERTa.

Quando I = H e n = 1, EMD diventa l’equivalente del livello del decodificatore BERT.

Studi sull’ablazione

Gli esperimenti hanno dimostrato che tutti i componenti introdotti in DeBERTa (attenzione posizione-contenuto, attenzione contenuto-posizione e decodificatore di maschera potenziato) migliorano le prestazioni. La rimozione di uno qualsiasi di essi comporterebbe metriche inferiori.

Ottimizzazione fine con invariante di scala

Inoltre, gli autori hanno proposto un nuovo algoritmo contraddittorio chiamato “Ottimizzazione dell’invariante della scala” per migliorare la generalizzazione del modello. L’idea è quella di incorporare piccole perturbazioni nelle sequenze di input rendendo il modello più resistente agli esempi avversi. In DeBERTa, le perturbazioni vengono applicate agli incorporamenti di parole di input normalizzate. Questa tecnica funziona ancora meglio per i modelli DeBERTa più grandi e perfezionati.

Varianti DeBERTa

L’articolo di DeBERTa presenta tre modelli. Il confronto tra loro è mostrato nel diagramma seguente.

Varianti DeBERTa

Dati

Per la pre-formazione, le versioni base e grande di DeBERTa utilizzano una combinazione dei seguenti set di dati:

  • Wikipedia in inglese + BookCorpus (16 GB)
  • OpenWebText (contenuto pubblico Reddit: 38 GB)
  • Storie (31 GB)

Dopo la deduplicazione dei dati, la dimensione del set di dati risultante viene ridotta a 78 GB. Per DeBERTa 1.5B, gli autori hanno utilizzato il doppio dei dati (160 GB) con un’impressionante dimensione del vocabolario di 128K.

In confronto, altri modelli di grandi dimensioni come RoBERTa, XLNet ed ELECTRA sono pre-addestrati su 160 GB di dati. Allo stesso tempo, DeBERTa mostra prestazioni comparabili o migliori rispetto a questi modelli su una varietà di compiti di PNL.

Parlando di formazione, DeBERTa è pre-addestrato per un milione di passaggi con 2.000 campioni in ogni passaggio.

Abbiamo ripercorso gli aspetti principali dell’architettura DeBERTa. Possedendo un’attenzione districata e algoritmi di codifica mascherata avanzati al suo interno, DeBERTa è diventata una scelta estremamente popolare nelle pipeline di PNL per molti scienziati dei dati e anche un ingrediente vincente in molte competizioni Kaggle. Un altro fatto sorprendente di DeBERTa è che è uno dei primi modelli PNL che supera gli umani nel benchmark SuperGLUE. Questo solo elemento di prova è sufficiente per concludere che DeBERTa rimarrà a lungo nella storia dei LLM.

Tutte le immagini, se non diversamente specificato, sono dell’autore

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *