- Mixtral 8x7B ist ein Sparse-Mixture-of-Experts(SMoE)-Modell, das die Grundstruktur von Mistral 7B beibehält, aber den Feedforward-Block jeder Schicht durch 8 Experten ersetzt. Es wurde mit Open Weights und unter der Apache-2.0-Lizenz veröffentlicht
- Pro Token wählt ein Router nur 2 von 8 Experten für die Berechnung aus. Dadurch kann das Modell pro Token auf 47B Parameter zugreifen, während die bei der Inferenz aktiven Parameter auf 13B begrenzt bleiben
- Es wurde mit einer Kontextgröße von 32k Tokens trainiert und zeigte über die evaluierten Benchmarks hinweg eine bessere oder ähnliche Leistung wie Llama 2 70B und GPT-3.5; besonders stark ist es bei Mathematik, Codegenerierung und mehrsprachigen Aufgaben
- Mixtral 8x7B – Instruct ist ein Chat-Modell, das durch überwachtes Fine-Tuning und Direct Preference Optimization (DPO) darauf trainiert wurde, Anweisungen zu befolgen. In menschlichen Bewertungen übertraf es GPT-3.5 Turbo, Claude-2.1, Gemini Pro und Llama 2 70B-chat
- Die Sparse-Expert-Architektur erhöht die Gesamtzahl der Parameter, hält aber den Rechenaufwand pro Token niedrig. Dadurch sind bei kleinen Batch-Größen schnelle Inferenz und bei großen Batch-Größen hoher Durchsatz zu erwarten
Veröffentlichte Modelle und Benchmark-Leistung
- Mixtral 8x7B ist ein Open-Weights-Sparse-Mixture-of-Experts(SMoE)-Modell und kann dank Apache-2.0-Lizenz für akademische und kommerzielle Zwecke genutzt werden
- Das Basismodell und das auf Anweisungsbefolgung ausgelegte Mixtral 8x7B – Instruct wurden gemeinsam veröffentlicht
- Code und Webseite sind verfügbar
- In mehreren Benchmarks erreichte es bessere oder gleichwertige Ergebnisse als Llama 2 70B und GPT-3.5
- Bei Aufgaben, die Mathematik, Codegenerierung oder mehrsprachiges Verständnis erfordern, zeigte es eine stärkere Leistung als Llama 2 70B
- Es wurde bestätigt, dass es innerhalb eines 32k-Token-Kontextfensters Informationen unabhängig von ihrer Position und der Sequenzlänge abrufen kann
Sparse-Mixture-of-Experts-Architektur
- Mixtral ist ein Decoder-only-Transformer und ersetzt die Feedforward-Blöcke eines gewöhnlichen Transformers durch Mixture-of-Experts-Schichten
- Das Router-Netzwerk jeder Schicht wählt für jedes Token 2 Experten aus 8 Experten aus
- Die Ausgaben der ausgewählten Experten werden als gewichtete Summe kombiniert
- Die Expertenauswahl kann sich bei jedem Zeitschritt ändern
- Ein einzelnes Token kann auf 47B Parameter zugreifen, die bei der tatsächlichen Inferenz verwendeten aktiven Parameter betragen jedoch 13B
- Diese Architektur dient dazu, die Gesamtzahl der Modellparameter zu erhöhen und zugleich die Kosten und Latenz der Token-Verarbeitung zu kontrollieren
Berechnungsweise der MoE-Schichten
- Die Ausgabe eines MoE-Moduls wird als gewichtete Summe der Ausgaben der Expertennetzwerke berechnet; die Gewichte bestimmt das Gating-Netzwerk
- Ist der Gating-Vektor spärlich, müssen die Ausgaben von Experten mit Gate-Wert 0 nicht berechnet werden
- Mixtral wendet Softmax auf die Top-K der Logits einer linearen Schicht an
- K ist ein Hyperparameter, der die Anzahl der pro Token zu verwendenden Experten festlegt
- Bei Mixtral ist K = 2 gesetzt
- Wenn die Anzahl der Experten n erhöht und K konstant gehalten wird, kann die Gesamtzahl der Parameter vergrößert werden, während der Rechenaufwand pro Token praktisch konstant bleibt
- Dadurch werden die Gesamtzahl der Sparse-Parameter und die Zahl der für die Verarbeitung einzelner Tokens verwendeten aktiven Parameter entkoppelt
Implementierung und Inferenz-Effizienz
- MoE-Schichten können auch auf einer einzelnen GPU mithilfe spezialisierter Kernel effizient ausgeführt werden
- Megablocks beschreibt die FFN-Operationen von MoE-Schichten als große Sparse-Matrixmultiplikationen, erhöht so die Ausführungsgeschwindigkeit und kann auch Fälle verarbeiten, in denen jedem Experten unterschiedlich viele Tokens zugewiesen werden
- MoE-Schichten lassen sich mit standardmäßiger Modellparallelisierung und Expert Parallelism auf mehrere GPUs verteilen
- Tokens, die ein bestimmter Experte verarbeiten muss, werden an die entsprechende GPU geroutet
- Die Ausgaben der Experten werden an die ursprünglichen Token-Positionen zurückgegeben
- Beim Expert Parallelism ist Load Balancing nötig, da die Arbeitslast gleichmäßig auf die GPUs verteilt werden muss
- Um Mixtral auf einem vollständig Open-Source-Stack ausführen zu können, wurde beim vLLM-Projekt eine Änderung zur Integration der Megablocks-CUDA-Kernel eingereicht; Skypilot unterstützt die Bereitstellung von vLLM-Endpunkten auf Cloud-Instanzen
Instruct-Modell und Bewertungseigenschaften
- Mixtral 8x7B – Instruct ist ein Chat-Modell, das durch überwachtes Fine-Tuning und Direct Preference Optimization (DPO) darauf trainiert wurde, Anweisungen zu befolgen
- In Benchmarks mit menschlicher Bewertung zeigte es eine höhere Leistung als GPT-3.5 Turbo, Claude-2.1, Gemini Pro und Llama 2 70B-chat
- In Benchmarks wie BBQ und BOLD zeigte es weniger Verzerrungen und ein ausgewogeneres Sentiment-Profil
- Dank der Sparse-Architektur sind bei niedrigen Batch-Größen höhere Inferenzgeschwindigkeiten und bei großen Batch-Größen höherer Durchsatz zu erwarten
- Da alle FFN-Subblöcke durch MoE-Schichten ersetzt werden, unterscheidet es sich strukturell von GShard, das nur einige Blöcke ersetzt
1 Kommentare
Hacker-News-Meinungen
Dieses Paper behandelt ausführlich ein Modell, das schon seit etwa einem Monat öffentlich verfügbar war und genutzt wurde. Mixtral 8x7B ist wirklich hervorragend und liegt grob in der 13B-Größenklasse, wird aber in Rankings wie https://www.reddit.com/r/LocalLLaMA/comments/1916896/llm_com... deutlich höher bewertet als ähnlich große Modelle.
Ravenwolf meinte, das Modell schneide in der Praxis sogar etwas besser ab, als manche Benchmarks nahelegen, und meine Erfahrung ist dieselbe. Für ein Modell dieser Größe ist es erstaunlich gut und auf einem Mac gut genug für die tägliche Nutzung zum Chatten, Coden und für andere Zwecke.
Nach der Veröffentlichung der Gewichte zeigte sich, dass es ziemlich wahrscheinlich ist, dass alle acht Experten aus Mistral 7B geseedet wurden und sich erst danach auseinanderentwickelt haben. Deshalb laufen in der lokalen LLM-Community viele Experimente, Modelle zu klonen und daraus günstig Experten zu erzeugen.
Normalerweise ging man davon aus, dass das Training eines 8x7B-Netzwerks ungefähr so viel Aufwand erfordert wie das Training von acht 7B-Netzwerken, aber bei Mistral scheint das nicht der Fall gewesen zu sein, was sehr interessant ist.
Da weiterhin Papers wie DeepMinds Calm und Experimente wie Goliath-120b erscheinen, bei denen Layer spontan kombiniert werden, scheint die Wahrscheinlichkeit hoch, dass wir dieses Jahr ziemlich spannende Architekturverbesserungen bei LLMs sehen werden. Calm scheint auf den nächsten Schritt nach MoE hinzuweisen, und Modelle wie Goliath zeigen, dass schon eine sehr faule Implementierung von Calm — also einfach ganze Gewichtungs-Layer abwechselnd zu verwenden, ohne lineare Layer-Kombination — große Wirkung haben kann.
Insgesamt glaube ich, dass wir 2024, wahrscheinlich schon in der ersten Jahreshälfte, starke Modelle sehen werden, die auch auf Consumer-Hardware gut laufen.
Die wichtigste Consumer-Plattform, auf der es bisher ohne so starke Quantisierung läuft, dass die Ausgabequalität leidet, scheinen aktuelle Apple-Silicon-Macs mit Unified Memory zu sein, meist wohl ab 48 GB. Mit 32 GB oder 36 GB soll es zwar auch möglich sein, aber viel Spielraum bleibt nicht.
Wie coder543 angemerkt hat, kann man es mit einer Multi-GPU-Konfiguration mit ausreichend kombiniertem VRAM auch ohne stärker verlustbehaftete Quantisierung ausführen.
Datensatzkontamination ist ein Problem, aber es wird nicht dadurch gelöst, dass Leute in einem Subreddit nach Tipps fragen und LLMs auf folkloristische Weise bewerten.
Auffällig an diesem Modell ist, dass es nur so wenige aktive Parameter wie ein 13B-Modell nutzt, auf einer 3090 flüssig in hoher Qualität laufen kann, dabei GPT-3.5 bei HumanEval schlägt und außerdem 32k Kontext bietet.
Die 3090 ist Consumer-Klasse und in Gaming-PCs verbreitet. Ich würde mir wünschen, dass Spieleentwickler anfangen, mit lokal ausgeliefertem Mixtral in Spielen zu experimentieren. Zum Beispiel könnte in einem Spiel wie Civilization jeder Anführer von einem LLM gesteuert werden.
Auf meinem M2 Pro fühlen sich Token-Geschwindigkeit und Intelligenz wie GPT-3.5 Turbo an. Es ist das erste Modell, das ich nicht nur zum Herumprobieren nutze, weil die Technik an sich spannend ist, sondern tatsächlich als Ersatz für GPT-3.5.
Ein Apple M2 Pro mit 32 GB RAM liegt in einer ähnlichen Preisklasse wie ein Gaming-PC mit 3090 und ist ein weiteres Beispiel dafür, dass normale Leute mit halbwegs leistungsfähigen Systemen „zufällig“ ein Modell ausführen können, das mit GPT-3.5 vergleichbar ist.
Wenn du ein Apple-Gerät hast, das diese Bedingungen erfüllt, und damit experimentieren möchtest: LLM Studio ist Open Source und erleichtert den Einstieg: https://lmstudio.ai/
Ich hoffe, dass Mixtral und die Folgemodelle viel mehr Hobby-Hacking ermöglichen.
Für das Geld kann man einen kompletten PC kaufen; dass eine so teure GPU „Consumer“ und „verbreitet“ sein soll, fällt mir schwer zu glauben.
Gibt es GPUs, die gut für LLMs oder andere generative KI geeignet sind und nicht absurd teuer sind? Oder gibt es Produkte, die speziell für KI statt für Spielgrafik entwickelt wurden?
Zum Beispiel kann man von einem vorausplanenden Akteur verlangen, beliebige drei der 5 W-Fragen zu beantworten, ihn innerhalb von JSON-String-Werten aber frei schreiben lassen, um das später als Kontext für die Auswahl aus einer begrenzten Menge von Aktionen zu verwenden. Oder man kann dem Modell erlauben, am Ende der Antwort mehr Zeit zum Nachdenken anzufordern; wenn es das nicht tut, muss es die nächste Aktion angeben.
Meiner Ansicht nach hat das keinen Einfluss auf die Generierungsgeschwindigkeit und lässt sich sehr kreativ einsetzen. Wenn die Ausgabe abgeschnitten wird, kann allerdings eine Regenerierung nötig sein, und ich musste eine eigene Funktion schreiben, die stoppt, sobald ein gültiges JSON-Objekt geschlossen ist oder mehr als fünf Zeilenumbrüche hintereinander erzeugt werden. Das kann je nach Modell unterschiedlich sein.
Wenn man dieses Modell ausprobieren möchte, dann vermutlich eine der von Mozilla/jart als Llamafile veröffentlichten Varianten
chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile./mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile[0] https://hacks.mozilla.org/2023/11/introducing-llamafile/
[1] https://github.com/Mozilla-Ocho/llamafile#quickstart
Auf Mac Silicon geht es mit Ollama
https://ollama.ai/
ollama pull mixtralWenn man eine ChatGPT-ähnliche Web-UI möchte: https://github.com/ollama-webui/ollama-webui
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:mainDanach einfach http://localhost:3000 aufrufen. Ollama lässt sich auch mit LangChain verwenden
Aktuelle verwandte Beiträge
Mixtral of experts - https://news.ycombinator.com/item?id=38598559 - Dezember 2023, 300 Kommentare
Mistral-8x7B-Chat - https://news.ycombinator.com/item?id=38594578 - Dezember 2023, 69 Kommentare
Mistral "Mixtral" 8x7B 32k model [magnet] - https://news.ycombinator.com/item?id=38570537 - Dezember 2023, 239 Kommentare
Insbesondere liegt Mixtral in Mathematik, Code-Generierung und mehrsprachigen Benchmarks deutlich vor Llama 2 70B
Ich bin gespannt, wie es in Mathematik abschneidet. Mathematik wirkte immer wie eine klare Schwäche und wie ein Bereich, den bisher niemand wirklich effektiv gelöst hat
Ich glaube nicht, dass dieses Problem allein durch bessere LLMs „gelöst“ wird, sondern nur durch multimodale Modelle, die Programme ausführen können und Zugriff auf Rechner haben
Ich habe nicht viele LLM-Paper gelesen, aber dieses Paper halte ich für ziemlich schwach und detailarm. Gemeint ist das Paper selbst, nicht die Ergebnisse des LLM
Wenn es zur Begutachtung auf meinem Schreibtisch gelandet wäre, hätte ich es vermutlich allein aus diesem Grund zurückgeschickt. Zum Beispiel wird nicht richtig gesagt, wie die Experten trainiert wurden oder welche Datensätze verwendet wurden
Ist das der aktuelle Standard in diesem Bereich?
Code und Architektur lassen sich leicht reproduzieren, daher kann jeder mit genug Geld „einfach“ ein Konkurrenzmodell bauen
OpenAI hat diesen Trend begonnen und ihn mit dem „Technical Report“ zu GPT-4, in dem nicht einmal die Zahl der Modellparameter genannt wurde, zementiert. Bei den Datensätzen waren sie schon lange vorher deutlich vage
Ich bin keineswegs LLM-Experte, aber es wäre besonders interessant zu wissen, wie sich unterschiedliche Training-Setups auf die Leistung auswirken
Ich frage mich, wann öffentlich zugängliche multimodale Modelle auf den Markt kommen werden.
Die Fortschritte bei reinen Textmodellen waren beeindruckend, aber viele der „emergenten“ Verhaltensweisen von GPT-4 könnten nicht nur an MoE oder der Parameterzahl liegen, sondern auch am multimodalen Training.
Ich bin gespannt, ob sich bei kleineren multimodalen Modellen ähnliche Sprünge zeigen werden.
Meta hat ebenfalls ein multimodales Modell über sechs Modalitäten hinweg unter einer nicht-kommerziellen Lizenz veröffentlicht: https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
Die Modellgewichte stehen unter einer nicht-kommerziellen Lizenz, es scheint also kein echtes Open Source zu sein, fällt aber unter den gewünschten „öffentlichen Zugang“.
Es wäre schön, wenn jemand ein mit CogVLM kompatibles Modell von Grund auf unter einer Open-Source-Lizenz trainieren würde.
Ich frage mich, ob man dieses Modell mit dem LLM-Tool von Simon Willison ausführen kann. In Issues oder Diskussionen habe ich keine Erwähnung von Mixtral gefunden.
Gibt es sonst eine einfache Möglichkeit, dieses Modell auf der Kommandozeile auszuprobieren?
LM Studio ist ebenfalls eine Option.
Auf der Kommandozeile: Ollama: https://ollama.ai/library/mixtral
Wenn man eine UI braucht: GPT4All: https://gpt4all.io/index.html, unterstützt Mixtral allerdings noch nicht.
Innerhalb einer App: superagent.sh: https://github.com/homanp/superagent
In einem aktuellen A16Z-Podcast-Interview sagte der Gründer von Mistral, dass sie intern mehrere Modelle mit einer Qualität zwischen ChatGPT und GPT-4 hätten.
Angesichts der bisher hochwertigen Veröffentlichungen dürfte das eine spannende Zeit für Open-Source-LLMs werden.