Grandi modelli di linguaggio TinyBERT – Sintesi di BERT per NLP

Grandi modelli di linguaggio TinyBERT - La sintesi di BERT per NLP

Sbloccare il potere della distillazione del Transformer in LLM

Introduzione

Negli ultimi anni, l’evoluzione dei grandi modelli di linguaggio è aumentata vertiginosamente. BERT è diventato uno dei modelli più popolari ed efficienti, in grado di risolvere una vasta gamma di compiti di elaborazione del linguaggio naturale con elevata precisione. Dopo BERT, sono apparsi altri modelli che hanno dimostrato risultati eccezionali.

La tendenza evidente è il fatto che con il tempo i grandi modelli di linguaggio (LLM) tendono a diventare sempre più complessi aumentando esponenzialmente il numero di parametri e dati su cui vengono addestrati. La ricerca nell’apprendimento profondo ha dimostrato che tali tecniche di solito portano a risultati migliori. Purtroppo, il mondo dell’apprendimento automatico ha già affrontato diversi problemi riguardanti i LLM e la scalabilità è diventata l’ostacolo principale nell’addestramento efficace, nella conservazione e nell’utilizzo di essi.

Tenendo conto di questo problema, sono stati elaborati metodi speciali per comprimere i LLM. In questo articolo, ci concentreremo sulla distillazione del Transformer che ha portato allo sviluppo di una versione ridotta di BERT chiamata TinyBERT. Inoltre, comprenderemo il processo di apprendimento in TinyBERT e diversi dettagli che rendono TinyBERT così solido. Questo articolo si basa sul documento ufficiale di TinyBERT.

Idea principale

Recentemente abbiamo già discusso di come funziona la distillazione in DistilBERT: in breve, la funzione di perdita viene modificata in modo che le previsioni dello studente e dell’insegnante siano simili. In DistilBERT, la funzione di perdita confronta le distribuzioni di output dello studente e dell’insegnante e tiene anche conto delle embedding di output di entrambi i modelli (perdita di similarità).

Modelli di linguaggio grandi: DistilBERT – Più piccoli, più veloci, più economici e più leggeri

Scoprire i segreti della compressione di BERT: un framework studente-insegnante per massima efficienza

towardsdatascience.com

A prima vista, il framework di distillazione in TinyBERT non cambia molto rispetto a DistilBERT: la funzione di perdita viene nuovamente modificata per far sì che lo studente imiti l’insegnante. Tuttavia, nel caso di TinyBERT, va un passo oltre: la funzione di perdita tiene conto non solo di CIÒ che entrambi i modelli producono, ma anche di COME vengono ottenute le previsioni. Secondo l’articolo, la funzione di perdita di TinyBERT è costituita da tre componenti che coprono diversi aspetti di entrambi i modelli:

  1. l’output dello strato di embedding
  2. gli stati nascosti e le matrici di attenzione derivati dallo strato Transformer

3. i logit prodotti dallo strato di previsione

Perdite per la distillazione del Transformer

Qual è il punto nel confrontare gli stati nascosti di entrambi i modelli? Includere gli output degli stati nascosti e delle matrici di attenzione permette allo studente di apprendere gli strati nascosti dell’insegnante, costruendo quindi strati simili a quelli dell’insegnante. In questo modo, il modello distillato non imita solo l’output del modello originale, ma anche il suo comportamento interno.

Perché è importante replicare il comportamento dell’insegnante? I ricercatori sostengono che i pesi di attenzione appresi da BERT possano essere benefici per catturare la struttura del linguaggio. Pertanto, la loro distillazione su un altro modello dà anche allo studente più possibilità di acquisire conoscenza linguistica.

Mappatura degli strati

Rappresentando una versione più piccola di BERT, TinyBERT ha meno strati di encoder. Definiamo il numero di strati BERT come N e il numero di quelli di TinyBERT come M. Dato il fatto che il numero di strati è diverso, non è ovvio come sia possibile calcolare la perdita di distillazione.

A tale scopo, viene introdotta una funzione speciale n = g(m) per definire quale livello BERT n viene utilizzato per distillare la sua conoscenza a un livello corrispondente m in TinyBERT. I livelli BERT scelti vengono quindi utilizzati per il calcolo della perdita durante l’addestramento.

La funzione introdotta n = g(m) ha due vincoli di ragionamento:

  • g(0) = 0. Questo significa che il livello di embedding in BERT viene mappato direttamente al livello di embedding in TinyBERT, il che ha senso.
  • g(M + 1) = N + 1. L’equazione indica che il livello di previsione in BERT viene mappato al livello di previsione in TinyBERT.

Per tutti gli altri livelli TinyBERT 1 ≤ m ≤ M, è necessario mappare i valori di funzione corrispondenti di n = g(m). Per ora, supponiamo che tale funzione sia definita. Le impostazioni di TinyBERT saranno studiate in seguito in questo articolo.

Distillazione del Transformer

1. Distillazione del livello di embedding

Prima che l’input grezzo venga passato al modello, viene prima tokenizzato e quindi mappato a embedding appresi. Questi embedding vengono quindi utilizzati come primo livello del modello. Tutti gli embedding possibili possono essere espressi nella forma di una matrice. Per confrontare quanto i embedding dello studente e dell’insegnante sono diversi, è possibile utilizzare una metrica di regressione standard applicata alle rispettive matrici di embedding E. Ad esempio, la distillazione del Transformer utilizza il MSE come metrica di regressione.

Dal momento che le matrici di embedding dello studente e dell’insegnante hanno dimensioni diverse, non è possibile confrontarle elemento per elemento utilizzando il MSE. Per questo motivo, la matrice di embedding dello studente viene moltiplicata per una matrice di pesi apprendibili W, in modo che la matrice risultante abbia la stessa forma della matrice di embedding dell’insegnante.

Perdita di distillazione del livello di embedding

Dal momento che gli spazi di embedding dello studente e dell’insegnante sono diversi, la matrice W svolge anche un ruolo importante nella trasformazione lineare dello spazio di embedding di uno studente in quello dell’insegnante.

2. Distillazione del livello del Transformer

Visualizzazione della perdita di distillazione del livello del Transformer

2A. Distillazione del livello di attenzione

Alla base, il meccanismo di attenzione multipla nel Transformer produce diverse matrici di attenzione contenenti una ricca conoscenza linguistica. Trasferendo i pesi di attenzione dall’insegnante, lo studente può comprendere anche importanti concetti linguistici. Per implementare questa idea, la funzione di perdita viene utilizzata per calcolare le differenze tra i pesi di attenzione dello studente e dell’insegnante.

In TinyBERT, si considerano tutti i livelli di attenzione e il valore di perdita risultante per ciascun livello equivale alla somma dei valori di MSE tra le rispettive matrici di attenzione dello studente e dell’insegnante per tutte le teste.

Perdita di distillazione del livello di attenzione

Le matrici di attenzione A utilizzate per la distillazione del livello di attenzione sono non normalizzate, invece della loro uscita softmax softmax(A). Secondo i ricercatori, questa sottigliezza porta a una convergenza più veloce e a una migliore performance.

2B. Distillazione del livello nascosto

Seguendo l’idea di catturare una ricca conoscenza linguistica, la distillazione viene applicata anche alle uscite dei livelli del Transformer.

Perdita di distillazione del livello nascosto

La matrice di pesi W svolge lo stesso ruolo di quella descritta in precedenza per la distillazione del livello di embedding.

3. Distillazione del livello di previsione

Infine, per far sì che lo studente riproduca un output dell’insegnante, si considera la perdita del livello di previsione. Consiste nel calcolare la cross-entropia tra i vettori di logit predetti da entrambi i modelli.

Perdita di distillazione del livello di previsione

A volte, i logit vengono divisi dal parametro di temperatura T che controlla la morbidezza di una distribuzione di output. In TinyBERT, la temperatura T è impostata a 1.

Equazione di perdita

In TinyBERT, in base al suo tipo, ogni livello ha la propria funzione di perdita. Per dare a alcuni livelli maggiore o minore importanza, i valori di perdita corrispondenti vengono moltiplicati per una costante a. La funzione di perdita finale è uguale a una somma pesata dei valori di perdita su tutti i livelli di TinyBERT.

Funzione di perdita in TinyBERT

In numerosi esperimenti, è stato dimostrato che tra i tre componenti di perdita, la perdita di distillazione del livello di trasformazione ha il maggiore impatto sulle prestazioni del modello.

Allenamento

È importante notare che la maggior parte dei modelli NLP (compreso BERT) viene sviluppata in due fasi:

  1. Il modello viene pre-allenato su un ampio corpus di dati per acquisire una conoscenza generale della struttura del linguaggio.
  2. Il modello viene rilavorato su un altro set di dati per risolvere un compito specifico.

Seguendo lo stesso paradigma, i ricercatori hanno sviluppato un framework in cui il processo di apprendimento di TinyBERT consiste anche in due fasi. In entrambe le fasi di addestramento viene utilizzata la distillazione del trasformatore per trasferire la conoscenza di BERT a TinyBERT.

  1. Distillazione generale. TinyBERT acquisisce una ricca conoscenza generale sulla struttura del linguaggio da BERT pre-allenato (senza rielaborazione) che agisce come insegnante. Utilizzando meno livelli e parametri, dopo questa fase, TinyBERT si comporta in generale peggio di BERT.
  2. Distillazione specifica del compito. Questa volta, la versione rilavorata di BERT svolge il ruolo di insegnante. Per migliorare ulteriormente le prestazioni, come proposto dai ricercatori, viene applicato un metodo di aumento dati sul set di dati di addestramento. I risultati mostrano che dopo la distillazione specifica del compito, TinyBERT raggiunge prestazioni comparabili a BERT.
Processo di addestramento

Aumento dati

È stata elaborata una tecnica speciale di aumento dati per la distillazione specifica del compito. Consiste nel prendere sequenze da un determinato set di dati e sostituire un certo percentuale di parole in uno dei due modi:

  • Se la parola viene tokenizzata nella stessa parola, allora questa parola viene prevista dal modello BERT e la parola prevista sostituisce la parola originale nella sequenza.
  • Se la parola viene tokenizzata in più sottoparti, allora questi sottoparti vengono sostituiti dalle incapsulature GloVe più simili.

Nonostante una considerevole riduzione delle dimensioni del modello, il meccanismo di aumento dati descritto ha un grande impatto sulle prestazioni di TinyBERT permettendogli di apprendere esempi più diversi.

Esempio di aumento

Impostazioni del modello

Con soli 14,5 milioni di parametri, TinyBERT è circa 7,5 volte più piccolo rispetto a BERT base. Il loro confronto dettagliato è mostrato nella figura qui sotto:

Confronto BERT base vs TinyBERT

Per la mappatura dei livelli, gli autori propongono una strategia uniforme secondo la quale la funzione di mappatura dei livelli mappa ogni livello di TinyBERT a ogni terzo livello di BERT: g(m) = 3 * m. Sono state studiate anche altre strategie (come prendere tutti i livelli inferiori o superiori di BERT), ma la strategia uniforme ha mostrato i migliori risultati, il che sembra logico in quanto consente di trasferire conoscenze da diversi livelli di astrazione, rendendo le informazioni trasferite più varie.

Diverse strategie di mappatura dei livelli. I risultati di performance sono mostrati per il dataset GLUE.

Parlando del processo di formazione, TinyBERT viene addestrato su Wikipedia in inglese (2500M di parole) e ha la maggior parte dei suoi iperparametri identici a quelli di BERT base.

Conclusione

La distillazione del transformer è un grande passo nel campo del processamento del linguaggio naturale. Tenendo conto che i modelli basati su Transformer sono attualmente tra i più potenti nell’apprendimento automatico, possiamo apprezzarli ulteriormente applicando la distillazione del Transformer per comprimerli in modo efficace. Uno dei migliori esempi è TinyBERT, che viene compresso di un fattore di 7,5 rispetto a BERT base.

Nonostante una così grande riduzione dei parametri, gli esperimenti mostrano che TinyBERT dimostra prestazioni comparabili a BERT base: ottenendo un punteggio del 77,0% sul benchmark GLUE, TinyBERT non è lontano da BERT il cui punteggio è pari al 79,5%. Ovviamente, questo è un risultato straordinario! Infine, altre tecniche di compressione popolari come la quantizzazione o l’eliminazione possono essere applicate a TinyBERT per renderlo ancora più piccolo.

Risorse

Tutte le immagini, salvo diversa indicazione, sono dell’autore