Comprendere le tecniche essenziali alla base delle scelte dell’architettura BERT per produrre un modello compatto ed efficiente

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.

Di conseguenza, sono stati recentemente sviluppati nuovi LLM per affrontare i problemi di scalabilità. In questo articolo parleremo di ALBERT che è stato inventato nel 2020 con l’obiettivo di una significativa riduzione dei parametri BERT.

Per comprendere i meccanismi alla base di ALBERT, faremo riferimento al suo documento ufficiale. Per la maggior parte, ALBERT deriva la stessa architettura da BERT. Esistono tre differenze principali nella scelta dell’architettura del modello che verranno affrontate e spiegate di seguito.

Le procedure di formazione e perfezionamento in ALBERT sono analoghe a quelle di BERT. Come BERT, ALBERT è preaddestrato su Wikipedia inglese (2500 milioni di parole) e BookCorpus (800 milioni di parole).

Quando una sequenza di input viene tokenizzata, ciascuno dei token viene quindi mappato su uno degli incorporamenti del vocabolario. Questi incorporamenti vengono utilizzati per l’input in BERT.

Permettere V essere la dimensione del vocabolario (il numero totale di possibili incorporamenti) e H – incorporare la dimensionalità. Quindi per ciascuno dei V incorporamenti, dobbiamo archiviarli H valori risultanti in a VxH matrice di inclusione. Come risulta in pratica, questa matrice solitamente ha dimensioni enormi e richiede molta memoria per essere memorizzata. Ma un problema più globale è che la maggior parte delle volte gli elementi di una matrice di inclusione sono addestrabili e sono necessarie molte risorse affinché il modello apprenda i parametri appropriati.

Ad esempio, prendiamo il modello base BERT: ha un vocabolario di 30.000 token, ciascuno rappresentato da un incorporamento di 768 componenti. In totale, ciò si traduce in 23 milioni di pesi da memorizzare e allenare. Per i modelli più grandi, questo numero è ancora maggiore.

Questo problema può essere evitato utilizzando la fattorizzazione di matrici. La matrice del vocabolario originale VxH può essere scomposto in una coppia di matrici di dimensioni più piccole VxE E ExH.

Fattorizzazione della matrice del vocabolario

Di conseguenza, invece di utilizzare O(VxA) parametri, solo i risultati della decomposizione O(VxE + ExH) pesi. Ovviamente, questo metodo è efficace quando H >> E.

Un altro aspetto interessante della fattorizzazione di matrici è il fatto che non modifica il processo di ricerca per ottenere gli incorporamenti di token: ogni riga della matrice scomposta di sinistra VxE associa un token al suo incorporamento corrispondente nello stesso semplice modo in cui lo era nella matrice originale VxH. In questo modo la dimensionalità degli incastri diminuisce da H A E.

Tuttavia, nel caso di matrici scomposte, per ottenere l’input per BERT, gli embedding mappati devono poi essere proiettati nello spazio BERT nascosto: ciò avviene moltiplicando una riga corrispondente della matrice sinistra per colonne della matrice destra.

Uno dei modi per ridurre i parametri del modello è renderli condivisibili. Ciò significa che condividono tutti gli stessi valori. Nella maggior parte dei casi riduce semplicemente la memoria necessaria per memorizzare i pesi. Tuttavia, algoritmi standard come la backpropagation o l’inferenza dovranno comunque essere eseguiti su tutti i parametri.

Uno dei modi più ottimali per condividere i pesi si verifica quando questi si trovano in blocchi diversi ma simili del modello. Inserendoli in blocchi simili aumenta la probabilità che la maggior parte dei calcoli per i parametri condivisibili durante la propagazione in avanti o la propagazione all’indietro siano gli stessi. Ciò offre maggiori opportunità per progettare un quadro di calcolo efficiente.

L’idea menzionata è implementata in ALBERT che consiste in un insieme di blocchi Transformer con la stessa struttura che rendono la condivisione dei parametri più efficiente. In effetti, esistono diversi modi per condividere i parametri in Transformers tra livelli:

  • condividere solo parametri di attenzione;
  • condividere solo i parametri della rete neurale diretta (FNN);
  • condividere tutti i parametri (usati in ALBERT).
Diverse strategie di condivisione dei parametri

In generale, è possibile dividere tutti gli strati del trasformatore in N gruppi di dimensione M ciascuno dove ogni gruppo condivide parametri all’interno degli strati di cui dispone. I ricercatori hanno scoperto che quanto più piccola è la dimensione M del gruppo, migliori sono i risultati. Tuttavia, la diminuzione della dimensione del gruppo M porta ad un aumento significativo dei parametri totali.

BERT si concentra sul raggiungimento di due obiettivi durante la preformazione: modellazione del linguaggio mascherato (MSM) e previsione della frase successiva (NSP). In generale, MSM è stato progettato per migliorare la capacità di BERT di acquisire conoscenze linguistiche e l’obiettivo di NSP era migliorare le prestazioni di BERT su particolari compiti a valle.

Tuttavia, numerosi studi hanno dimostrato che potrebbe essere utile eliminare l’obiettivo NSP principalmente a causa della sua semplicità, rispetto al MLM. Seguendo questa idea, i ricercatori ALBERT hanno anche deciso di rimuovere il compito NSP e sostituirlo con il problema di previsione dell’ordine delle frasi (SOP), il cui obiettivo è prevedere se entrambe le frasi si trovano nell’ordine corretto o inverso.

Parlando del set di dati di addestramento, tutte le coppie positive di frasi di input vengono raccolte in sequenza all’interno dello stesso passaggio di testo (lo stesso metodo di BERT). Per le frasi negative il principio è lo stesso, tranne per il fatto che entrambe le frasi vanno in ordine inverso.

Composizione delle coppie di allenamento positive e negative in BERT in ALBERT

È stato dimostrato che i modelli addestrati con l’obiettivo NSP non possono risolvere accuratamente i compiti SOP mentre i modelli addestrati con l’obiettivo SOP funzionano bene sui problemi NSP. Questi esperimenti dimostrano che ALBERT è più adatto rispetto a BERT per risolvere vari compiti a valle.

Il confronto dettagliato tra BERT e ALBERT è illustrato nel diagramma seguente.

Confronto tra diverse varianti dei modelli BERT e ALBERT. La velocità misurata con le stesse configurazioni mostra la velocità con cui i modelli hanno ripetuto i dati di addestramento. I valori di velocità sono mostrati relativamente per ciascun modello (come linea di base viene preso il BERT grande la cui velocità è pari a 1x). Il punteggio di accuratezza è stato misurato sui benchmark GLUE, SQuAD e RACE.

Ecco le osservazioni più interessanti:

  • Avendo solo il 70% dei parametri di BERT large, la versione xxlarge di ALBERT ottiene prestazioni migliori nelle attività downstream.
  • ALBERT large raggiunge prestazioni comparabili, rispetto a BERT large, ed è 1,7 volte più veloce grazie alla massiccia compressione delle dimensioni dei parametri.
  • Tutti i modelli ALBERT hanno una dimensione di inclusione pari a 128. Come mostrato negli studi sull’ablazione riportati nel documento, questo è il valore ottimale. Aumentare la dimensione dell’incorporamento, ad esempio, fino a 768, migliora le metriche ma non più dell’1% in valori assoluti, il che non riguarda tanto la crescente complessità del modello.
  • Sebbene ALBERT xxlarge elabori una singola iterazione di dati 3,3 volte più lentamente di BERT large, gli esperimenti hanno dimostrato che se si addestrano entrambi questi modelli per lo stesso periodo di tempo, ALBERT xxlarge dimostra una prestazione media considerevolmente migliore sui benchmark rispetto a BERT large (88,7% rispetto a BERT large) 87,2%).
  • Gli esperimenti hanno dimostrato che i modelli ALBERT con ampie dimensioni nascoste (≥ 1024) non beneficiano molto di un aumento del numero di strati. Questo è uno dei motivi per cui il numero di strati è stato ridotto da 24 nella versione ALBERT large a 12 nella versione xxlarge.
Prestazioni di ALBERT large (parametri 18M) con l’aumento del numero di strati. I modelli nel diagramma con ≥ 3 strati sono stati perfezionati dal punto di controllo del modello precedente. Si può osservare che dopo aver raggiunto i 12 strati, l’aumento delle prestazioni rallenta e diminuisce gradualmente dopo 24 strati.
  • Un fenomeno simile si verifica con l’aumento della dimensione dello strato nascosto. Aumentandolo con valori maggiori di 4096 si riducono le prestazioni del modello.
Prestazioni di ALBERT large (configurazione a 3 strati dal diagramma sopra) con l’aumento della dimensione nascosta. La dimensione nascosta di 4096 è il valore ottimale.

A prima vista, ALBERT sembra una scelta preferibile rispetto ai modelli BERT originali poiché li supera nelle attività a valle. Tuttavia, ALBERT richiede molti più calcoli a causa delle sue strutture più lunghe. Un buon esempio di questo problema è ALBERT xxlarge che ha 235 milioni di parametri e 12 livelli di codifica. La maggior parte di questi pesi da 235 milioni appartengono ad un singolo blocco trasformatore. I pesi vengono quindi condivisi per ciascuno dei 12 strati. Pertanto, durante l’addestramento o l’inferenza, l’algoritmo deve essere eseguito su più di 2 miliardi di parametri!

Per questi motivi, ALBERT è più adatto ai problemi in cui è possibile sacrificare la velocità per ottenere una maggiore precisione. In definitiva, il dominio della PNL non si ferma mai e progredisce costantemente verso nuove tecniche di ottimizzazione. È molto probabile che la velocità in ALBERT migliorerà nel prossimo futuro. Gli autori dell’articolo hanno già menzionato metodi come scarsa attenzione E bloccare l’attenzione come potenziali algoritmi per l’accelerazione ALBERT.

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 *