Grandi modelli linguistici, ALBERT – Un BERT leggero per l’apprendimento auto-supervisionato

Grandi modelli linguistici, ALBERT - Un BERT agile per l'apprendimento auto-supervisionato

Comprendere le tecniche essenziali dietro le scelte di architettura BERT per la produzione di un modello compatto ed efficiente

Introduzione

Negli ultimi anni, l’evoluzione dei grandi modelli linguistici è aumentata vertiginosamente. BERT è diventato uno dei modelli più popolari ed efficienti che consente di risolvere una vasta gamma di compiti di NLP con alta precisione. Dopo BERT, sono successivamente apparsi altri modelli che hanno dimostrato risultati eccezionali.

L’ovvia tendenza che è diventata facile osservare è il fatto che nel tempo i grandi modelli linguistici (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 mostrato che tali tecniche di solito portano a migliori risultati. Purtroppo, il mondo dell’apprendimento automatico ha già affrontato diversi problemi riguardanti i LLM e la scalabilità è diventata il principale ostacolo in termini di addestramento efficace, memorizzazione e utilizzo.

Di conseguenza, per affrontare i problemi di scalabilità, sono stati sviluppati di recente nuovi LLM. In questo articolo, discuteremo di ALBERT, che è stato inventato nel 2020 con l’obiettivo di ridurre significativamente i parametri di BERT.

ALBERT

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

Le procedure di addestramento e fine-tuning in ALBERT sono analoghe a quelle in BERT. Come BERT, ALBERT viene preaddestrato su Wikipedia inglese (2500M parole) e BookCorpus (800M parole).

1. Incorporazione di Parametro Fattorizzato

Quando una sequenza di input viene tokenizzata, ogni token viene quindi mappato su una delle incorporazioni del vocabolario. Queste incorporazioni vengono utilizzate per l’input a BERT.

Sia V la dimensione del vocabolario (il numero totale di incorporazioni possibili) e H la dimensionalità dell’incorporazione. Quindi, per ciascuna delle V incorporazioni, è necessario memorizzare H valori che risultano in una matrice di incorporazione V x H. Come si scopre nella pratica, questa matrice di solito ha dimensioni enormi e richiede molta memoria per memorizzarla. Ma il problema più generale è che nella maggior parte dei casi gli elementi di una matrice di incorporazione sono addestrabili e richiedono molte risorse affinché il modello apprenda i parametri appropriati.

Ad esempio, prendiamo il modello di base di BERT: ha un vocabolario di 30.000 token, ognuno rappresentato da un’incorporazione di 768 componenti. In totale, ciò comporta 23 milioni di pesi da memorizzare e addestrare. Per modelli più grandi, questo numero è ancora più grande.

Questo problema può essere evitato utilizzando la fattorizzazione della matrice. La matrice di vocabolario originale V x H può essere decomposta in una coppia di matrici più piccole delle dimensioni V x E e E x H.

Fattorizzazione della matrice di vocabolario

Di conseguenza, anziché utilizzare O(V x H) parametri, la decomposizione comporta solo O(V x E + E x H) pesi. Ovviamente, questo metodo è efficace quando H >> E.

Un altro ottimo aspetto della fattorizzazione della matrice è il fatto che non cambia il processo di ricerca per ottenere le incorporazioni del token: ogni riga della matrice di decomposizione sinistra V x E mappa un token nella sua incorporazione corrispondente nello stesso modo semplice in cui era nella matrice originale V x H. In questo modo, la dimensionalità delle incorporazioni diminuisce da H a E.

Tuttavia, nel caso delle matrici decomposte, per ottenere l’input per BERT, le incorporazioni mappate devono quindi essere proiettate nello spazio nascosto di BERT: ciò viene fatto moltiplicando una riga corrispondente della matrice sinistra per le colonne della matrice destra.

2. Condivisione dei Parametri tra le Varie Strati

Uno dei modi per ridurre i parametri del modello è renderli condivisibili. Ciò significa che tutti condividono gli stessi valori. Per la maggior parte, ciò riduce semplicemente la memoria richiesta per memorizzare i pesi. Tuttavia, gli algoritmi standard come la retropropagazione o l’infere

Performance di ALBERT large (18M parametri) con l'aumento del numero di strati. I modelli nel diagramma con ≥ 3 strati sono stati adattati dal checkpoint del modello precedente. Si può osservare che dopo aver raggiunto i 12 strati, l'aumento delle prestazioni rallenta e diminuisce gradualmente dopo i 24 strati.
  • Fenomeno simile si verifica con l’aumento della dimensione dello strato nascosto. Aumentarla con valori superiori a 4096 degrada le prestazioni del modello.
Performance di ALBERT large (configurazione a 3 strati dal diagramma sopra) con l'aumento della dimensione nascosta. La dimensione nascosta di 4096 è il valore ottimale.

Conclusioni

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

A causa di queste ragioni, ALBERT si adatta meglio a problemi in cui la velocità può essere sacrificata per ottenere una maggiore precisione. Alla fine, il dominio NLP non si ferma mai ed è in costante progresso verso nuove tecniche di ottimizzazione. È molto probabile che il tasso di velocità in ALBERT venga migliorato in un prossimo futuro. Gli autori dell’articolo hanno già menzionato metodi come attenzione sparssa e attenzione a blocchi come algoritmi potenziali per l’accelerazione di ALBERT.

Risorse

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