Ein 7B-Modell ins Telefon quetschen: ein Quantisierungs-Feldführer
Q4_K_M, AWQ, GPTQ, SmoothQuant — was wirklich zählt, wenn nur 4 GB RAM und 4 W Budget übrig sind.
Auf Mobile ist Quantisierung das ganze Spiel
Der Flaschenhals auf Mobile sind nicht FLOPs, sondern Bytes. Ein 7B-Modell in fp16 ist 14 GB groß. Dein Telefon hat insgesamt 4–8 GB RAM, davon kannst du realistisch 1,5–3 GB für eine KI-Last leihen, bevor das OS die Vordergrund-App auslagert. Die Arithmetik geht ohne aggressive Quantisierung nicht auf.
Was wir tatsächlich ausliefern
- Q4_K_M (k-quants, gruppenweise gemischt) für allgemeine LLM-Lasten — die beste Qualität pro Byte, die wir unter 4 Bit gemessen haben, mit überraschend sanften Ausfallmodi auf Long-Tail-Tokens.
- AWQ-int4 (aktivierungsbewusste Gewichts-Quantisierung) für Code und mathematisches Reasoning, wo Aktivierungsausreißer zählen und naive RTN sichtbar verliert.
- Heiße Gewichte in fp16 für Embedding-Tabelle und finale lm_head-Projektion — kleiner Anteil aller Gewichte, überproportionaler Beitrag zur wahrgenommenen Qualität.
- K/V-Cache in int8 mit Skalierung pro Token, um das Cache-Budget zu halten, ohne den katastrophalen Verlust eines int4-KV.
- GGUF als Disk-Container, damit wir das Quantisierungsschema austauschen können, ohne den Loader umzubauen.
Perplexity ist nicht die richtige Metrik
Den Nutzer interessiert die Cross-Entropy des nächsten Tokens nicht. Ihn interessiert, ob die Zusammenfassung stimmt, ob die Übersetzung natürlich klingt, ob die Commit-Message die Änderung beschreibt. Wir haben ein kleines internes Eval, das End-Task-Qualität auf echten Meeting-Transkripten, echten Menü-Übersetzungen und echten Commit-Diffs bewertet. Es widerspricht Perplexity in etwa 18 % der Fälle. Manchmal verliert ein Schema 0,3 Bit Perplexity, gewinnt aber 4 Punkte Zusammenfassungsqualität, weil sich der Ausfallmodus von "nächster Token leicht schlechter" zu "weniger Ausreißer" verschiebt.
Was uns überrascht hat
- Die Gruppengröße zählt für manche Layer mehr als die Bitbreite. Group Size in der FFN von 128 auf 64 zu senken brachte mehr Qualität zurück als Attention von 4 auf 5 Bit zu heben.
- Ausreißer clustern. In jedem Transformer-Block tragen wenige Channels überproportional große Aktivierungsmagnituden. Sie mit einem Höher-Präzisions-Zweig zu behandeln (SmoothQuant-artig oder per Channel-Scale) ist effizienter, als die Bitbreite überall zu erhöhen.
- Kalibrierdaten sind Hebel. Ein 256-Sample-Kalibrierset aus der echten Produktlast schlägt jedes Mal ein 8K-Sample-Set aus C4.
Take-away
Wähle das Schema nicht nach Paper. Wähle es nach deinem Eval — und dein Eval muss exakt nach deinem Produkt aussehen.