Warum fünf Bit nicht gleich fünf Bit sind: MiniMax M2.7 im Quantisierungs-Praxistest
Im ersten Teil unserer Serie haben wir beschrieben, wie wir acht RTX 3090 beziehungsweise 3090 Ti zu einem lokalen LLM-Rig mit 192 GB VRAM zusammengebaut haben. Damit war die Hardwarefrage vorläufig beantwortet. Die nächste Frage erwies sich als schwieriger: Welcher Quant eines sehr großen MoE-Modells passt nicht nur in den Speicher, sondern behält auch dessen Fähigkeiten?
Bei MiniMax M2.7 führte uns diese Frage durch drei sehr unterschiedliche Ergebnisse. Ein 4-Bit-Quant war schnell und in unserem Praxistest unbrauchbar. Ein 5-Bit-Quant war größer und kaum besser. Ein anderer 5-Bit-Quant schrieb plötzlich wieder saubere technische Spezifikationen. Die nominelle Bitbreite erklärte den Unterschied nicht.
MiniMax M2.7 ist ein 230B-A10B-Mixture-of-Experts-Modell mit 256 Experten und ungefähr zehn Milliarden aktiven Parametern pro Token. Es ist für Reasoning- und Agentenaufgaben interessant, reagiert aber empfindlich auf Quantisierung. Unser Ampere-Rig verschärft die Auswahl: Die acht Karten bieten viel Speicher und Speicherbandbreite, aber keine Hardwarebeschleunigung für FP8 oder FP4. Ein Quant muss deshalb zugleich in 192 GB VRAM passen, auf RTX 3090 vernünftig laufen und genügend Qualität für lange, strukturierte Arbeit behalten.
Unser Akzeptanztest war absichtlich praktisch
Wir wollten nicht zuerst wissen, ob ein Quant bei einem kurzen Multiple-Choice-Benchmark ein paar Punkte verliert. Unser Test lautete sinngemäß: Erstelle aus einem knappen Briefing eine vollständige, konsistente technische Spezifikation.
Diese Aufgabe bündelt mehrere Fähigkeiten, die wir täglich benötigen. Das Modell muss Anforderungen über viele Absätze hinweg behalten, Widersprüche vermeiden, eine klare Gliederung aufbauen und Formatvorgaben einhalten. Ein beschädigtes MoE kann auf kurze Fragen noch überzeugend antworten und bei einer solchen Aufgabe dennoch auseinanderfallen.
Das Fehlerbild war dabei oft aussagekräftiger als eine einzelne Bewertung. Fehlende Anforderungen, unvermittelte Themenwechsel und nachlassende Kohärenz konnten noch wie gewöhnliche Qualitätseinbußen wirken. Wörtliche Tippfehler in der Ausgabe eines 230-Milliarden-Parameter-Modells waren dagegen ein ernstes Warnsignal: Hier fehlte nicht bloß etwas stilistische Eleganz. Der Quant hatte offenbar relevante Modellfähigkeiten beschädigt.
Versuch 1: vier Bit, etwa 90 Token pro Sekunde – und nicht brauchbar
Unser erster Kandidat war das als cyankiwi/MiniMax-M2.7-AWQ-4bit veröffentlichte W4A16-Paket. Auf vLLM mit Tensor Parallelism über acht GPUs erreichte es ungefähr 90 tok/s. Auf dem Papier sah das ausgezeichnet aus.
Im Spec-Test vergaß das Modell Anforderungen, verlor über längere Passagen den Faden und produzierte sogar Tippfehler. Wir konnten die hohe Geschwindigkeit messen, aber mit dem Ergebnis nichts anfangen. Für Agentenarbeit ist ein Modell, das doppelt so schnell in die falsche Richtung läuft, kein Fortschritt.
Bei der Bezeichnung ist Präzision nötig. Das Repository trägt AWQ-4bit im Namen; in einer öffentlichen Diskussion wurde allerdings bezweifelt, dass das Paket sämtliche für klassisches, kalibriertes AWQ erwarteten Skalierungsdaten enthält. Für unsere Geschichte ist entscheidend, was wir tatsächlich ausgeführt haben: ein unter diesem Namen veröffentlichtes W4A16-Modell, bei dem die Attention zusammen mit dem großen Rest auf vier Bit reduziert war.
Gerade bei MiniMax treffen damit mehrere ungünstige Entscheidungen zusammen. Die Attention verliert Präzision, empfindliche Down-Projections werden wie gewöhnliche Expertentensoren behandelt und eine routergesteuerte Kalibrierung erreicht womöglich nur einen Teil der 256 Experten. Das Ergebnis war schnell, aber nicht zuverlässig genug für unsere Arbeit.
Versuch 2: fünf Bit – größer, aber immer noch nicht klug
Die naheliegende Reaktion lautete: Dann nehmen wir eben mehr Bits. Wir luden bartowskis Q5_K_M-Variante von MiniMax M2.7 und starteten sie mit ik_llama. Der Quant liegt bei ungefähr 5,5 Bit pro Gewicht und benötigt entsprechend mehr Speicher als der 4-Bit-Pfad.
Der praktische Gewinn blieb aus. Die Ausgabe war weniger offensichtlich beschädigt als beim W4A16-Modell, doch der Spec-Test scheiterte weiterhin: Anforderungen verschwanden, Abschnitte wurden nachlässig und die Struktur blieb unzuverlässig.
Das ist kein allgemeines Urteil über jede Datei mit dem Namen Q5_K_M. Es beschreibt genau den von uns getesteten bartowski-Build in dieser Aufgabe. Der Versuch reichte dennoch aus, um eine bequeme Annahme zu widerlegen: Mehr durchschnittliche Bits führen nicht automatisch zu einem intelligenteren Quant. Eine gleichmäßig verteilte zusätzliche Präzision hilft wenig, wenn sie an den empfindlichen Tensoren fehlt.
Versuch 3: ebenfalls fünf Bit – plötzlich funktioniert das Modell
Der Durchbruch kam mit ubergarm/MiniMax-M2.7-GGUF in IQ5_K. Dieser Quant liegt mit ungefähr 5,9 bpw nominell in derselben Fünf-Bit-Klasse, behandelt die Gewichte aber gezielt. Die Attention bleibt hochpräzise, problematische Bereiche erhalten mehr Schutz und die großen Expertentensoren tragen den größten Teil der Einsparung.
Im selben Spec-Test schrieb das Modell wieder kohärent. Die Anforderungen blieben erhalten, die Gliederung hielt über Tausende Tokens und die Tippfehler verschwanden. In einem Lauf war das Ergebnis sogar besser als unsere unquantisierte Referenzausgabe. Das macht den Quant nicht grundsätzlich „besser als BF16″; es zeigt, wie wenig ein einzelner Lauf über eine allgemeine Rangfolge aussagt. Für unseren Einsatzzweck war der entscheidende Befund einfacher: IQ5_K stellte die erwartete Modellqualität praktisch wieder her.
Nachdem wir später den exakten historischen Start rekonstruiert hatten, erreichte dieser Pfad bei kurzen Prompts ungefähr 49,5 tok/s. Bei rund 80.000 Tokens aktivem Kontext lagen wir noch bei etwa 13,1 tok/s Decode. Das ist deutlich langsamer als der einfache 4-Bit-vLLM-Pfad, aber die Ausgabe war verwendbar.
Zwei Quants können also beide „fünf Bit“ heißen und sich trotzdem grundlegend unterscheiden. Die Zahl beschreibt einen Durchschnitt. Sie sagt nicht, welche Tensoren viel Präzision erhalten, welche aggressiv komprimiert werden und wie die Kalibrierung mit einem MoE-Router umgeht.
Warum MiniMax bei naiver Quantisierung Fähigkeiten verliert
Aus unseren Versuchen, den Quant-Rezepten der Community und späteren Untersuchungen ergaben sich drei empfindliche Stellen.
1. Die Attention verträgt vier Bit schlecht
Die q-, k-, v- und o-Projektionen bestimmen, wie Informationen im Kontext aufgenommen und weitergegeben werden. Werden diese Tensoren zusammen mit den Expertengewichten auf vier Bit gedrückt, summieren sich Fehler über lange Sequenzen. Bei einem Modell, das technische Spezifikationen und Agentenverläufe über viele Tausend Tokens zusammenhalten soll, trifft die Einsparung damit genau den falschen Teil.
Für gute MiniMax-Quants bleibt die Attention deshalb typischerweise in Q8, BF16 oder FP8. Die Speicherersparnis muss aus Bereichen kommen, in denen sie weniger Schaden anrichtet.
2. Einzelne Down-Projections besitzen extreme Ausreißer
Die Unsloth-Untersuchung zu MiniMax-M2.7-GGUF fand NaN-Probleme in verbreiteten Quantisierungen. Ein konkreter Unsloth-Commit hebt blk.61.ffn_down_exps auf Q6_K an, um genau diesen Fehler zu vermeiden.
Unsere Notizen und Quant-Rezepte behandeln außerdem die Down-Projections am Anfang und Ende des Modells besonders vorsichtig. Die Papers „Systematic Outliers in Large Language Models“ und „Precision Where It Matters“ liefern dazu den allgemeinen Hintergrund: Ausreißer konzentrieren sich nicht gleichmäßig über alle Projektionen und Layer. Beide Arbeiten sind keine direkten MiniMax-M2.7-Experimente, stützen aber die Logik selektiver Präzision.
3. Eine Router-Kalibrierung sieht nicht automatisch alle Experten
MiniMax besitzt 256 Experten, von denen pro Token nur ein kleiner Teil aktiv wird. Wenn eine AWQ-Kalibrierung lediglich normale Prompts durch den Router schickt, besucht sie nur die jeweils ausgewählten Experten. Andere Experten bleiben ungesehen und können ungeeignete Skalen erhalten.
Ein Quantisierungsverfahren für dieses MoE muss deshalb alle Experten gezielt kalibrieren. „Der Router wird sie bei genügend Prompts schon irgendwann auswählen“ ist keine belastbare Strategie, wenn die meisten Experten während der Kalibrierung kaum oder gar nicht vorkommen.
Der einfache 4-Bit-Pfad kann alle drei Probleme gleichzeitig enthalten: vier Bit für die Attention, zu wenig Schutz für ausreißerreiche Down-Projections und eine unvollständige Expertenskalierung. Dann überrascht es nicht mehr, dass ein riesiges Modell in unserem Test plötzlich Anforderungen vergisst.
Wie ein sinnvoller MiniMax-Quant aufgebaut ist
Aus den Community-Rezepten von ubergarm, Unsloth und mratsims Quantisierungswerkzeugen sowie unseren eigenen Versuchen ergibt sich ein recht klares Muster. mratsims AWQ-Kalibrierungsrezept ist dabei ein nützlicher Ausgangspunkt für code- und softwarelastige Kalibrierungsdaten; es ist jedoch kein fertiges MiniMax-M2.7-Spezialrezept.
| Tensorbereich | Sinnvolle Behandlung |
|---|---|
| Attention q/k/v/o | Q8, BF16 oder FP8; nicht auf vier Bit reduzieren |
| Embeddings, Output, Norms, Router/Gates | hochpräzise oder unquantisiert |
Kritische ffn_down_exps |
mindestens Q6_K oder ausreißerbewusster I-Quant |
| Große Masse der Expertentensoren | vier Bit sind hier häufig vertretbar |
| Kalibrierung | alle Experten gezielt abdecken |
Der wirksame Quant landet damit oft bei ungefähr fünf bis sechs Bit pro Gewicht. Der Großteil der Parameter steckt in den Expertentensoren. Genau dort lassen sich viele Bytes sparen, ohne Attention und kritische Projektionen mit in denselben Präzisionsverlust zu ziehen.
Die Perplexity-Messung stützt den Befund
ubergarms Messungen auf wiki.test ergeben folgende Reihe; niedriger ist besser:
BF16 7.8743
Q8_0 7.8764 (+0,03 %)
IQ5_K 7.8860 (+0,15 %)
smol-IQ4_KSS 8.0990 (+2,9 %)
IQ2_KS 9.0713 (+15 %)
IQ5_K bleibt sehr nah an BF16. Unterhalb von ungefähr vier Bit pro Expertentensor wächst der Abstand deutlich. Das passt zu unserem Spec-Test, ersetzt ihn aber nicht. Perplexity misst die Vorhersagegüte auf einem Korpus; sie zeigt nicht direkt, ob ein Modell über mehrere Seiten hinweg alle Anforderungen einer technischen Spezifikation einhält.
Gerade deshalb verwenden wir beide Perspektiven. Die Messreihe hilft, grob beschädigte Quants zu erkennen. Der praktische Test zeigt, ob die verbleibenden Fehler ausgerechnet jene Fähigkeiten treffen, für die wir das Modell einsetzen.
Nebenfrage: Kostet ein 4-Bit-KV-Cache Qualität?
Beim KV-Cache liegt die Sorge nahe. Er sitzt direkt im Attention-Pfad, und eine starke Quantisierung könnte lange Kontexte beschädigen. Wir verglichen deshalb auf dem IQ5_K-Modell q8_0 und q4_0 mit denselben Spec-, Reasoning- und Planungsaufgaben.
In diesen Tests fanden wir keinen messbaren Qualitätsunterschied. q4_0 bei 160k Kontext lag praktisch auf dem Niveau von q8_0 und unserer unquantisierten Referenz. Auch die Decode-Geschwindigkeit veränderte sich kaum, weil dieser Lauf überwiegend durch die Bandbreite der Modellgewichte begrenzt war.
| KV-Cache | Maximaler Kontext mit balanciertem Split | Decode |
|---|---|---|
| f16 | ungefähr 32k | ungefähr 42 tok/s |
| q8_0 | ungefähr 88k | ungefähr 41 tok/s |
| q4_0 | ungefähr 160k | ungefähr 40 tok/s |
Diese Kontextmaxima stammen aus unseren damaligen Split- und KV-Versuchen. Der Graph-Split brachte dabei ungefähr 21 GiB zusätzlichen Overhead mit. Das später rekonstruierte, tatsächlich stabile Produktionskommando verwendet keinen Graph-Split. Die Zahlen beschreiben daher die praktische Größenordnung des KV-Effekts, nicht drei vollständig identische Produktionsläufe.
Unsere Aussage bleibt bewusst eng: Bei den von uns verwendeten Prompts konnten wir keinen Nachteil von q4_0-KV erkennen. Das war kein MMLU-Lauf mit zehntausend Samples und keine allgemeine Garantie für jeden Workload.
Der exakte IQ5_K-Start war wichtiger als erwartet
Zwischenzeitlich glaubten wir, den guten IQ5_K-Pfad nicht mehr reproduzieren zu können. Später fanden wir den historischen Startbefehl in der lokalen OpenCode-Datenbank wieder. Die Unterschiede zu unseren misslungenen Rekonstruktionen wirkten klein: anderer KV-Typ, anderer Split-Modus, korrekter Tensor-Split, bekanntes Container-Image sowie die ursprünglichen Cache- und mmap-Einstellungen. Zusammen entschieden sie darüber, ob das Modell sauber lief.
Der rekonstruierte Start sieht so aus:
docker run -d --name minimax_iq5k
--gpus all --ipc=host --shm-size=64g
-e NVIDIA_DISABLE_REQUIRE=1
-p 8088:8080
-v /bigData/llama-models/ubergarm/MiniMax-M2.7-GGUF:/models
--entrypoint /app/llama-server
ik-llama-cuda:main-20260612-full
--model /models/IQ5_K/MiniMax-M2.7-IQ5_K-00001-of-00005.gguf
--alias MiniMax-M2.7-IQ5_K
--host 0.0.0.0 --port 8080
-c 163840
-fa 1 -ngl 999
-ts 1,1.008,1,1.008,1.008,1.008,1,0.97
-ctk q4_0 -ctv q4_0
-muge -gr
-b 2048 -ub 256
--threads 1 --parallel 1
--no-mmap --jinja
--cache-ram 32768 --prompt-cache-all
Wichtig ist nicht nur, was darin steht, sondern auch, was fehlt: kein -sm graph. Der bekannte gute Lauf nutzte den balancierten Tensor-Split ohne Graph-Modus. Das ik_llama-Issue #1624 dokumentiert Probleme rund um -muge und -vhad in Verbindung mit Graph-Split. Es belegt dagegen nicht, dass -khad in jeder Konfiguration grundsätzlich defekt wäre. Unser Produktionsbefehl vermeidet diese zusätzliche Komplexität schlicht.
Mit genau diesem Aufbau maßen wir ungefähr 49,5 tok/s bei kurzem Kontext. Bei rund 80k aktivem Kontext lag Decode bei etwa 13,1 tok/s; der Prompt-Durchsatz betrug ungefähr 350 tok/s. Eine spätere vermeintliche 24-tok/s-Grenze stammte aus einem falsch rekonstruierten Setup und war keine Eigenschaft des IQ5_K-Quants.
Geschwindigkeit gegen Qualität – zunächst eine unangenehme Wahl
Auf Ampere ergab sich damit zunächst folgende Lage:
| Pfad | Quant | Engine | Geschwindigkeit | Ergebnis im Praxistest |
|---|---|---|---|---|
| sehr schnell | W4A16, als AWQ-4bit veröffentlicht | vLLM | ungefähr 90 tok/s | unzuverlässig |
| qualitativ stark | ubergarm IQ5_K | ik_llama |
ungefähr 49,5 tok/s kurz | praktisch Referenzqualität |
| qualitativ brauchbar | EXL3 5,0 bpw | ExLlamaV3 | ungefähr 24 tok/s | auf Ampere zu langsam |
Für vLLM gibt es keinen gewöhnlichen 5-Bit-Marlin-Pfad. AWQ und GPTQ werden praktisch in vier oder acht Bit gepackt; fünf Bit passen nicht sauber in diese Kernel- und Byte-Strukturen. ik_llama kann mit GGUF- und I-Quants feinere Mischungen verwenden, bezahlt dafür auf unserem Rig aber mit deutlich weniger Geschwindigkeit.
Der schnelle Referenzpfad lässt sich mit dem cyankiwi-Paket beispielsweise so starten:
vllm serve cyankiwi/MiniMax-M2.7-AWQ-4bit
--tensor-parallel-size 8
--max-model-len 196608
--max-num-seqs 1
--enable-prefix-caching
--trust-remote-code
--reasoning-parser minimax_m2
--tool-call-parser minimax_m2
--enable-auto-tool-choice
--gpu-memory-utilization 0.92
Die ungefähr 87 bis 90 tok/s dieses Pfads ändern nichts am Ergebnis unseres Spec-Tests. Der Befehl ist hier dokumentiert, weil er die Geschwindigkeitsseite des Vergleichs reproduzierbar macht, nicht weil wir diesen Quant für anspruchsvolle Agentenarbeit empfehlen.
Der Hybrid-AWQ brachte Geschwindigkeit und Qualität zusammen
Als wir ayysasha/MiniMax-M2.7-AWQ-G32-STRIX-2H auswählten, war dessen Verhalten auf NVIDIA/Ampere noch offen. Inzwischen kennen wir das Ergebnis.
Der Quant setzt die Schlussfolgerung aus den vorangegangenen Versuchen direkt um: INT4-Experten sparen den größten Teil des Speichers, während die Attention in BF16 bleibt. Auch Router und kritische Bereiche werden höher präzise behandelt; die Experten wurden gezielt kalibriert. Die späten Layer bleiben teilweise vollständig in BF16.
Auf unserem Rig erreichte dieser Hybrid ungefähr 83 bis 90 tok/s im Single-Stream-Betrieb. In synthetischen Tests mit vier parallelen Requests kamen wir auf ungefähr 181 tok/s aggregiert. Damit lag er fast auf der Geschwindigkeit des einfachen W4A16-Pfads und deutlich über IQ5_K unter ik_llama.
Vor allem war das Modell inhaltlich nicht auf dieselbe Weise beschädigt wie der erste 4-Bit-Versuch. Es schrieb brauchbare Spezifikationen und erzeugte vollständige Tool-Calls. Ein Teil dessen, was zunächst wie mangelnde Modellintelligenz aussah, entstand in einer anderen Schicht: Unser Proxy verarbeitete Tool-Call-Recovery nur im Non-Streaming-Pfad. Streaming-Subagenten gaben deshalb korrekt erzeugte MiniMax-Tool-Call-Blöcke als sichtbaren Text aus, statt sie auszuführen.
Der stabile Weg führte direkt auf vLLM, ohne diesen Proxy. vLLM stellt dafür den MiniMaxM2ReasoningParser und den MinimaxM2ToolParser bereit. In unserer Konfiguration verwendeten wir minimax_m2_append_think für Reasoning und minimax_m2 für Tool-Aufrufe. Danach schrieben die Subagenten ihre Dateien korrekt; der rohe XML-Block verschwand.
Zum Vergleich: Das verbreitete QuantTrio/MiniMax-M2.7-AWQ lag bei HumanEval ungefähr im mittleren 80-Prozent-Bereich, während der ayysasha-Hybrid mit 90,2 Prozent nahe an der unquantisierten Referenz von 91,5 Prozent lag. Diese Zahlen beweisen nicht allein die Eignung für unsere Spec-Aufgabe, passen aber zum praktischen Befund.
Die ursprünglich offene Frage „Kann INT4 auf einer RTX 3090 schnell bleiben, ohne die Attention kaputtzuquantisieren?“ konnten wir damit beantworten: ja. Die Gruppegröße 32 ist für Marlin weniger günstig als die verbreitete Gruppegröße 128, doch der Hybrid war trotzdem deutlich schneller als unser IQ5_K-Pfad.
Damit war die Quantisierungsfrage gelöst – die Betriebsfrage noch nicht
Das Ergebnis dieser Odyssee ist präziser als „fünf Bit sind besser als vier“. Ein pauschaler 5-Bit-Quant kann schwach sein, ein sorgfältiger IQ5_K kann nahezu Referenzqualität erreichen und ein Hybrid aus INT4-Experten und BF16-Attention kann zugleich schnell und intelligent sein.
Entscheidend ist die Verteilung der Präzision:
- Attention hochpräzise halten,
- ausreißerreiche Down-Projections schützen,
- alle Experten kalibrieren,
- den großen Rest der Expertentensoren aggressiv komprimieren.
Damit war allerdings noch nicht bewiesen, dass MiniMax M2.7 über 60k, 80k oder 100k aktiven Kontext hinweg stabil bleibt, Werkzeuge zuverlässig benutzt und bei wiederholten Bewertungsaufgaben zu konsistenten Urteilen kommt. Diese Probleme gehören nicht mehr zur reinen Quantisierung. Sie betreffen Modellverhalten, Engine, Parser, Kontextwachstum und teilweise sogar die Hardware.
Genau dort setzt der nächste Artikel über unsere MiniMax-Erfahrungen im realen Betrieb an (erscheint in Kürze). Der Hybrid-Quant löste das ursprüngliche Vier-Bit-Problem. Was danach unter echter Agentenlast geschah, war eine andere Geschichte.
Verwendete Quants und technische Quellen
Modelle und Quants
- Offizielles MiniMax-M2.7-Modell
- Offizielles MiniMax-M2.7-Repository
- cyankiwi/MiniMax-M2.7-AWQ-4bit
- bartowski MiniMax-M2.7 Q5_K_M
- ubergarm MiniMax-M2.7 IQ5_K
- ayysasha MiniMax-M2.7 AWQ-G32 STRIX-2H
- QuantTrio MiniMax-M2.7 AWQ