Negli ultimi anni, l’evoluzione dei grandi modelli linguistici è salita alle stelle. BERT è diventato uno dei modelli più popolari ed efficienti che consente di risolvere un’ampia gamma di compiti di PNL con elevata precisione. Dopo BERT, una serie di altri modelli sono apparsi successivamente sulla scena dimostrando risultati eccezionali.
La tendenza ovvia che è diventata facile da osservare è il fatto che con il tempo i modelli linguistici di grandi dimensioni (LLM) tendono a diventare più complessi aumentando esponenzialmente il numero di parametri e dati su cui vengono addestrati. La ricerca sul deep learning ha dimostrato che tali tecniche di solito portano a risultati migliori. Sfortunatamente, il mondo del machine learning ha già affrontato diversi problemi riguardanti gli LLM e la scalabilità è diventata l’ostacolo principale per formarli, archiviarli e utilizzarli in modo efficace.
Prendendo in considerazione questo problema, sono stati elaborati metodi speciali per comprimere i LLM. In questo articolo ci concentreremo su Distillazione del trasformatore che ha portato allo sviluppo di una piccola versione di BERT chiamata TinyBERT. Inoltre, comprenderemo il processo di apprendimento in TinyBERT e diverse sottigliezze che rendono TinyBERT così robusto. Questo articolo è basato sul funzionario Carta TinyBERT.
Recentemente abbiamo già trattato come funziona la distillazione in DistilBERT: in parole povere, l’obiettivo della funzione di perdita viene modificato in modo da rendere simili le previsioni dello studente e dell’insegnante. In DistilBERT, la funzione di perdita confronta le distribuzioni di output dello studente e dell’insegnante e prende in considerazione anche l’inclusione dell’output di entrambi i modelli (per la perdita di somiglianza).
In superficie, la struttura della 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, si va oltre: la funzione di perdita prende in considerazione non solo COSA producono entrambi i modelli, ma anche COME vengono ottenute le previsioni. Secondo lo studio, la funzione di perdita TinyBERT è costituita da tre componenti che coprono aspetti diversi di entrambi i modelli:
- l’output dello strato di incorporamento
- gli stati nascosti e le matrici di attenzione derivate dallo strato Transformer
3. i logit prodotti dal livello di previsione
Qual è lo scopo di confrontare gli stati nascosti di entrambi i modelli? Includendo i risultati degli stati nascosti e dell’attenzione, le matrici consentono allo studente di apprendere gli strati nascosti dell’insegnante, costruendo così strati simili a quelli dell’insegnante. In questo modo, il modello distillato non imita solo il risultato del modello originale ma anche il suo comportamento interno.
Perché è importante replicare il comportamento dell’insegnante? I ricercatori sostengono che i pesi dell’attenzione appresi da BERT possono essere utili per catturare la struttura del linguaggio. Pertanto, la loro distillazione in un altro modello offre allo studente anche maggiori possibilità di acquisire conoscenze linguistiche.
Rappresentando una versione BERT più piccola, TinyBERT ha meno livelli di codifica. Definiamo il numero di strati BERT come N, e il numero di quelli di TinyBERT come M. Dato che il numero di strati è diverso, non è ovvio come sarebbe possibile calcolare la perdita di distillazione.
A questo scopo, una funzione speciale n = g(m) viene introdotto per definire quale strato BERT n viene utilizzato per distillare la sua conoscenza in un corrispondente strato m in TinyBERT. Gli strati BERT scelti vengono quindi utilizzati per il calcolo delle perdite durante l’addestramento.
La funzione introdotta n = g(m) ha due vincoli di ragionamento:
- g(0) = 0. Ciò significa che lo strato di incorporamento in BERT è mappato direttamente sullo strato di incorporamento in TinyBERT, il che ha senso.
- g(M+1) = N+1. L’equazione indica che il livello di previsione in BERT è mappato al livello di previsione in TinyBERT.
Per tutti gli altri livelli TinyBERT 1 ≤ m ≤ Mi corrispondenti valori della funzione di n = g(m) devono essere mappati. Per ora supponiamo che tale funzione sia definita. Le impostazioni di TinyBERT verranno studiate più avanti in questo articolo.
1. Distillazione su strato di inclusione
Prima che l’input grezzo venga passato al modello, viene prima tokenizzato e quindi mappato agli incorporamenti appresi. Questi incorporamenti vengono quindi utilizzati come primo strato del modello. Tutti i possibili incorporamenti possono essere espressi sotto forma di matrice. Per confrontare quanto sono diversi gli incorporamenti di studenti e insegnanti, è possibile utilizzare una metrica di regressione standard applicata alle rispettive matrici di incorporamento E. Ad esempio, la distillazione con trasformatore utilizza MSE come metrica di regressione.
Poiché le matrici di incorporamento di studenti e insegnanti hanno dimensioni diverse, non è possibile confrontarle a livello di elemento utilizzando MSE. Questo è il motivo per cui la matrice di inclusione dello studente viene moltiplicata per una matrice di pesi apprendibili W, quindi la matrice risultante ha la stessa forma della matrice di inclusione dell’insegnante.
Poiché gli spazi di inclusione dello studente e dell’insegnante sono diversi, anche la matrice W gioca un ruolo importante nel trasformare linearmente lo spazio di inclusione di uno studente in quello dell’insegnante.
2. Distillazione a strati di trasformatore
2A. Distillazione a strati di attenzione
Fondamentalmente, il meccanismo di attenzione multi-testa in Transformer produce diverse matrici di attenzione contenenti una ricca conoscenza linguistica. Trasferendo i pesi dell’attenzione da parte dell’insegnante, lo studente può anche comprendere importanti concetti linguistici. Per implementare questa idea, la funzione di perdita viene utilizzata per calcolare le differenze tra i pesi dell’attenzione degli studenti e degli insegnanti.
In TinyBERT, vengono considerati tutti i livelli di attenzione e il valore di perdita risultante per ciascun livello è pari alla somma dei valori MSE tra le rispettive matrici di attenzione di studenti e insegnanti per tutti i capi.
Le matrici di attenzione A utilizzate per la distillazione dello strato di attenzione non sono normalizzate, invece del loro output softmax softmax(A). Secondo i ricercatori, questa sottigliezza porta a una convergenza più rapida e a prestazioni migliori.
2B. Distillazione a strati nascosti
Seguendo l’idea di catturare una ricca conoscenza linguistica, la distillazione viene applicata anche alle uscite degli strati del trasformatore.
La matrice di peso W svolge lo stesso ruolo di quello sopra descritto per la distillazione su strato di inclusione.
3. Distillazione dello strato di previsione
Infine, per far sì che lo studente riproduca un output del docente, viene considerata la perdita del livello di previsione. Consiste nel calcolare l’entropia incrociata tra i vettori logit previsti da entrambi i modelli.
A volte, i logit sono divisi per il parametro di temperatura T che controlla la regolarità della distribuzione di output. In TinyBERT, la temperatura T è impostata su 1.
Equazione delle perdite
In TinyBERT, in base alla sua tipologia, ogni strato ha la propria funzione di perdita. Per dare più o meno importanza ad alcuni strati, i valori di perdita corrispondenti vengono moltiplicati per una costante UN. La funzione di perdita ultima equivale a una somma ponderata dei valori di perdita su tutti gli strati TinyBERT.
In numerosi esperimenti è stato dimostrato che tra le tre componenti di perdita, la perdita di distillazione nello strato del trasformatore ha l’impatto maggiore sulle prestazioni del modello.
È importante notare che la maggior parte dei modelli PNL (incluso BERT) sono sviluppati in due fasi:
- Il modello è preaddestrato su un ampio corpus di dati per acquisire una conoscenza generale della struttura della lingua.
- Il modello è messo a punto su un altro set di dati per risolvere una specifica attività a valle.
Seguendo lo stesso paradigma, i ricercatori hanno sviluppato un quadro in cui anche il processo di apprendimento di TinyBERT è composto da due fasi. In entrambe le fasi della formazione la distillazione del trasformatore viene utilizzata per trasferire la conoscenza BERT a TinyBERT.
- Distillazione generale. TinyBERT acquisisce una ricca conoscenza generale sulla struttura della lingua da BERT pre-addestrato (senza messa a punto) che funge da insegnante. Utilizzando meno livelli e parametri, dopo questa fase, TinyBERT ha prestazioni generalmente peggiori di BERT.
- Distillazione specifica per compito. Questa volta, la versione perfezionata di BERT svolge il ruolo dell’insegnante. Per migliorare ulteriormente le prestazioni, come proposto dai ricercatori, sul dataset di training viene applicato il metodo di data augmentation. I risultati mostrano che dopo la distillazione specifica per l’attività, TinyBERT raggiunge prestazioni comparabili rispetto a BERT.
Aumento dei dati
È stata elaborata una speciale tecnica di aumento dei dati per la distillazione specifica per attività. Consiste nel prendere sequenze da un dato set di dati e sostituire una percentuale di parole in due modi:
- Se la parola viene tokenizzata nella stessa parola, questa parola viene prevista dal modello BERT e la parola prevista sostituisce la parola originale nella sequenza.
- Se la parola viene tokenizzata in più sottoparole, tali sottoparole vengono sostituite dagli incorporamenti GloVe più simili.
Nonostante una notevole riduzione delle dimensioni del modello, il meccanismo di aumento dei dati descritto ha un forte impatto sulle prestazioni di TinyBERT consentendogli di apprendere esempi più diversificati.
Avendo solo 14,5 milioni di parametri, TinyBERT è circa 7,5 volte più piccolo della base BERT. Il loro confronto dettagliato è mostrato nella figura seguente:
Per la mappatura dei livelli, gli autori propongono UN strategia uniforme in base alla quale la funzione di mappatura dei livelli associa ciascuno strato TinyBERT a ciascun terzo strato BERT: g(m) = 3 * m. Sono state studiate anche altre strategie (come prendere tutti gli strati BERT inferiori o superiori) ma la strategia uniforme ha mostrato i risultati migliori, il che sembra logico perché consente di trasferire la conoscenza da diversi strati di astrazione rendendo le informazioni trasferite più varie.
Parlando del processo di formazione, TinyBERT è addestrato su Wikipedia inglese (2500 milioni di parole) e ha la maggior parte dei suoi iperparametri come nella base BERT.
La distillazione del trasformatore è un grande passo avanti nell’elaborazione del linguaggio naturale. Considerando che i modelli basati su Transformer sono tra i più potenti al momento nel machine learning, possiamo valorizzarli ulteriormente applicando la distillazione di Transformer per comprimerli efficacemente. Uno dei migliori esempi è TinyBERT che è compresso 7,5 volte dalla base BERT.
Nonostante una così grande riduzione dei parametri, gli esperimenti mostrano che TinyBERT dimostra prestazioni comparabili con la base BERT: 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, è possibile applicare a TinyBERT altre tecniche di compressione popolari come la quantizzazione o la potatura per renderlo ancora più piccolo.
Tutte le immagini, se non diversamente specificato, sono dell’autore
Fonte: towardsdatascience.com