Calcolatore dei FLOPs per token
Dati di input
| Tipo di passaggio | Passaggio in avanti (2N) |
|---|---|
| Parametri | 70 |
Calcolatore dei FLOPs per token
Stima le operazioni in virgola mobile che un transformer esegue per token usando le regole del 2N in avanti e del 6N in addestramento, a partire dal conteggio dei parametri del modello in miliardi.
Dati di input
Modello
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
FLOPs per token
Quanto calcolo spende un modello linguistico per un singolo token? La risposta sta alla base di quasi ogni stima approssimativa del settore — budget di addestramento, costi di inferenza e utilizzo dell'hardware partono tutti da essa. La scorciatoia standard è notevolmente semplice: un transformer denso esegue circa due operazioni in virgola mobile per parametro per elaborare un token, e circa sei durante l'addestramento. Questo calcolatore applica quelle regole al conteggio dei parametri di un modello.
La regola del 2N
Il calcolo di un transformer è dominato dalle grandi moltiplicazioni di matrici, e in ciascuna di esse ogni peso viene toccato una volta per token. Una singola moltiplicazione-accumulazione conta come due operazioni in virgola mobile — una moltiplicazione e un'addizione — perciò spingere un token attraverso un modello con parametri costa all'incirca due operazioni per parametro, la regola del 2N, nel passaggio in avanti. È la stima del lavoro sulle leggi di scala di Kaplan, ed è diventata la valuta universale per ragionare sul calcolo dei modelli. Ignora deliberatamente tutto ciò che non è una moltiplicazione di matrici pesata dai parametri, il che è una buona approssimazione per i modelli grandi.
Costo in avanti e in addestramento
Addestrare un modello richiede anche un passaggio all'indietro per calcolare i gradienti. Il passaggio all'indietro produce i gradienti rispetto sia alle attivazioni sia ai pesi, ciascuno all'incirca il costo del passaggio in avanti, perciò raddoppia all'incirca il lavoro in avanti. Il totale è circa tre passaggi in avanti, ovvero sei operazioni per parametro per token (la stima del 6N):
GF=k⋅N(GFLOPs, N in miliardi)=k⋅N×109con il fattore pari a due per un passaggio in avanti e sei per un passo di addestramento. Poiché viene inserito in miliardi, la cifra in avanti cade direttamente in GFLOPs.
Esempio svolto
Per un modello da 70 miliardi di parametri in un passaggio in avanti:
GF=2×70=140 GFLOPs=2×70×109=1,4×1011 FLOPsOgni token generato costa circa 140 GFLOPs. Moltiplicando per il throughput totale di un modello si ottiene il ritmo di calcolo raggiunto, e dividendolo per il picco di un acceleratore si ottiene il suo utilizzo. Addestrare lo stesso modello costerebbe GFLOPs per token, e moltiplicare il costo di addestramento per il totale dei token di un dataset è il modo usuale per dimensionare il budget di calcolo di un'esecuzione di addestramento.
Che cosa tralascia
La regola conta solo le moltiplicazioni di matrici che coinvolgono parametri. Il meccanismo di attenzione aggiunge un termine separato che cresce con la lunghezza della sequenza e non dipende dal conteggio dei parametri; per i modelli tipici a lunghezze di contesto moderate è piccolo, ma a contesti molto lunghi può diventare significativo. Gli strati di embedding e normalizzazione sono parimenti omessi. Per queste ragioni la cifra è una stima per la scala e il budget, non un conteggio esatto delle istruzioni. Per vedere il calcolo raggiunto come frazione del picco dell'hardware, si prosegua con l'Calcolatore dell'utilizzo dei FLOPs del modello.
Domande frequenti (FAQ)
Da dove viene la stima 2N?
Il calcolo di un transformer è dominato dalle moltiplicazioni di matrici, in cui ogni peso viene usato una volta per token. Una moltiplicazione-accumulazione conta come due operazioni in virgola mobile — una moltiplicazione e un'addizione — perciò elaborare un singolo token attraverso N parametri costa circa 2N operazioni nel passaggio in avanti.
È la regola pratica introdotta nel lavoro sulle leggi di scala di Kaplan e riusata in tutto il settore. È un'approssimazione: conta le grandi moltiplicazioni di matrici e tratta tutto il resto come trascurabile, cosa che vale bene per i modelli grandi.
Perché l'addestramento è tre volte più costoso?
L'addestramento esegue il passaggio in avanti e poi un passaggio all'indietro per calcolare i gradienti. Il passaggio all'indietro calcola i gradienti rispetto sia alle attivazioni sia ai pesi, ciascuno all'incirca il costo del passaggio in avanti, perciò il passaggio all'indietro è circa il doppio di quello in avanti e il totale è circa tre volte — sei operazioni per parametro per token.
Moltiplicare 6N per il totale dei token di un dataset è il modo usuale per stimare il budget di calcolo di un'esecuzione di addestramento.
Questo include l'attenzione?
No. Le regole 2N e 6N contano solo le moltiplicazioni di matrici che coinvolgono parametri. Il meccanismo di attenzione aggiunge un termine che cresce con la lunghezza della sequenza ed è indipendente dal conteggio dei parametri.
Per i tipici modelli grandi a lunghezze di contesto moderate quel termine è piccolo rispetto alle moltiplicazioni di matrici, perciò la stima resta vicina. A lunghezze di contesto molto elevate l'attenzione può diventare una quota significativa, e serve un modello più dettagliato.
Avvertenze legali
Queste sono stime di primo ordine che contano le moltiplicazioni di matrici dominanti e omettono i termini di attenzione, normalizzazione ed embedding. I conteggi effettivi delle operazioni dipendono dall'architettura e dalla lunghezza del contesto. Usare la cifra per confronti di scala e stime di budget, non per un conteggio hardware esatto.
Da provare dopo
Calcolatore dell'utilizzo dei FLOPs del modello
Calcola l'utilizzo dei FLOPs del modello (MFU): la quota del throughput in virgola mobile di picco di un acceleratore che un'esecuzione del modello raggiunge davvero, a partire dal conteggio dei parametri, dal throughput dei token e dai TFLOP/s di picco.
Calcolatore del throughput di inferenza
Stima il limite imposto dalla larghezza di banda della memoria alla velocità di decodifica di un LLM a partire dalla dimensione del modello, dalla precisione dei pesi e dalla larghezza di banda della memoria dell'acceleratore — il tetto in token al secondo per un singolo flusso.