Modelli linguistici di grandi dimensioni: DistilBERT: più piccolo, più veloce, più economico e più leggero |  di Vyacheslav Efimov |  Ottobre 2023

 | Intelligenza-Artificiale

Svelare i segreti della compressione BERT: una struttura studente-insegnante per la massima efficienza

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 state elaborate tecniche speciali per comprimere i LLM. Gli obiettivi degli algoritmi di compressione sono la diminuzione del tempo di addestramento, la riduzione del consumo di memoria o l’accelerazione dell’inferenza del modello. Le tre tecniche di compressione più comuni utilizzate nella pratica sono le seguenti:

  • Distillazione della conoscenza comporta l’addestramento di un modello più piccolo cercando di rappresentare il comportamento di un modello più grande.
  • Quantizzazione è il processo di riduzione della memoria per la memorizzazione dei numeri che rappresentano i pesi del modello.
  • Potatura si riferisce all’eliminazione dei pesi del modello meno importante.

In questo articolo comprenderemo il meccanismo di distillazione applicato al BERT che ha portato ad un nuovo modello chiamato DistillBERT. A proposito, le tecniche discusse di seguito possono essere applicate anche ad altri modelli di PNL.

L’obiettivo della distillazione è creare un modello più piccolo che possa imitare un modello più grande. In pratica, ciò significa che se un modello di grandi dimensioni prevede qualcosa, ci si aspetta che un modello più piccolo faccia una previsione simile.

Per raggiungere questo obiettivo, un modello più grande deve essere già pre-addestrato (BERT nel nostro caso). Successivamente è necessario scegliere un’architettura di un modello più piccolo. Per aumentare le possibilità di un’imitazione di successo, di solito si consiglia che il modello più piccolo abbia un’architettura simile al modello più grande con un numero ridotto di parametri. Infine, il modello più piccolo apprende dalle previsioni fatte dal modello più grande su un determinato set di dati. A questo scopo è fondamentale scegliere una funzione di perdita appropriata che aiuti il ​​modello più piccolo ad apprendere meglio.

Nella notazione della distillazione, il modello più grande è chiamato a insegnante e il modello più piccolo è indicato come a alunno.

Generalmente, la procedura di distillazione viene applicata durante il pretaining, ma può essere applicata anche durante la messa a punto.

DistilBERT impara da BERT e aggiorna i suoi pesi utilizzando la funzione di perdita che consiste di tre componenti:

  • Perdita del Masked Language Modeling (MLM).
  • Perdita di distillazione
  • Perdita di somiglianza

Di seguito discuteremo queste componenti di perdita e comprenderemo la necessità di ciascuna di esse. Tuttavia, prima di approfondire è necessario comprendere un concetto importante chiamato temperatura nella funzione di attivazione softmax. Il concetto di temperatura viene utilizzato nella funzione di perdita DistilBERT.

Spesso capita di osservare una trasformazione softmax come ultimo strato di una rete neurale. Softmax normalizza tutti gli output del modello, quindi si sommano a 1 e possono essere interpretati come probabilità.

Esiste una formula softmax in cui tutti gli output del modello sono divisi per a temperatura parametro T:

Formula della temperatura Softmax. pᵢ e zᵢ sono rispettivamente l’output del modello e la probabilità normalizzata per l’oggetto i-esimo. T è il parametro della temperatura.

La temperatura T controlla la regolarità della distribuzione in uscita:

  • Se T > 1, la distribuzione diventa più uniforme.
  • Se T = 1, la distribuzione è la stessa se fosse applicato il softmax normale.
  • Se T < 1 la distribuzione diventa più approssimativa.

Per rendere le cose più chiare, vediamo un esempio. Consideriamo un compito di classificazione con 5 etichette in cui una rete neurale ha prodotto 5 valori che indicano la confidenza di un oggetto di input appartenente a una classe corrispondente. L’applicazione di softmax con diversi valori di T produce diverse distribuzioni di output.

Un esempio di rete neurale che produce diverse distribuzioni di probabilità in base alla temperatura T

Maggiore è la temperatura, più uniforme diventa la distribuzione di probabilità.

Trasformazione Softmax dei logit (numeri naturali da 1 a 5) in base a diversi valori della temperatura T. All’aumentare della temperatura, i valori softmax diventano più allineati tra loro.

Perdita della modellazione linguistica mascherata

Similmente al modello dell’insegnante (BERT), durante la preformazione, lo studente (DistilBERT) impara la lingua facendo previsioni per il compito di modellazione linguistica mascherata. Dopo aver prodotto una previsione per un determinato token, la distribuzione di probabilità prevista viene confrontata con la distribuzione di probabilità codificata a caldo del modello dell’insegnante.

La distribuzione codificata one-hot designa una distribuzione di probabilità in cui la probabilità del token più probabile è impostata su 1 e le probabilità di tutti gli altri token sono impostate su 0.

Come nella maggior parte dei modelli linguistici, la perdita di entropia incrociata viene calcolata tra la distribuzione prevista e quella reale e i pesi del modello dello studente vengono aggiornati tramite la propagazione all’indietro.

Esempio di calcolo della perdita di modellazione del linguaggio mascherato

Perdita di distillazione

In realtà è possibile utilizzare solo la perdita degli studenti per addestrare il modello studentesco. Tuttavia, in molti casi, potrebbe non essere sufficiente. Il problema comune con l’utilizzo solo della perdita di studente risiede nella sua trasformazione softmax in cui la temperatura T è impostata su 1. In pratica, la distribuzione risultante con T = 1 risulta essere nella forma in cui una delle possibili etichette ha un valore molto l’alta probabilità è vicina a 1 e tutte le altre probabilità dell’etichetta diventano basse essendo vicine a 0.

Tale situazione non si allinea bene con i casi in cui due o più etichette di classificazione sono valide per un particolare input: il livello softmax con T = 1 molto probabilmente escluderà tutte le etichette valide tranne una e renderà la distribuzione di probabilità vicina a uno- distribuzione della codifica a caldo. Ciò si traduce in una perdita di informazioni potenzialmente utili che potrebbero essere apprese dal modello studentesco, rendendolo meno diversificato.

Ecco perché introducono gli autori del documento perdita di distillazione in cui le probabilità softmax vengono calcolate con una temperatura T > 1 rendendo possibile un allineamento uniforme delle probabilità, prendendo così in considerazione diverse possibili risposte per lo studente.

Nella perdita per distillazione, la stessa temperatura T viene applicata sia allo studente che all’insegnante. La codifica one-hot della distribuzione dell’insegnante viene rimossa.

Esempio di calcolo della perdita di distillazione

Invece della perdita di entropia incrociata, è possibile utilizzare la perdita di divergenza KL.

Perdita di somiglianza

I ricercatori affermano inoltre che è vantaggioso aggiungere la perdita di somiglianza del coseno tra gli incorporamenti di stati nascosti.

Formula della perdita del coseno

In questo modo, è probabile che lo studente non solo riproduca correttamente i token mascherati, ma anche costruisca incorporamenti simili a quelli dell’insegnante. Inoltre apre la porta alla preservazione delle stesse relazioni tra gli incastri in entrambi gli spazi dei modelli.

Esempio di calcolo della perdita di similarità

Tripla perdita

Infine, viene calcolata la somma della combinazione lineare di tutte e tre le funzioni di perdita che definisce la funzione di perdita in DistilBERT. In base al valore della perdita, la backpropagation viene eseguita sul modello student per aggiornarne i pesi.

Funzione di perdita DistillBERT

Un fatto interessante è che, tra le tre componenti della perdita, la perdita della modellazione del linguaggio mascherato ha la minore importanza sulle prestazioni del modello. La perdita di distillazione e la perdita di somiglianza hanno un impatto molto maggiore.

Il processo di inferenza in DistilBERT funziona esattamente come durante la fase di training. L’unica sottigliezza è che la temperatura softmax T è impostata su 1. Questo viene fatto per ottenere probabilità vicine a quelle calcolate da BERT.

In generale, DistilBERT utilizza la stessa architettura di BERT ad eccezione di queste modifiche:

  • DistilBERT ha solo la metà degli strati BERT. Ogni livello nel modello viene inizializzato prendendo uno strato BERT su due.
  • Gli incorporamenti di tipo token vengono rimossi.
  • Lo strato denso applicato allo stato nascosto del token (CLS) per un’attività di classificazione viene rimosso.
  • Per una performance più solida, gli autori utilizzano le migliori idee proposte in RoBERTa:
    – utilizzo del mascheramento dinamico
    – rimuovendo l’obiettivo di previsione della frase successiva
    – formazione su lotti più grandi
    – Viene applicata la tecnica di accumulo del gradiente per calcoli del gradiente ottimizzati

La dimensione dell’ultimo livello nascosto (768) in DistilBERT è la stessa di BERT. Gli autori hanno riferito che la sua riduzione non porta a notevoli miglioramenti in termini di efficienza di calcolo. Secondo loro, ridurre il numero totale di strati ha un impatto molto maggiore.

DistilBERT è addestrato sullo stesso corpus di dati di BERT che contiene BooksCorpus (800 milioni di parole) Wikipedia inglese (2500 milioni di parole).

I parametri chiave delle prestazioni di BERT e DistilBERT sono stati confrontati sui numerosi benchmark più popolari. Ecco i fatti importanti da conservare:

  • Durante l’inferenza, DistilBERT è il 60% più veloce di BERT.
  • DistilBERT ha 44 milioni di parametri in meno e in totale è più piccolo del 40% rispetto a BERT.
  • DistilBERT mantiene il 97% delle prestazioni BERT.
Confronto BERT vs DistilBERT (sul set di dati GLUE)

DistilBERT ha compiuto un enorme passo avanti nell’evoluzione di BERT consentendogli di comprimere in modo significativo il modello ottenendo prestazioni comparabili su varie attività di PNL. A parte questo, DistilBERT pesa solo 207 MB rendendo più semplice l’integrazione su dispositivi con capacità limitate. La distillazione della conoscenza non è l’unica tecnica da applicare: DistilBERT può essere ulteriormente compresso con algoritmi di quantizzazione o potatura.

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 *