Mixture-of-Experts (MoE) (IT)
Mixture-of-Experts (MoE) (dall'inglese — «Miscela di esperti») — è un'architettura di reti neurali basata sul principio del calcolo condizionale e sul paradigma «Dividi et impera». Invece di utilizzare un unico modello monolitico («denso»), in cui tutti i parametri vengono coinvolti nell'elaborazione di ogni segnale in ingresso, l'architettura MoE scompone il compito delegandolo a un sottoinsieme di sottoreti specializzate, chiamate «esperti». Un componente apposito, la rete di instradamento (gating network o router), determina dinamicamente quali esperti elaboreranno ogni specifico token in ingresso[1][2].
Questo approccio consente di creare modelli con un numero enorme di parametri (centinaia di miliardi o addirittura trilioni), mantenendo al contempo i costi computazionali (FLOPs) nella fase di inferenza a livelli paragonabili a quelli di modelli densi significativamente più piccoli[3]. Grazie a ciò, MoE è diventata una tecnologia chiave per la scalabilità dei moderni Large Language Model (LLM) ed è utilizzata in sistemi all'avanguardia come Mixtral 8x7B, Grok-1 e, secondo opinione ampiamente diffusa, GPT-4[1].
Principio fondamentale: calcolo condizionale e sparsità
Il meccanismo fondamentale di MoE è il calcolo condizionale (conditional computation). A differenza dei modelli densi, dove tutti i parametri sono attivi durante l'elaborazione di qualsiasi token, i modelli MoE attivano solo una piccola frazione dei propri parametri in base ai dati in ingresso. Questo processo dà luogo alla sparsità delle attivazioni (sparsity in activation), che rappresenta la principale differenza rispetto alle architetture tradizionali[4].
Tale approccio consente di:
- Scalare la capacità del modello: Il numero totale di parametri (e, di conseguenza, le «conoscenze» del modello) può essere aumentato in modo significativo senza una crescita proporzionale del carico computazionale.
- Aumentare l'efficienza: Il modello esegue meno calcoli per ogni token, il che porta a un'inferenza più rapida e a una riduzione dei costi di addestramento a parità di budget computazionale[5].
In questo modo, MoE sposta il collo di bottiglia dalla potenza di calcolo verso i requisiti di memoria (VRAM), poiché tutti i parametri di tutti gli esperti devono essere caricati in memoria, anche se in ogni momento ne viene utilizzata solo una piccola parte[6].
Componenti dell'architettura MoE
1. Sottoreti esperte (Experts)
Gli esperti sono, in genere, reti neurali indipendenti. Nel contesto dell'architettura transformer, i livelli MoE sostituiscono di norma i blocchi completamente connessi densi (Feed-Forward Networks, FFN), e ciascun esperto è a sua volta una FFN[1]. Durante l'addestramento, ogni esperto può sviluppare una «competenza» in determinati ambiti — ad esempio, uno può specializzarsi nella sintassi, un altro in nozioni relative a uno specifico dominio di conoscenza, e un terzo in una determinata lingua o stile[7].
2. Rete di controllo (Gating Network / Router)
La rete di instradamento è un componente piccolo ma di importanza critica, che esegue la distribuzione intelligente dei compiti. Per ogni token in ingresso, il router calcola dei punteggi (pesi), determinando quali esperti siano più rilevanti per la sua elaborazione. La decisione di instradamento è dinamica e dipendente dal contesto[8].
La strategia più comune è l'instradamento Top-K, in cui vengono selezionati K esperti con i punteggi più alti per elaborare il token. Il valore di K è generalmente piccolo (ad esempio, 1 o 2), ed è proprio questo a garantire la sparsità.
3. Aggregazione degli output
Dopo che i K esperti selezionati hanno elaborato il token, i loro output individuali vengono combinati per formare il risultato finale del livello MoE. In genere ciò avviene tramite una somma pesata, in cui i pesi sono i punteggi normalizzati generati dal router[1].
Evoluzione di MoE
Il concetto di MoE fu proposto per la prima volta nel 1991 nel lavoro di Robert Jacobs, Geoffrey Hinton e Michael Jordan, intitolato «Adaptive Mixtures of Local Experts»[3]. Tuttavia, a causa delle limitazioni computazionali e della complessità dell'addestramento, l'idea non ottenne ampia diffusione fino all'era del deep learning.
La svolta avvenne con l'avvento dell'architettura Transformer. Le ricerche del periodo 2010-2015 sul calcolo condizionale (Yoshua Bengio e altri) posero le basi teoriche, mentre il lavoro di Shazeer et al. (2017) dimostrò la possibilità di scalare MoE fino a un modello LSTM da 137 miliardi di parametri[8].
Il rinascimento moderno di MoE è legato al modello Switch Transformer di Google (2021), che ha scalato fino a 1,6 trilioni di parametri utilizzando un instradamento Top-1 semplice ma efficace[9]. Il successo del modello open source Mixtral 8x7B di Mistral AI nel 2023 ha definitivamente affermato MoE come una delle architetture di punta per la creazione di LLM ad alte prestazioni[1].
Problematiche e metodi di ottimizzazione
Bilanciamento del carico
Uno dei problemi chiave di MoE è lo squilibrio del carico, in cui il router seleziona continuamente gli stessi esperti «popolari», mentre altri rimangono sottoutilizzati. Ciò porta a un addestramento inefficiente e al «collasso degli esperti».
- Funzioni di perdita ausiliarie (Auxiliary Loss): Metodo tradizionale che aggiunge alla funzione di perdita principale una «penalità» per la distribuzione non uniforme dei token. Sebbene aiuti nel bilanciamento, questo approccio può introdurre «gradienti di disturbo», peggiorando le prestazioni complessive[10].
- Bilanciamento senza perdita (Loss-Free Balancing): Un approccio più recente che applica dinamicamente uno spostamento (bias) ai punteggi del router, spingendolo verso decisioni più bilanciate senza interferire con il compito di addestramento principale[11].
- Instradamento per scelta dell'esperto (Expert Choice Routing): Un approccio alternativo in cui non sono i token a scegliere gli esperti, ma ciascun esperto seleziona i propri `top-k` token dal batch. Ciò garantisce un bilanciamento perfetto, ma può essere più complesso da implementare[1].
Fine-tuning e quantizzazione
- Fine-tuning: Storicamente i modelli MoE erano inclini all'overfitting a causa dell'elevato numero di parametri. Per attenuare questo problema si ricorre a tecniche come il «dropout degli esperti»[12].
- Quantizzazione (Quantization): Riduzione della precisione numerica dei pesi per diminuire le dimensioni del modello e accelerare l'inferenza. Per MoE si tratta di un compito complesso a causa dello squilibrio tra esperti. Metodi come MoEQuant propongono soluzioni basate su una calibrazione bilanciata per ciascun esperto[13].
Ottimizzazione sistemica
Un deployment efficiente di MoE richiede un approccio sistemico olistico, che comprende:
- Strategie di parallelismo: Parallelismo degli esperti (distribuzione degli esperti su diverse GPU), parallelismo del modello e parallelismo dei dati[14].
- Kernel specializzati: Ad esempio, Megablocks per Mixtral, che ottimizzano le moltiplicazioni matriciali per le operazioni sparse[15].
- Co-progettazione hardware (Hardware Co-design): Sviluppo di soluzioni hardware specificamente ottimizzate per i carichi di lavoro MoE.
Modelli MoE di riferimento
| Modello | Sviluppatore | Parametri totali | Parametri attivi |
Numero di esperti |
Esperti selezionati (k) |
|---|---|---|---|---|---|
| Switch Transformer C-2048 | 1,6 trilioni | Dipende dalla dimensione dell'esperto | 2048 | 1 | |
| Mixtral 8x7B | Mistral AI | ~47 mld | ~13 mld | 8 | 2 |
| Grok-1 | xAI | 314 mld | 86 mld | 8 | 2 |
| GPT-4 (presunto) | OpenAI | >1 trilione | - | 16 (presunto) | 2 (presunto) |
| Qwen 2 MoE | Alibaba | 57-90 mld | 14 mld | 64 | 4 o 8 |
| DeepSeekMoE 16B | DeepSeek-AI | 16,4 mld | ~2,8 mld | 64 (2 attivi) | 2 (su 6)[16] |
Applicazioni in diversi ambiti
Sebbene MoE sia maggiormente nota nel contesto degli LLM, la sua applicazione non si limita all'elaborazione del linguaggio naturale:
- Previsione di serie temporali: Il modello Time-MoE presenta un'architettura scalabile per il pre-addestramento di modelli di previsione[17].
- Rilevamento di vulnerabilità: MoEVD utilizza MoE per scomporre il compito di rilevamento delle vulnerabilità in una classificazione per tipologie CWE, dove ciascun esperto è specializzato nella propria tipologia[18].
- Integrazione con tecnologie blockchain: MoE trova applicazione nell'ottimizzazione degli smart contract e nel rilevamento delle frodi, dove gli esperti analizzano diversi pattern di transazione[19].
- Modelli multimodali: MoE viene utilizzata per combinare esperti specializzati in diverse modalità (testo, immagine, audio), creando sistemi più versatili[20].
Note
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 «Applying Mixture of Experts in LLM Architectures». NVIDIA Technical Blog. [1]
- ↑ «Mixture of Experts (MoE): A Big Data Perspective». arXiv. [2]
- ↑ 3.0 3.1 «Mixture-of-Experts (MoE): что это такое и как работает». LLM Studio. [3]
- ↑ «Serving Mixtral MoE Model». Friendli.ai Blog. [4]
- ↑ «What is Mixture of Experts (MoE)? How it Works and Use Cases». Zilliz Learn. [5]
- ↑ «Mixture of Experts (MoE) vs Dense LLMs». Maximilian Schwarzmüller's Blog. [6]
- ↑ «Understanding Mixture of Experts in Deep Learning». VE3. [7]
- ↑ 8.0 8.1 «Mixture of Experts Explained». Hugging Face Blog. [8]
- ↑ «Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity». arXiv. [9]
- ↑ «Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts». OpenReview. [10]
- ↑ «DeepSeek-V3 Explained: 3. Auxiliary-Loss-Free Load-Balancing». gopubby.com. [11]
- ↑ «Switch Transformers: Scaling to Trillion Parameter Models with...». cse.ust.hk. [12]
- ↑ «MoEQuant: Enhancing Quantization for Mixture-of-Experts...». arXiv. [13]
- ↑ «A Survey of Mixture of Experts Models: Architectures and Applications in Business and Finance». Preprints.org. [14]
- ↑ «Mixtral of Experts». arXiv. [15]
- ↑ «A Survey on Inference Optimization Techniques for Mixture of Experts Models». arXiv. [16]
- ↑ «Time-MoE: A Scalable and Unified Framework for Pre-training Time Series Foundation Models». arXiv. [17]
- ↑ «MoEVD: A Mixture of Experts-based Framework for Vulnerability Detection». Semantic Scholar. [18]
- ↑ «What a Decentralized Mixture-of-Experts (MoE) Is and How It Works». Gate.io Learn. [19]
- ↑ «LLaMA-MoE: Building Mixture-of-Experts from Open-source LLMs». arXiv. [20]