Artificial Intelligence (AI)

Understanding the Sparse Mixture of Experts (SMoE) Layer in Mixtral | by Matthew Gunton | Mar, 2024

Written by smirow

Beginnen wir in diesem Zusammenhang mit der Idee eines „Experten“. Experten sind Feed-Forward-Neuronale Netze. Anschließend verbinden wir sie über Gates mit unserem Hauptmodell, die das Signal an bestimmte Experten weiterleiten. Sie können sich vorstellen, dass unser neuronales Netzwerk diese Experten als einfache, komplexere Neuronen innerhalb einer Schicht betrachtet.

Abbildung 1 des Artikels

Das Problem bei einer naiven Implementierung von Gates besteht darin, dass Sie die Rechenkomplexität Ihres neuronalen Netzwerks erheblich erhöht haben, was Ihre Trainingskosten enorm erhöhen könnte (insbesondere für LLMs). Wie können Sie dieses Problem umgehen?

Das Problem hierbei besteht darin, dass neuronale Netze benötigt werden, um den Wert eines Neurons zu berechnen, solange ein Signal bei ihm ankommt, sodass bereits die kleinste Informationsmenge, die an einen Experten gesendet wird, die Berechnung des gesamten Expertennetzwerks auslöst. Die Autoren des Artikels umgehen dieses Problem, indem sie eine Funktion G(x) erstellen, die erzwingt, dass die meisten Signale mit niedrigem Wert als Null berechnet werden.

Gleichung 1 aus dem Artikel

In der obigen Gleichung ist G(X) unsere Triggerfunktion und E(x) eine Funktion, die unseren Experten darstellt. Da jede mit Null multiplizierte Zahl Null ist, erspart uns diese Logik den Betrieb unseres Expertennetzwerks, wenn unsere Gate-Funktion uns eine Null liefert. Wie bestimmt die Kontrollfunktion also, welche Experten berechnet werden sollen?

Die Gate-Funktion selbst ist eine ziemlich geniale Möglichkeit, sich nur auf die gewünschten Experten zu konzentrieren. Schauen wir uns die Gleichungen unten an, dann erkläre ich, wie sie alle funktionieren.

Gleichungen 3, 4 und 5 des Artikels

Von unten nach oben betrachtet ist Gleichung 5 einfach eine Stufenfunktion. Wenn die Eingabe nicht innerhalb eines bestimmten Bereichs liegt (hier die ersten k Elemente der Liste v), wird „unendlich“ zurückgegeben, wodurch beim Einbinden in Softmax eine perfekte 0 sichergestellt wird. Wenn der Wert nicht -unendlich ist, wird ein Signal gesendet. Mit diesem Parameter k können wir die Anzahl der Experten bestimmen, die wir hören möchten (k=1 würde nur an 1 Experten richten, k=2 würde nur an 2 Experten richten usw.)

Mit Gleichung 4 bestimmen wir den Inhalt der Liste, aus der wir die ersten k Werte auswählen. Wir beginnen damit, den Gate-Eingang (das Signal x) mit einem Gewicht W zu multiplizieren.G. Dieses WG Dies ist es, was in jeder weiteren Runde für das neuronale Netzwerk trainiert wird. Beachten Sie, dass die jedem Experten zugeordnete Gewichtung wahrscheinlich einen unterschiedlichen Wert hat. Um nun zu vermeiden, dass jedes Mal derselbe Experte ausgewählt wird, fügen wir über die zweite Hälfte unserer Gleichung statistisches Rauschen hinzu. Die Autoren schlagen vor, dieses Rauschen gemäß einer Normalverteilung zu verteilen, die Schlüsselidee besteht jedoch darin, ein wenig Zufälligkeit hinzuzufügen, um die Auswahl von Experten zu erleichtern.

Gleichung 3 kombiniert einfach die beiden Gleichungen und fügt sie in eine SoftMax-Funktion ein, sodass wir sicher sein können, dass -infinity uns 0 ergibt und jeder andere Wert ein Signal an den Experten sendet.

Bild vom Autor. Das Obige ist ein Diagramm eines Sigmoids. Obwohl ein Sigmoid und ein Softmax unterschiedliche Funktionen sind (ein wesentlicher Unterschied besteht darin, dass Softmax im Allgemeinen auf mehrere Variablen einwirkt, während Sigmoids nur eine einzige abhängige Variable haben), ist die Form der beiden Funktionen ähnlich, weshalb ich dies als Referenz zeige .

Der „sparse“ Teil des Titels stammt von spärlichen Matrizen oder Matrizen, bei denen die meisten Werte Null sind, denn das ist es, was wir effektiv mit unserer Triggerfunktion erzeugen.

Obwohl unsere Geräuschinjektion bei der Reduzierung der Expertenkonzentration nützlich war, stellten die Autoren fest, dass sie nicht ausreichte, um das Problem vollständig zu lösen. Um einen Anreiz für das Modell zu schaffen, Experten nahezu gleichmäßig einzusetzen, haben sie die Verlustfunktion angepasst.

Gleichungen 6 und 7 des Artikels

Gleichung 6 zeigt, wie sie die Wichtigkeit im Hinblick auf die Gate-Funktion definieren. Dies ist sinnvoll, da die Gate-Funktion letztendlich darüber entscheidet, welcher Experte verwendet werden soll. Hier kommt es auf die Summe aller Torfunktionen des Experten an. Sie definieren ihre Verlustfunktion als den Variationskoeffizienten der Wichtigkeitsmenge. Vereinfacht ausgedrückt bedeutet dies, dass wir einen Wert finden, der genau darstellt, wie stark jeder Experte eingesetzt wird, wobei einige wenige ausgewählte Experten einen großen Wert schaffen und alle eingesetzten Experten einen kleinen Wert schaffen. Das w Bedeutung ist ein Hyperparameter, der dem Modell helfen kann, mehr Experten einzusetzen.

Bild bereitgestellt von der Google-Suche. Dies zeigt die Formel zur Berechnung des Varianzkoeffizienten

Eine weitere im Dokument diskutierte Schulungsherausforderung besteht darin, jedem Experten ausreichende Daten zur Verfügung zu stellen. Dank unserer Kontrollfunktion beträgt die Datenmenge, die jeder Experte sieht, nur einen Bruchteil dessen, was ein relativ dichtes neuronales Netzwerk sehen würde. Mit anderen Worten: Da jeder Experte nur einen Teil der Trainingsdaten sieht, ist es praktisch so, als hätten wir unsere Trainingsdaten genommen und den größten Teil davon vor diesen Experten verborgen. Dies macht uns anfälliger für Über- oder Unterlernen.

Dies ist kein leicht zu lösendes Problem, daher schlagen die Autoren Folgendes vor: Nutzen Sie die Datenparallelität, verlassen Sie sich auf die Faltung und wenden Sie wiederkehrendes Expertenmischen an (anstelle der Faltung). Da es sich hierbei um dichte Themen handelt, werde ich bei Interesse in späteren Beiträgen darauf zurückkommen, damit dieser Blog-Beitrag nicht zu lang wird.

Abbildung 2 aus dem Dokument

Der Artikel „Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer“ wurde 2017 veröffentlicht, im selben Jahr wie der wegweisende Artikel Attention is All You Need. So wie es einige Jahre dauerte, bis die in Self-Attention beschriebene Architektur den Mainstream erreichte, dauerte es einige Jahre, bis wir ein Modell hatten, das diese Sparse-Architektur erfolgreich implementieren konnte.

Als Mistral 2024 sein Mistral-Modell auf den Markt brachte, zeigten sie der Welt, wie leistungsstark dieses Setup sein kann. Beim ersten Produktions-LLM mit dieser Architektur können wir sehen, wie es seine Experten für tiefergehende Studien nutzt. Das Faszinierendste dabei ist, dass wir nicht wirklich verstehen, warum Spezialisierung auf der symbolischen Ebene so effektiv ist. Wenn Sie sich die Tabelle unten für Mixtral ansehen, wird klar, dass mit Ausnahme der Mathematik kein Experte der Goldstandard in irgendeinem Fach auf hohem Niveau ist.

Abbildung 7 aus dem Mixtral of Experts-Dokument

Daher befinden wir uns in einer faszinierenden Situation, in der diese neue Architekturebene eine klare Verbesserung darstellt, aber niemand kann genau erklären, warum das so ist.

Auch immer mehr große Player sind dieser Architektur gefolgt. Nach der offenen Veröffentlichung von Grok-1 wissen wir nun, dass Grok ein Sparse Mixture of Experts-Modell mit 314 Milliarden Parametern ist. Offensichtlich ist dies eine Architektur, in die die Menschen bereit sind, viel Geld zu investieren, und daher wird sie wahrscheinlich Teil der nächsten Welle von Fundamententwürfen sein. Die Hauptakteure der Branche arbeiten schnell daran, diese Architektur an neue Grenzen zu bringen.

Der Artikel „Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer“ kommt zu dem Schluss, dass Experten, die über ein rekurrentes neuronales Netzwerk erstellt werden, der natürliche nächste Schritt sind, da rekurrente neuronale Netzwerke tendenziell noch leistungsfähiger sind als solche mit direktem Aktion. Wenn das der Fall ist, sind die nächste Grenze bei Basismodellen möglicherweise nicht Netzwerke mit mehr Parametern, sondern Modelle mit komplexeren Experten.

Zusammenfassend glaube ich, dass dieser Artikel zwei entscheidende Fragen hervorhebt, auf die sich zukünftige gemischte Expertenstudien konzentrieren werden. Erstens: Welche Skaleneffekte sehen wir, nachdem wir unserem neuronalen Netzwerk komplexere Knoten hinzugefügt haben? Zweitens: Bietet die Komplexität eines Experten eine gute Kostenrendite? Mit anderen Worten: Welche Skalierungsbeziehung beobachten wir innerhalb des Expertennetzwerks? Wo liegen die Grenzen der Komplexität eines solchen Projekts?

Wenn diese Architektur an ihre Grenzen stößt, wird sie mit Sicherheit viele fantastische Forschungsbereiche hervorbringen, da wir die Komplexität erhöhen, um bessere Ergebnisse zu erzielen.

[1] N. Shazeer, et al., EXTREM GROSSE NEURONALE NETZWERKE:
THE PARELY-GATED EXPERT MIX LAYER (2017), arXiv

[2] A. Jiang, et al., Expert Mixtral (2024), arXiv

[3] A. Vaswani et al., Attention is All You Need (2017), arXiv

[4] X AI, et al., Open Release of Grok-1 (2024), x ai-Website

About the author

smirow

Leave a Comment