Calcolatore del numero di parametri di un transformer
Dati di input
| Strati | 32 |
|---|---|
| Dimensione nascosta | 4.096 |
| Espansione feed-forward | 4 |
| Dimensione del vocabolario | 32.000 |
Calcolatore del numero di parametri di un transformer
Stima il numero totale di parametri di un transformer solo-decoder a partire dal numero di strati, dalla dimensione nascosta, dall'espansione feed-forward e dalla dimensione del vocabolario, con una formula architetturale di primo ordine.
Dati di input
Architettura
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
Numero di parametri di un transformer
La dimensione di un modello linguistico di grandi dimensioni viene di solito riportata come un singolo numero di riferimento — sette miliardi, settanta miliardi — ma quel valore è determinato interamente da una manciata di scelte architetturali. Dati il numero di strati, la dimensione nascosta, l'espansione feed-forward e il vocabolario, il numero totale di parametri segue da una breve formula. Questo calcolatore applica quella formula per fornire una stima di primo ordine, lo stesso ragionamento a spanne usato per dimensionare un modello prima che esista alcun peso.
Dove risiedono i parametri
Quasi ogni peso in un transformer solo-decoder si trova in uno di tre posti. Il sottostrato di attenzione di ogni blocco contiene quattro matrici di pesi quadrate — le proiezioni di query, chiave, valore e output — ciascuna di dimensione nascosta per nascosta. Il sottostrato feed-forward contiene due matrici che espandono il flusso nascosto a una dimensione interna più larga e lo riproiettano indietro. E, separata dalla pila di strati, la tabella degli embedding dei token memorizza un vettore di dimensione nascosta per ogni voce del vocabolario.
Contare questi elementi dà la stima architetturale. Il blocco di attenzione contribuisce con circa valori per strato, dove è la dimensione nascosta. Il blocco feed-forward, espandendosi a una larghezza interna di , contribuisce con circa . La tabella degli embedding contribuisce con la dimensione del vocabolario per .
La formula
Con strati, dimensione nascosta , moltiplicatore feed-forward e dimensione del vocabolario , il numero totale di parametri è
N=L⋅d2⋅(4+2m)+V⋅dIl primo termine raccoglie i pesi di attenzione e feed-forward per strato su tutti gli strati; il secondo è la tabella degli embedding. Poiché il termine per strato cresce con il quadrato della dimensione nascosta, la larghezza del modello conta molto più della profondità: raddoppiare la dimensione nascosta quadruplica all'incirca il conteggio, mentre raddoppiare gli strati lo raddoppia soltanto.
Esempio svolto
Consideriamo un modello con 32 strati, una dimensione nascosta di 4096, un'espansione feed-forward di quattro e un vocabolario di 32.000 token. Il fattore per strato è , quindi
N=32×40962×12+32000×4096=6442450944+131072000≈6,57 miliardiLa pila di strati ne rappresenta quasi la totalità; la tabella degli embedding aggiunge solo circa 131 milioni, poco più del due percento. Con l'espansione comune di quattro, circa due terzi di ogni strato risiedono nei pesi feed-forward e un terzo nell'attenzione.
Cosa tralascia la stima
Questo è un conteggio di primo ordine. Cattura le matrici che dominano il totale ma omette i termini piccoli: i bias, i valori di scala e traslazione della normalizzazione di strato e gli eventuali embedding di posizione appresi. Insieme questi sono tipicamente ben al di sotto dell'uno percento di un modello grande, quindi non spostano il valore di riferimento. La stima assume anche che l'embedding di input e la proiezione di output condividano una sola matrice — embedding legati — quindi la tabella viene contata una volta; un modello con embedding non legati porta quella tabella due volte.
Una volta noto il conteggio, esso guida le questioni pratiche del deployment. La memoria necessaria per contenere i pesi dipende dal conteggio e dalla precisione numerica, esplorata nel Calcolatore della dimensione del modello dalla quantizzazione. La memoria richiesta per addestrare lo stesso modello, che aggiunge lo stato dell'ottimizzatore e le attivazioni sopra i pesi, è trattata nel Calcolatore della VRAM di addestramento per LLM.
Domande frequenti (FAQ)
Cosa conta come parametro?
Un parametro è un singolo peso o valore di bias appreso e memorizzato nel modello. I contributi dominanti sono le matrici dei pesi delle proiezioni di attenzione e degli strati feed-forward, più la tabella degli embedding dei token.
Questa stima conta quelle matrici e la tabella degli embedding. Omette i termini piccoli — i bias, i valori di scala e traslazione della normalizzazione di strato e gli eventuali embedding di posizione appresi — che insieme di solito ammontano a ben meno dell'uno percento di un modello grande.
Quanto contribuisce la tabella degli embedding?
La tabella degli embedding dei token memorizza un vettore di dimensione nascosta per ogni voce del vocabolario, quindi contiene la dimensione del vocabolario per la dimensione nascosta valori. Per un modello piccolo con un vocabolario grande questa può essere una quota considerevole del totale, ma per un modello grande dominano i pesi di attenzione e feed-forward per strato e l'embedding diventa una frazione minore.
Quando l'embedding di input e la proiezione di output condividono la stessa matrice — embedding legati — la tabella viene contata una volta sola anziché due.
Gli strati di attenzione o feed-forward contengono più pesi?
Per strato il blocco di attenzione contiene circa quattro volte la dimensione nascosta al quadrato valori dalle proiezioni di query, chiave, valore e output, mentre il blocco feed-forward contiene circa due volte il moltiplicatore di espansione per la dimensione nascosta al quadrato.
Con l'espansione comune di quattro, il blocco feed-forward contiene all'incirca otto volte la dimensione nascosta al quadrato contro quattro del blocco di attenzione, quindi circa due terzi di ogni strato risiedono nei pesi feed-forward.
Avvertenze legali
Questa è una stima di primo ordine. Cattura le proiezioni di attenzione, i pesi feed-forward e la tabella degli embedding, ma omette i bias, i parametri della normalizzazione di strato e gli embedding di posizione, e assume embedding di input e output legati. I conteggi pubblicati per un modello specifico possono differire di un piccolo margine.
Da provare dopo
Calcolatore della dimensione del modello dalla quantizzazione
Stima la dimensione su disco e in memoria di un modello linguistico di grandi dimensioni a partire dal numero di parametri e dalla larghezza in bit della quantizzazione, sia in gigabyte decimali sia in gibibyte binari.
Calcolatore della VRAM di addestramento per LLM
Stima la VRAM della GPU necessaria per il fine-tuning completo di un modello linguistico di grandi dimensioni a partire dal numero di parametri, dalla scelta dell'ottimizzatore e dalla memoria delle attivazioni, usando la regola di Adam in precisione mista di 16 byte per parametro.