Bit-Quantisierung

Ein großes Sprachmodell besteht aus Milliarden numerischer Gewichte. Jedes Gewicht belegt im Standardformat 16 oder 32 Bit Speicherplatz. Bit-Quantisierung wandelt diese Gewichte in kompaktere Formate mit weniger Bit um. Das Modell wird kleiner, braucht weniger Arbeitsspeicher und rechnet schneller. Der Preis: ein kontrollierbarer Verlust an Genauigkeit.

Warum die Zahlendarstellung entscheidend ist

Jedes Gewicht in einem neuronalen Netz ist eine Zahl. Diese Zahl wird im Speicher als Folge von Bits abgelegt. Je mehr Bits zur Verfügung stehen, desto feiner kann der Wert dargestellt werden. Das Standardformat FP16 (16 Bit Gleitkomma) unterscheidet rund 65.000 verschiedene Werte. Ein 4-Bit-Format unterscheidet nur 16 Werte.

Beispiel: Ein Gewicht hat den trainierten Wert 0,7823. In FP16 wird dieser Wert exakt gespeichert. In einem 4-Bit-Format wird er auf den nächstliegenden der 16 verfügbaren Werte gerundet, etwa 0,75. Die Abweichung von 0,0323 ist der Quantisierungsfehler.

Beispiel: Ein Modell mit 7 Milliarden Gewichten belegt in FP16 rund 14 GB VRAM. Dasselbe Modell in 4-Bit-Quantisierung belegt rund 3,5 GB. Das ist der Unterschied zwischen einer professionellen Rechenzentrums-GPU und einer handelsüblichen Grafikkarte.

Die Idee hinter Quantisierung ist deshalb nicht, Qualität zu opfern, sondern den Punkt zu finden, an dem der Verlust an Präzision für die jeweilige Aufgabe akzeptabel bleibt.

Die Quantisierungsstufen im Vergleich

Quantisierung existiert in verschiedenen Abstufungen. Die gebräuchlichsten Formate:

FP32 (32 Bit): Volle Präzision, wird beim Training verwendet. Jedes Gewicht belegt 4 Byte. Ein 7B-Modell braucht 28 GB.

FP16 / BF16 (16 Bit): Halbierte Präzision, Standardformat für Inferenz. 2 Byte pro Gewicht. Ein 7B-Modell braucht 14 GB. BF16 opfert Nachkommastellen zugunsten eines größeren Wertebereichs und ist bei Sprachmodellen oft stabiler als FP16.

INT8 (8 Bit): Ganzzahlformat, 1 Byte pro Gewicht. Ein 7B-Modell braucht 7 GB. Der Qualitätsverlust ist bei den meisten Aufgaben kaum messbar.

INT4 / NF4 (4 Bit): 0,5 Byte pro Gewicht. Ein 7B-Modell braucht 3,5 GB. NF4 (Normal Float 4) verteilt die 16 verfügbaren Werte nicht gleichmäßig, sondern entlang einer Normalverteilung. Das passt besser zur tatsächlichen Verteilung trainierter Gewichte.

Beispiel: Die Gewichte eines trainierten Sprachmodells sind annähernd normalverteilt: Viele Werte liegen nahe Null, wenige sind extrem groß oder klein. NF4 legt mehr Quantisierungsstufen in die dicht besiedelte Mitte und weniger an die Ränder. Dadurch sinkt der durchschnittliche Quantisierungsfehler gegenüber einem uniformen 4-Bit-Raster.

Beispiel: Ein Llama-2-7B-Modell in FP16 erzielt auf dem MMLU-Benchmark rund 46 Punkte. Dasselbe Modell in 4-Bit-NF4-Quantisierung erzielt rund 44 Punkte. In 2-Bit-Quantisierung fällt der Wert auf unter 30 Punkte, was in der Praxis unbrauchbar ist.

Fachliche Einordnung: Die Schwelle, ab der Quantisierung die Modellqualität spürbar verschlechtert, hängt von der Aufgabe ab. Aufgaben mit eindeutiger Antwort (Klassifikation, Extraktion) tolerieren stärkere Quantisierung als Aufgaben mit offenem Ausgang (kreatives Schreiben, komplexes Reasoning). Pauschalaussagen wie "4 Bit reicht immer" sind deshalb nicht haltbar.

Verfahren: Wie Quantisierung technisch funktioniert

Es gibt zwei grundsätzliche Ansätze, die sich im Zeitpunkt der Quantisierung unterscheiden.

Nachträgliche Quantisierung

Post-Training Quantization (PTQ) wandelt ein bereits fertig trainiertes Modell in ein kompakteres Format um. Das Training selbst bleibt unverändert. PTQ ist das in der Praxis am häufigsten eingesetzte Verfahren, weil es keine Trainingsinfrastruktur erfordert.

Der einfachste Ansatz: Jedes Gewicht wird einzeln auf den nächsten verfügbaren Quantisierungswert gerundet (Round-to-Nearest, RTN). Das ist schnell, erzeugt aber bei niedrigen Bitzahlen spürbare Fehler, weil die Rundungsfehler sich schichtweise aufaddieren.

Beispiel: Bei RTN-Quantisierung auf 4 Bit wird jedes Gewicht unabhängig gerundet. Wenn in einer Schicht viele Gewichte systematisch aufgerundet werden, verschiebt sich die Gesamtausgabe der Schicht. In den folgenden Schichten verstärkt sich dieser Effekt. Das Ergebnis: Das Modell gibt plausibel klingende, aber inhaltlich falsche Antworten.

Fortgeschrittene PTQ-Verfahren wie GPTQ kompensieren diesen Effekt. GPTQ quantisiert die Gewichte spaltenweise und passt die verbleibenden, noch nicht quantisierten Gewichte so an, dass der Gesamtfehler der Schicht minimiert wird. Das erfordert einen kleinen Kalibierungsdatensatz (typisch: 128 Textsequenzen), dauert wenige Stunden auf einer einzelnen GPU und liefert bei 4 Bit deutlich bessere Ergebnisse als RTN.

Beispiel: GPTQ quantisiert Spalte für Spalte einer Gewichtsmatrix. Nach der Quantisierung von Spalte 1 wird der entstandene Fehler berechnet und auf die Spalten 2 bis n verteilt. Das Verfahren basiert auf der Optimal Brain Surgeon Methode aus der Netzwerk-Pruning-Forschung der 1990er Jahre.

Quantisierung während des Trainings

Quantization-Aware Training (QAT) simuliert bereits während des Trainings die Effekte der späteren Quantisierung. Die Gewichte werden in jedem Vorwärtsdurchlauf quantisiert und dequantisiert. Die Gradienten fließen aber in voller Präzision. Das Modell lernt dadurch, trotz reduzierter Präzision gute Ergebnisse zu liefern.

Beispiel: QLoRA kombiniert Quantisierung mit Fine-Tuning. Das Basismodell wird auf 4 Bit quantisiert (eingefroren), zusätzliche kleine Adapter-Gewichte (LoRA) werden in voller Präzision trainiert. Das ermöglicht Fine-Tuning eines 65B-Modells auf einer einzelnen 48-GB-GPU.

QAT liefert bei gleicher Bitzahl bessere Ergebnisse als PTQ, erfordert aber Zugang zu Trainingsdaten und Trainingsinfrastruktur. Für die meisten Anwender, die ein fertiges Modell kompakter betreiben wollen, ist PTQ deshalb der praktikablere Weg.

Dateiformate und praktische Nutzung

Quantisierte Modelle werden in spezialisierten Dateiformaten gespeichert und verteilt. Das verbreitetste Format ist GGUF. Es speichert die quantisierten Gewichte zusammen mit Metadaten (über das Modell, die verwendete Quantisierungsmethode, Tensor-Layout) in einer einzelnen Datei.

Die Bezeichnungen der Quantisierungsvarianten folgen einem Namensmuster: Q4_K_M bedeutet 4-Bit-Quantisierung mit der K-Quant-Methode in mittlerer Qualität (M = medium). Q5_K_S steht für 5 Bit, K-Quant, kleine Variante (S = small). Die K-Quant-Methode quantisiert verschiedene Schichten unterschiedlich stark: Schichten, die besonders empfindlich auf Präzisionsverlust reagieren, behalten mehr Bits.

Beispiel: Für ein 13B-Modell auf einer GPU mit 8 GB VRAM ist Q4_K_M ein gängiger Kompromiss. Das Modell belegt rund 7,4 GB, lässt noch Platz für den KV-Cache und liefert bei Standardaufgaben (Zusammenfassung, Beantwortung von Fragen) Ergebnisse nahe am FP16-Original.

Beispiel: Die Wahl der Quantisierungsvariante hängt vom VRAM-Budget ab. Bei 6 GB VRAM kommt für ein 7B-Modell Q4_K_M infrage. Bei 4 GB VRAM bleibt nur Q3_K_S oder Q2_K, wobei Q2 in der Praxis oft unbrauchbare Ergebnisse liefert.

FP16-Modell14 GB (7B-Modell)
Post-Training (PTQ)GPTQ, RTN, AWQ
Training-Aware (QAT)QLoRA, SmoothQuant
GGUF / GPTQ-FormatQ4_K_M, Q5_K_S, ...
Inferenz3,5 GB (4-Bit, 7B)

Gemischte Quantisierung und adaptive Verfahren

Nicht alle Schichten eines Transformer-Modells reagieren gleich empfindlich auf Präzisionsverlust. Die Attention-Schichten und die erste sowie letzte Schicht des Modells haben in der Regel einen überproportionalen Einfluss auf die Ausgabequalität. Gemischte Quantisierung (Mixed-Precision Quantization) nutzt das aus: Empfindliche Schichten behalten 8 oder 16 Bit, weniger empfindliche Schichten werden auf 4 oder 3 Bit reduziert.

Beispiel: AWQ (Activation-Aware Weight Quantization) analysiert, welche Gewichte große Aktivierungswerte erzeugen. Diese "salienten" Gewichte werden mit höherer Präzision behandelt, obwohl sie nur rund 1% aller Gewichte ausmachen. Das Ergebnis: bei 4 Bit gleiche Qualität wie GPTQ, aber schnellere Quantisierung.

Beispiel: SmoothQuant verschiebt die Quantisierungsschwierigkeit von den Aktivierungen auf die Gewichte. Aktivierungen haben oft Ausreißer (einzelne sehr große Werte), die bei naiver Quantisierung zu starken Fehlern führen. SmoothQuant skaliert die Gewichte vor der Quantisierung so, dass die Aktivierungen gleichmäßiger verteilt sind. Das ermöglicht INT8-Quantisierung auch für die Aktivierungen, nicht nur für die Gewichte.

Die K-Quant-Methoden in llama.cpp implementieren eine vereinfachte Form gemischter Quantisierung: Die Software analysiert die Empfindlichkeit jeder Schicht automatisch und vergibt unterschiedliche Bitzahlen pro Tensorgruppe.

Auswirkungen auf die Praxis

Quantisierung verändert nicht nur den Speicherbedarf, sondern auch die Rechengeschwindigkeit und den Energieverbrauch.

Die Inferenzgeschwindigkeit steigt, weil weniger Daten zwischen Speicher und Prozessor transportiert werden müssen. Bei großen Sprachmodellen ist der Flaschenhals fast immer die Speicherbandbreite (Memory-Bandwidth-Bound), nicht die Rechenleistung. Ein 4-Bit-Modell überträgt pro Gewicht nur ein Viertel der Datenmenge eines FP16-Modells. Die Token-Generierungsrate steigt entsprechend.

Beispiel: Ein 13B-Modell in FP16 generiert auf einer RTX 4090 rund 25 Token pro Sekunde. Dasselbe Modell in Q4_K_M generiert rund 55 Token pro Sekunde. Der Geschwindigkeitsgewinn kommt nicht durch schnellere Berechnung, sondern durch geringere Speichertransfers.

Der Batch-Size profitiert ebenfalls. Wenn ein Modell weniger VRAM belegt, bleibt mehr Platz für den KV-Cache (den Arbeitsspeicher des Modells während der Textgenerierung). Mehr KV-Cache bedeutet: mehr parallele Anfragen oder längere Kontextfenster.

Beispiel: Ein Unternehmen betreibt einen Chatbot auf einer A100 (80 GB VRAM). In FP16 passt ein 70B-Modell mit maximal 4 parallelen Anfragen. In 4-Bit-Quantisierung passt dasselbe Modell mit bis zu 16 parallelen Anfragen, weil der eingesparte VRAM für zusätzlichen KV-Cache genutzt wird.

Grenzen und bekannte Probleme

Quantisierung ist kein verlustfreies Verfahren. Die relevanten Einschränkungen:

Aufgabenabhängiger Qualitätsverlust: Einfache Aufgaben (Sentiment-Analyse, Named Entity Recognition) vertragen aggressive Quantisierung gut. Komplexe Aufgaben (mehrstufiges Reasoning, Mathematik, Code-Generierung) reagieren empfindlicher. Ein Modell, das in 4 Bit bei Zusammenfassungen einwandfrei arbeitet, kann bei Mathematikaufgaben signifikant schlechter abschneiden.

Beispiel: Ein quantisiertes Modell beantwortet die Frage "Was ist die Hauptstadt von Frankreich?" korrekt. Bei "Berechne 47 mal 83 und ziehe 1.291 ab" weicht die Antwort vom FP16-Modell ab, weil die für arithmetische Operationen zuständigen Gewichte durch Quantisierung an Präzision verloren haben.

Nicht-Linearität des Qualitätsverlusts: Der Qualitätsverlust steigt nicht linear mit sinkender Bitzahl. Von 16 auf 8 Bit ist der Verlust minimal. Von 8 auf 4 Bit ist er messbar, aber oft akzeptabel. Von 4 auf 3 Bit wird er deutlich. Von 3 auf 2 Bit bricht die Qualität abrupt ein. Dieser "Quantisierungs-Cliff" ist ein gut dokumentiertes Phänomen.

Beispiel: Ein 7B-Modell in Q4_K_M verliert gegenüber FP16 rund 2 Punkte auf dem MMLU-Benchmark. In Q2_K verliert es 15 bis 20 Punkte. Der Verlust vervierfacht sich also bei Halbierung der Bitzahl.

Kalibrierungsdaten-Abhängigkeit: PTQ-Verfahren wie GPTQ benötigen einen Kalibrierungsdatensatz. Wenn dieser Datensatz nicht repräsentativ für die spätere Nutzung ist, kann die Quantisierung für bestimmte Domänen schlechter ausfallen. Ein auf englischen Texten kalibriertes Modell kann nach Quantisierung bei deutschen Texten stärker an Qualität verlieren als erwartet.

Hardware-Abhängigkeit: Nicht jede Hardware unterstützt jedes Quantisierungsformat nativ. INT8-Operationen sind auf modernen GPUs (ab NVIDIA Turing) hardwarebeschleunigt. INT4-Operationen sind erst ab Hopper-GPUs (H100) nativ unterstützt. Auf älterer Hardware wird INT4 oft durch Software emuliert, was den Geschwindigkeitsvorteil reduziert.

Fachliche Einordnung: Die Forschung an Quantisierungsmethoden entwickelt sich schnell. Verfahren wie QuIP# und AQLM erreichen bei 2 Bit Ergebnisse, die vor einem Jahr nur bei 4 Bit möglich waren. Gleichzeitig steigt die verfügbare VRAM-Kapazität neuer GPUs. Ob Quantisierung langfristig eine Schlüsseltechnologie bleibt oder durch günstigeren Speicher und effizientere Architekturen an Bedeutung verliert, ist offen. Aktuell ist sie für den produktiven Betrieb großer Modelle auf begrenzter Hardware unverzichtbar.


Karl Kratz · 27.01.2025

Technologie Künstliche Intelligenz Sprachmodell