Calcolatore dell'utilizzo dei FLOPs del modello
Dati di input
| Carico di lavoro | Inferenza (2N per token) |
|---|---|
| Parametri | 70 |
| Throughput dei token | 2.000 |
| Throughput di picco | 989 |
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.
Dati di input
Carico di lavoro
Hardware
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
L'utilizzo dei FLOPs del modello
L'utilizzo dei FLOPs del modello, o MFU (model FLOPs utilization), misura quanta parte del calcolo teorico di un acceleratore un'esecuzione del modello usa davvero. Due cluster con lo stesso hardware possono differire di diverse volte nell'uscita reale, e l'MFU è il singolo numero che cattura quello scarto: divide le operazioni in virgola mobile che un carico di lavoro esegue genuinamente per il picco che l'hardware dichiara. Questo calcolatore lo stima a partire dal conteggio dei parametri, dal throughput dei token e dai TFLOP/s di picco dell'acceleratore.
Che cosa dice l'MFU
I fornitori di hardware dichiarano un ritmo di picco — per un acceleratore da data center attuale, dell'ordine di un migliaio di TFLOP/s a 16 bit — che presuppone un flusso perfetto di moltiplicazioni-addizioni fuse con i dati già nei registri. Nessun carico di lavoro reale sostiene quel valore. L'MFU riporta la frazione raggiunta, perciò un MFU del 40% significa che l'esecuzione estrae quaranta centesimi di calcolo da ogni euro di picco teorico. È il metro standard per giudicare se una configurazione di addestramento o inferenza è ben ottimizzata e per decidere se un cambiamento ha davvero aiutato.
La formula
Un passaggio in avanti costa circa due operazioni in virgola mobile per parametro per token; un passo di addestramento aggiunge un passaggio all'indietro per circa sei in totale. Con il fattore del carico di lavoro (due per l'inferenza, sei per l'addestramento), il conteggio dei parametri in miliardi e il throughput in token al secondo, il ritmo raggiunto e l'utilizzo sono
AU=1000k⋅N⋅v=PAdove sono i TFLOP/s raggiunti, sono i TFLOP/s di picco sommati su ogni acceleratore dell'esecuzione e è l'utilizzo. La divisione per 1000 converte un miliardo di parametri per token al secondo in TFLOP/s.
Esempio svolto
Si prenda un modello da 70 miliardi di parametri che serve inferenza a 2.000 token al secondo su un singolo acceleratore valutato a 989 TFLOP/s di calcolo denso a 16 bit:
AU=10002×70×2000=280 TFLOP/s=989280≈0,283=28,3%L'esecuzione usa poco più di un quarto del picco del chip — tipico della decodifica limitata dalla memoria, dove gran parte del tempo è spesa a leggere pesi anziché a moltiplicare. Un lavoro di addestramento di un modello grande ben ottimizzato, più limitato dal calcolo, si collocherebbe più spesso fra il 35% e il 55%.
Perché non raggiunge mai il 100%
Le esecuzioni reali perdono tempo in trasferimenti di memoria, comunicazione fra acceleratori, bolle di pipeline e strati come l'attenzione e la normalizzazione che non sono pure moltiplicazioni di matrici. Un utilizzo perfetto significherebbe che nessuno di quei sovraccarichi esiste. L'uso pratico dell'MFU è comparativo: lo si misuri prima e dopo un'ottimizzazione sullo stesso carico di lavoro e hardware, e un numero più alto significa che una quota maggiore del calcolo che si sta pagando sta svolgendo lavoro utile. Il conteggio di operazioni per token che guida questa stima è approfondito nel Calcolatore dei FLOPs per token, e il lato della larghezza di banda della memoria dello stesso hardware nel Calcolatore del throughput di inferenza.
Domande frequenti (FAQ)
Che cosa si considera un buon MFU?
Per l'addestramento di modelli grandi, i sistemi ben ottimizzati riportano tipicamente un utilizzo dei FLOPs del modello compreso fra circa il 35% e il 55%; il lavoro su PaLM che ha reso popolare la metrica riportava circa il 46%.
L'utilizzo in inferenza è di solito più basso durante la decodifica limitata dalla memoria, perché l'acceleratore passa gran parte del tempo a leggere pesi anziché a calcolare. Non esiste un obiettivo universale — il confronto utile è con lo stesso carico di lavoro sullo stesso hardware dopo un'ottimizzazione, dove un numero più alto significa che una quota maggiore del calcolo pagato sta svolgendo lavoro utile.
Perché l'addestramento è sei FLOPs per parametro ma l'inferenza due?
Un passaggio in avanti esegue circa due operazioni in virgola mobile per parametro per token — una moltiplicazione e un'addizione nelle moltiplicazioni di matrici dominanti.
L'addestramento aggiunge un passaggio all'indietro che calcola i gradienti rispetto sia alle attivazioni sia ai pesi, e ciò costa circa il doppio del passaggio in avanti, dando in totale circa sei operazioni per parametro per token. Queste sono le stime standard di primo ordine; trascurano l'attenzione e altri termini che sono piccoli per i modelli grandi.
Perché l'utilizzo non può raggiungere il 100%?
Il throughput di picco è una cifra teorica per moltiplicazioni-addizioni fuse consecutive con i dati già nei registri.
Le esecuzioni reali perdono tempo in trasferimenti di memoria, comunicazione fra acceleratori, bolle di pipeline, strati di attenzione e normalizzazione che non sono pure moltiplicazioni di matrici, e kernel che non possono riempire perfettamente le unità di calcolo. Un utilizzo prossimo a uno significherebbe che nessuno di quei sovraccarichi esiste, cosa che non accade mai in pratica.
Avvertenze legali
L'MFU usa stime di FLOP di primo ordine (2N per l'inferenza, 6N per l'addestramento) che omettono l'attenzione e altri termini minori, e presuppone che la cifra di picco corrisponda alla precisione e al numero di acceleratori dell'esecuzione. Va inteso come indicatore comparativo di efficienza, non come conteggio esatto di ogni operazione.
Da provare dopo
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.
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.