Cominciamo con l'idea di “esperto” in questo contesto. Gli esperti sono reti neurali feed-forward. Li colleghiamo quindi al nostro modello principale tramite porte che instraderanno il segnale a esperti specifici. Puoi immaginare che la nostra rete neurale consideri questi esperti semplicemente come neuroni più complessi all'interno di uno strato.
Il problema con un'implementazione ingenua delle porte è che hai aumentato significativamente la complessità computazionale della tua rete neurale, rendendo potenzialmente enormi i costi di formazione (specialmente per i LLM). Allora come aggirare questo problema?
Il problema qui è che le reti neurali saranno necessarie per calcolare il valore di un neurone finché riceve un segnale, quindi anche la più debole quantità di informazioni inviata a un esperto attiva il calcolo dell'intera rete di esperti. Gli autori dell'articolo aggirano questo problema creando una funzione, G(x), che forza la maggior parte dei segnali di basso valore a calcolare fino a zero.
Nell'equazione precedente, G(X) è la nostra funzione di porta ed E(x) è una funzione che rappresenta il nostro esperto. Poiché qualsiasi numero moltiplicato per zero è zero, questa logica ci impedisce di dover gestire la nostra rete di esperti quando ci viene assegnato uno zero dalla nostra funzione di controllo. Quindi, come fa la funzione di gating a determinare quali esperti calcolare?
La stessa funzione di gating è un modo piuttosto ingegnoso per concentrarti solo sugli esperti che desideri. Diamo un'occhiata alle equazioni seguenti e poi approfondirò come funzionano tutte.
Andando dal basso verso l'alto, l'equazione 5 è semplicemente una funzione a gradini. Se l'input non rientra in un determinato intervallo (qui i primi k elementi dell'elenco v), restituirà – infinito, garantendo così uno 0 perfetto quando collegato a Softmax. Se il valore non è -infinito, viene trasmesso un segnale. Questo parametro k ci consente di decidere quanti esperti vorremmo sentire (k=1 indirizzerà solo a 1 esperto, k=2 indirizzerà solo a 2 esperti, ecc.)
L'equazione 4 è il modo in cui determiniamo cosa c'è nell'elenco da cui selezioniamo i primi k valori. Iniziamo moltiplicando l'input al gate (il segnale x) per un certo peso WG. Questa WG è ciò che verrà addestrato in ogni round successivo per la rete neurale. Tieni presente che il peso associato a ciascun esperto ha probabilmente un valore distinto. Ora, per evitare che venga scelto ogni volta lo stesso esperto, aggiungiamo un po’ di rumore statistico tramite la seconda metà della nostra equazione. Gli autori propongono di distribuire questo rumore lungo una distribuzione normale, ma l'idea chiave è aggiungere un po' di casualità per aiutare la selezione degli esperti.
L'equazione 3 combina semplicemente le due equazioni e le inserisce in una funzione SoftMax in modo che possiamo essere sicuri che -infinito ci dà 0 e qualsiasi altro valore invierà un segnale all'esperto.
La parte “sparsa” del titolo deriva da matrici sparse, o matrici in cui la maggior parte dei valori sono zero, poiché questo è ciò che effettivamente creiamo con la nostra funzione di gating.
Sebbene la nostra iniezione di rumore sia utile per ridurre la concentrazione degli esperti, gli autori hanno scoperto che non era sufficiente per superare completamente il problema. Per incentivare il modello a utilizzare gli esperti in modo quasi equo, hanno aggiustato la funzione di perdita.
L'equazione 6 mostra come definiscono l'importanza in termini di funzione di cancello: questo ha senso poiché la funzione di cancello è in definitiva il decisore di quale esperto viene utilizzato. L'importanza qui è la somma di tutte le funzioni del cancello dell'esperto. Definiscono la loro funzione di perdita come il coefficiente di variazione dell'insieme di Importanza. In parole povere, ciò significa che stiamo trovando un valore che rappresenta quanto viene utilizzato ciascun esperto, dove l’utilizzo di pochi esperti selezionati crea un grande valore e l’utilizzo di tutti loro crea un piccolo valore. Il w importanza è un iperparametro che può aiutare il modello a utilizzare più esperti.
Un'altra sfida formativa richiamata dal documento riguarda la fornitura di dati sufficienti a ciascuno degli esperti. Come risultato della nostra funzione di controllo, la quantità di dati che ogni esperto vede è solo una frazione di ciò che vedrebbe una rete neurale relativamente densa. In altre parole, poiché ogni esperto vedrà solo una parte dei dati di addestramento, è effettivamente come se avessimo preso i nostri dati di addestramento e ne avessimo nascosto la maggior parte a questi esperti. Questo ci rende più suscettibili all’overfitting o all’underfitting.
Questo non è un problema facile da risolvere, quindi gli autori suggeriscono quanto segue: sfruttare il parallelismo dei dati, appoggiarsi alla convoluzionalità e applicare Mixture of Experts in modo ricorrente (piuttosto che in modo convoluzionale). Questi sono argomenti densi, quindi per evitare che questo post sul blog diventi troppo lungo, li approfondirò nei post successivi se c'è interesse.
Il documento “Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer” è stato pubblicato nel 2017, lo stesso anno in cui L'attenzione è tutto ciò di cui hai bisogno è uscita la carta. Proprio come ci sono voluti alcuni anni prima che l’architettura descritta in Self-Attenzione raggiungesse il flusso principale, ci sono voluti alcuni anni prima che avessimo un modello in grado di implementare con successo questa architettura sparsa.
Quando Mistral ha lanciato il suo modello Mixtral nel 2024, ha mostrato al mondo quanto potente possa essere questa configurazione. Con il primo LLM di livello produttivo con questa architettura, possiamo vedere come utilizza i suoi esperti per ulteriori studi. Uno degli aspetti più affascinanti qui è che non capiamo davvero perché la specializzazione a livello di token sia così efficace. Se guardi il grafico qui sotto per Mixtral, è chiaro che, ad eccezione della matematica, nessun esperto è il punto di riferimento per una materia di alto livello.
Di conseguenza, ci ritroviamo con una situazione intrigante in cui questo nuovo livello architettonico rappresenta un netto miglioramento ma nessuno può spiegare esattamente perché sia così.
Anche altri attori importanti hanno seguito questa architettura. Dopo il rilascio aperto di Grok-1, ora sappiamo che Grok è un modello di Sparse Mixture of Experts, con 314 miliardi di parametri. Chiaramente, questa è un’architettura in cui le persone sono disposte a investire quantità di capitale e quindi probabilmente farà parte della prossima ondata di modelli di fondazione. I principali attori del settore si stanno muovendo rapidamente per spingere questa architettura verso nuovi limiti.
Il documento “Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer” termina suggerendo che gli esperti creati tramite una rete neurale ricorrente sono il naturale passo successivo, poiché le reti neurali ricorrenti tendono ad essere ancora più potenti di quelle feed-forward. Se così fosse, allora la prossima frontiera dei modelli di fondazione potrebbe non essere quella delle reti con più parametri, ma piuttosto dei modelli con esperti più complessi.
In conclusione, penso che questo articolo evidenzi due questioni cruciali su cui concentrarsi in futuro gli studi di esperti. Innanzitutto, quali effetti di scala vediamo ora che abbiamo aggiunto nodi più complessi alla nostra rete neurale? In secondo luogo, la complessità di un esperto ha un buon ritorno sui costi? In altre parole, quale rapporto di scala vediamo all’interno della rete di esperti? Quali sono i limiti su quanto dovrebbe essere complesso?
Poiché questa architettura viene spinta ai suoi limiti, porterà sicuramente molte fantastiche aree di ricerca man mano che aggiungeremo complessità per ottenere risultati migliori.
(1) N. Shazeer, et al., RETI NEURALI VERGOGNOSAMENTE GRANDI:
LO STRATO DI MISCELA DI ESPERTI SPARSI (2017)arXiv
(2) A. Jiang, et al., Mixtral di esperti (2024), arXiv
(3) A. Vaswani, et al., L'attenzione è tutto ciò di cui hai bisogno (2017), arXiv
(4) X AI, et al., Rilascio aperto di Grok-1 (2024)hai un sito web
Fonte: towardsdatascience.com