1 Punkte von GN⁺ 2024-01-10 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 2024-01-10
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.

    • Ich habe mit Mixtral ebenfalls sehr gute Ergebnisse erzielt, es ist wirklich beeindruckend. Das Problem ist allerdings, dass es ein relativ großes Modell ist und sich auf Consumer-Hardware nur schwer als vollständige GPU-Inferenz betreiben lässt. Es ist nicht wie die 7B/13B-Modelle, die die Leute üblicherweise nutzen.
      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.
    • Mixtral ist gut, aber der Ravenwolf-Benchmark ist bedeutungslos. Es wirkt, als wolle irgendeine zufällige Person MMLU auf Deutsch neu erfinden, ohne Strenge oder Konsistenz.
      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.
    • Ich bin gespannt auf die Hardware-Ankündigungen. Produkte, die gezielt für On-Device-LLM-Beschleunigung im Consumer-Bereich entwickelt wurden, scheinen definitiv näherzurücken.
    • Ich bin wirklich neugierig, wann wir MoE auf Basis kleinerer Modelle wie Phi-2 sehen werden.
  • 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.

    • Mixtral kann auf Apple MacBook Pro M1/M2/M3 seit 2020 mit 32 GB oder mehr RAM bei ordentlicher Token-Geschwindigkeit laufen. Mit 16 GB RAM geht es bis zu einem gewissen Grad auch, dann vermutlich mit einer ähnlichen Quantisierung wie auf einer 3090, und den Unterschied durch die Quantisierung merkt man.
      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.
    • Laut Google liegt der Preis einer RTX 3090 zwischen 1.480 und 1.680 Dollar.
      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?
    • Wichtig ist auch, dass 4-Bit-quantisierte Modelle selbst auf der CPU ungefähr mit Lesegeschwindigkeit laufen können. Besonders wenn man einige Ergebnisse asynchron vorab berechnen kann, eröffnet das viele Anwendungsfälle.
    • Ich probiere gerade lokale Modelle als Agents aus, und wer sich dafür interessiert, sollte die „grammars“-Funktion von llama.cpp kennen. Damit kann man erzwingen, dass die Modellausgabe einer bestimmten Struktur folgt, was nicht nur nützlich ist, um gültige JSON-Ausgabe zu garantieren, sondern auch für spezifischere Einschränkungen wie „wenn x gewählt wird, muss auch y geliefert werden“.
      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.
    • Der VRAM-Verbrauch liegt eher bei einem 47B-Modell. Auch wenn bei der Inferenz jeweils nur zwei Experten gleichzeitig genutzt werden, braucht man alle Experten, um die Completion zu erzeugen.
  • Wenn man dieses Modell ausprobieren möchte, dann vermutlich eine der von Mozilla/jart als Llamafile veröffentlichten Varianten

    1. llamafile herunterladen (30,03 GB): https://huggingface.co/jartine/Mixtral-8x7B-Instruct-v0.1-ll...
    2. chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile
    3. ./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 mixtral
    Wenn 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:main
    Danach einfach http://localhost:3000 aufrufen. Ollama lässt sich auch mit LangChain verwenden

    • Es gibt auch einige entsperrte Fine-Tunings. Dolphin scheint recht beliebt zu sein und wurde zusätzlich auf Coding-Daten trainiert. Wenn es in 32 GB passen soll, gibt es https://ollama.ai/library/dolphin-mixtral:8x7b-v2.7-q3_K_M
    • Auf einem Mac M1 würde ich Ollama oder andere LLM-Hosts wohl nicht über Docker nutzen. Soweit ich weiß, gibt es dort noch keine Metal-Unterstützung
  • 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

    • Mathematik ist bis zu einem gewissen Grad eine inhärente Schwäche von LLMs. Next-Word Prediction ist nun einmal nicht darauf ausgelegt, gut in Mathematik zu sein
      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?

    • Das wird ziemlich üblich. Die zwei genannten Punkte, also Trainingsdetails und die Mischung der Datensätze, sind im Grunde auch der einzige Wettbewerbsvorteil, den die Unternehmen haben
      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
    • Stimmt, ich sehe das genauso. Tatsächlich würde ich erwarten, dass jeder Experte zunächst separat trainiert und danach gemeinsam trainiert wurde. Schließlich muss auch das Router-Netzwerk trainiert werden
      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.

    • LLaVA ist öffentlich verfügbar. Es ist allerdings vielleicht nicht der erhoffte Sprung: https://llava-vl.github.io/
      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...
    • Nach einem kurzen Test war CogVLM sehr gut: https://github.com/THUDM/CogVLM
      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.
    • Von Leuten bei FAANG habe ich gehört, dass Google in diesem Punkt OpenAI zunächst voraus war und OpenAI gerade etwas aufholt. Natürlich hat OpenAI auf der Sprachseite weiterhin einen klaren Vorsprung. Das ist alles nur aus zweiter Hand.
  • 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?

  • 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.

    • Allerdings gibt es kein Signal, dass auch die leistungsfähigeren Mistral-Modelle als FOSS veröffentlicht werden.