Calcolatore dei parametri attivi MoE
Dati di input
| Esperti totali | 8 |
|---|---|
| Esperti attivi (top-k) | 2 |
| Parametri per esperto | 7 |
| Parametri condivisi | 1 |
Calcolatore dei parametri attivi MoE
Calcola il numero totale e attivo di parametri di un modello Mixture-of-Experts a partire dal numero di esperti, dal routing top-k, dalla dimensione di ciascun esperto e dai pesi condivisi, separando l'ingombro in memoria dal calcolo per token.
Dati di input
Modello
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
I parametri attivi MoE
Un modello Mixture-of-Experts porta con sé una coppia di numeri sorprendente: un grande conteggio di parametri totali che descrive quanto può contenere e un conteggio attivo molto più piccolo che descrive quanto lavoro svolge per token. I due vengono spesso confusi, eppure rispondono a domande diverse — uno fissa il conto della memoria, l'altro fissa il conto del calcolo. Questo calcolatore li separa a partire dal numero di esperti, dal routing top-k, dalla dimensione di ciascun esperto e dai pesi condivisi.
Come è costruita una Mixture of Experts
In un transformer denso, ogni token attraversa ogni peso. Una Mixture of Experts sostituisce il blocco feed-forward di un livello con molti esperti paralleli e aggiunge un piccolo router che, per ciascun token, ne sceglie solo i top-k. Il resto del modello — l'attenzione, il router, gli embedding e talvolta un esperto condiviso che viene sempre eseguito — rimane comune a tutti i token. Così il percorso di un token tocca i pesi condivisi e solo la manciata di esperti a cui è stato instradato, mentre gli altri esperti restano inattivi per quel token.
Questo disaccoppia due grandezze che in un modello denso si muovono insieme. La capacità cresce con il numero di esperti, perché più esperti possono immagazzinare più conoscenza specializzata. Il calcolo cresce solo con gli esperti attivi, perché solo questi eseguono operazioni su un dato token.
I due conteggi
Con esperti totali, attivi per token, parametri per esperto e parametri condivisi, i conteggi totale e attivo sono
TAr=s+E⋅p=s+k⋅p=TAdove è il totale che determina l'ingombro in memoria, è il conteggio attivo che determina il calcolo per token e è la frazione dei pesi toccata da ciascun token.
Esempio svolto
Consideriamo un modello con otto esperti da sette miliardi di parametri ciascuno, che instrada due esperti per token, sopra un miliardo di parametri condivisi:
TAr=1+8×7=57 miliardi=1+2×7=15 miliardi=5715≈0,263=26,3%Il modello contiene 57 miliardi di parametri ma spende calcolo come se fosse un modello da 15 miliardi su ogni token — all'incirca un quarto dei pesi è attivo per volta. È questo il punto di forza: la capacità di un modello da 57 miliardi a un costo per token vicino a quello di uno da 15 miliardi.
La memoria segue comunque il totale
Il rovescio della medaglia è che il risparmio è nel calcolo, non nella memoria. Poiché qualunque esperto può essere scelto per qualunque token e un batch di token si distribuisce tra molti esperti, devono essere tutti residenti contemporaneamente — il modello non può prevedere quali esperti servirà un token futuro. Quindi l'ingombro in memoria cresce con il conteggio totale , mentre solo il calcolo cresce con il conteggio attivo . Un modello Mixture-of-Experts è perciò grande da ospitare ma economico da eseguire, l'equilibrio opposto rispetto a un modello denso di pari costo per token.
Il conteggio totale che governa il lato memoria può essere ricavato dall'architettura con il Calcolatore del numero di parametri di un transformer, e la memoria necessaria per servire concretamente quei pesi è trattata nel Calcolatore della VRAM di inferenza per LLM.
Domande frequenti (FAQ)
Perché usare una Mixture of Experts?
Una Mixture of Experts permette a un modello di aumentare il numero di parametri — e quindi la capacità di immagazzinare conoscenza — senza un aumento corrispondente del calcolo speso su ogni token. Il router invia ogni token solo a un piccolo numero di esperti, quindi il lavoro in virgola mobile per token segue i parametri attivi anziché il totale.
Questo rende possibile addestrare e servire un modello con molti più parametri rispetto a un modello denso con lo stesso costo per token.
Qual è la differenza tra parametri totali e attivi?
I parametri totali contano ogni peso del modello: i livelli condivisi più tutti gli esperti. I parametri attivi contano solo i pesi usati su un singolo token: i livelli condivisi più i pochi esperti che il router seleziona. Il conteggio dei parametri totali determina l'ingombro in memoria, perché tutti gli esperti devono essere disponibili per poter essere scelti.
Il conteggio attivo determina il calcolo e la latenza per token, perché solo gli esperti instradati svolgono lavoro.
Se solo pochi esperti vengono eseguiti per token, perché la memoria cresce con il totale?
Qualunque esperto può essere selezionato per qualunque token e, su un batch di token, vengono usati molti esperti diversi, quindi devono essere tutti residenti in memoria contemporaneamente.
Il modello non può sapere in anticipo quali esperti servirà un token futuro. Di conseguenza l'ingombro in memoria cresce con il conteggio dei parametri totali, anche se il calcolo per un singolo token cresce solo con il conteggio attivo. Questo è il compromesso centrale dell'approccio: calcolo economico, ma i pesi completi vanno comunque mantenuti.
Avvertenze legali
Questa è una stima di primo ordine che assume esperti di dimensione uniforme e tratta i pesi condivisi come sempre attivi. Ignora gli squilibri di routing, la piccola rete del router stesso e qualsiasi duplicazione dovuta al parallelismo degli esperti tra dispositivi. Usala per confrontare progetti, non come conteggio esatto.
Da provare dopo
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.
Calcolatore della VRAM di inferenza per LLM
Stima la VRAM della GPU necessaria per servire in inferenza un modello linguistico di grandi dimensioni a partire dal numero di parametri, dalla precisione dei pesi e dall'overhead di runtime per la cache KV, le attivazioni e la frammentazione.