Ein Sprachmodell besitzt Milliarden Parameter.

Nehmen wir stark vereinfacht ein Modell mit:

20 Milliarden Parametern

Wenn jeder Parameter als 16-Bit-Wert gespeichert wird, benötigen allein die Modellgewichte ungefähr:

20 Milliarden
×
16 Bit
÷
8
≈
40 GB

Für einen gewöhnlichen Rechner ist das bereits eine erhebliche Menge Speicher.

Nun speichern wir dieselben Modellgewichte mit ungefähr vier Bit pro Parameter.

Theoretisch ergibt sich:

20 Milliarden
×
4 Bit
÷
8
≈
10 GB

Plötzlich bewegt sich dasselbe Grundmodell in einer völlig anderen Hardwareklasse.

Genau darum geht es bei Quantisierung.

Die Zahlen, aus denen ein neuronales Netz besteht, werden mit geringerer Präzision dargestellt. Dadurch sinken Speicherbedarf und häufig auch die Anforderungen an Speicherbandbreite und Rechenleistung. Moderne KI-Frameworks unterstützen deshalb verschiedenste Quantisierungsverfahren bis hinunter zu sehr niedrigen Bitbreiten. (Hugging Face)

Ein Sprachmodell besteht letztlich aus sehr vielen Zahlen

Wenn wir von Milliarden Parametern sprechen, meinen wir trainierte Zahlenwerte innerhalb des neuronalen Netzes.

Vereinfacht:

0,038274
-0,741962
0,122811
...

Ein großes Modell besitzt davon nicht:

hundert,

tausend

oder:

eine Million,

sondern Milliarden.

Diese Zahlen müssen irgendwo gespeichert werden.

Damit beeinflusst die Art ihrer Speicherung unmittelbar:

Dateigröße,

RAM-Bedarf,

VRAM-Bedarf

und teilweise die Geschwindigkeit der Inferenz.

Computer können Zahlen mit unterschiedlicher Präzision speichern

Eine Zahl könnte sehr genau repräsentiert werden.

Oder weniger genau.

Vereinfacht:

0,123456789

könnte in einer kompakteren Darstellung eher angenähert werden als:

0,1235

Bei einem einzelnen Wert wirkt dieser Unterschied gering.

Bei:

30 Milliarden Parametern

wird daraus ein riesiger Speicherunterschied.

Was bedeutet Bit?

Ein Bit kann zwei Zustände darstellen:

0
oder
1

Mit mehreren Bits lassen sich entsprechend mehr unterschiedliche Werte codieren.

Vier Bit ermöglichen beispielsweise:

2^4
=
16

verschiedene Bitkombinationen.

Acht Bit:

2^8
=
256

16 Bit:

2^16
=
65.536

Das bedeutet allerdings nicht, dass alle KI-Zahlenformate einfach positive Ganzzahlen von 0 bis zu dieser Obergrenze darstellen.

Die tatsächliche Codierung kann wesentlich komplexer sein.

Der grundlegende Zusammenhang bleibt jedoch:

mehr Bits
→ mehr mögliche Darstellungen

und:

weniger Bits
→ weniger Speicher

Was bedeutet FP32?

FP steht für Floating Point, also Gleitkommazahl.

32 bedeutet:

Die Zahl wird in einem 32-Bit-Format gespeichert.

Historisch ist FP32 in vielen Machine-Learning-Berechnungen ein wichtiges Standardformat.

Für große Sprachmodelle ist der Speicherbedarf allerdings enorm.

Ein Modell mit zehn Milliarden Parametern benötigt allein für die Gewichte in einer vereinfachten FP32-Rechnung:

10 Milliarden
×
32 Bit
÷
8
=
40 GB

Noch ohne weitere Laufzeitdaten.

FP16 halbiert diesen groben Gewichtsspeicher

Bei 16 Bit:

10 Milliarden
×
16
÷
8
=
20 GB

Das ist bereits eine erhebliche Reduktion.

Moderne Modelle werden deshalb häufig ohnehin in halbpräzisen Formaten wie FP16 oder BF16 verteilt beziehungsweise verarbeitet. Hugging Face weist darauf hin, dass FP16 und BF16 wegen der Größe moderner Modelle zunehmend als Ausgangsformate verwendet werden, während Quantisierung die Präzision noch weiter reduzieren kann. (Hugging Face)

Was ist BF16?

BF16, BFloat16, besitzt ebenfalls 16 Bit.

Es verteilt diese Bits allerdings anders als FP16.

Dadurch besitzt BF16 einen größeren Zahlenbereich, aber weniger Präzision für die Mantisse.

Für diesen Artikel reicht zunächst:

FP16
→ 16-Bit-Gleitkommazahl
BF16
→ ebenfalls 16 Bit,
aber anderes Zahlenformat

Beide sind wesentlich größer als typische 4-Bit-Quantisierungen.

Ist FP16 bereits Quantisierung?

Der Begriff wird nicht immer vollkommen einheitlich verwendet.

Im weiten Sinn reduziert auch der Wechsel von FP32 auf FP16 die numerische Präzision.

Im heutigen LLM-Alltag meint Quantisierung aber häufig eine deutlich aggressivere Kompression, beispielsweise auf:

INT8
8 Bit
6 Bit
5 Bit
4 Bit

oder noch weniger.

FP16 beziehungsweise BF16 dienen dabei häufig eher als hochpräzise Ausgangs- oder Vergleichsformate.

Was bedeutet INT8?

INT steht für Integer.

Also:

Ganzzahl.

Eine einfache 8-Bit-Quantisierung versucht, einen Bereich ursprünglich präziser Modellwerte auf eine deutlich kleinere Menge diskreter Werte abzubilden.

Vereinfacht:

viele mögliche FP-Werte
↓
Skalierung
↓
256 mögliche 8-Bit-Stufen

Die ursprünglichen Werte werden angenähert.

Quantisierung ist deshalb eine Näherung

Angenommen, das Originalgewicht lautet:

0,137482

Das Quantisierungssystem kann vielleicht nur einen nahegelegenen Wert darstellen:

0,1369

Die Differenz:

Original
-
Quantisierung
=
Quantisierungsfehler

Bei Milliarden Parametern entstehen sehr viele solcher kleinen Fehler.

Die Kunst eines guten Quantisierungsverfahrens besteht darin, diese Fehler so zu verteilen beziehungsweise zu minimieren, dass die Fähigkeiten des Modells möglichst gut erhalten bleiben.

Naive Quantisierung wäre einfach

Man könnte sagen:

Teile den gesamten Zahlenbereich einfach gleichmäßig auf.

Angenommen:

Minimum = -1

Maximum = +1

Bei einer sehr kleinen Zahl möglicher Stufen könnten Werte auf die jeweils nächstgelegene Stufe gerundet werden.

Vereinfacht:

0,13
→
0,12
0,46
→
0,47

Das funktioniert prinzipiell.

Bei großen neuronalen Netzen ist allerdings nicht jeder Parameter gleich empfindlich gegenüber solchen Fehlern.

Manche Gewichte sind wichtiger als andere

Ein kleiner Quantisierungsfehler an einer Stelle kann nahezu keine Auswirkung besitzen.

An einer anderen Stelle kann derselbe Fehler die Modellausgabe stärker beeinflussen.

Darum sind moderne Quantisierungsverfahren deutlich intelligenter als:

einfach jede Zahl
gleich grob runden

Verfahren wie AWQ nutzen beispielsweise Informationen aus Modellaktivierungen, um besonders wichtige Gewichte bei der Quantisierung besser zu schützen. Die ursprüngliche AWQ-Arbeit zeigt genau diese Idee: Ein kleiner Anteil besonders relevanter Gewichte kann überproportional wichtig für die Modellqualität sein. (Proceedings MLSys)

Quantisierung ist damit ein Optimierungsproblem

Wir möchten gleichzeitig:

weniger Speicher
hohe Geschwindigkeit
möglichst wenig Qualitätsverlust

Diese Ziele widersprechen sich teilweise.

Sehr hohe Präzision:

viel Speicher
+
hohe Qualität

Sehr starke Quantisierung:

wenig Speicher
+
größeres Qualitätsrisiko

Die Aufgabe besteht darin, einen geeigneten Punkt dazwischen zu finden.

Warum ist 4-Bit-Quantisierung so interessant?

Vier Bit bieten theoretisch nur:

16 verschiedene Codes

pro quantisiertem Wert.

Trotzdem können moderne Verfahren große Sprachmodelle erstaunlich gut in dieser Größenordnung repräsentieren.

Dadurch sinkt der Gewichtsspeicher gegenüber 16 Bit theoretisch ungefähr auf ein Viertel.

16 Bit
→ 100 %
4 Bit
→ ungefähr 25 %

Die reale Modelldatei ist etwas größer als diese idealisierte Rechnung, weil zusätzliche Informationen wie Skalen und Metadaten gespeichert werden müssen.

Ein Q4-Modell benötigt deshalb nicht exakt vier Bit pro Gewicht

Das ist ein ausgesprochen wichtiger Punkt.

Nehmen wir eine Quantisierung, die im Namen:

Q4

trägt.

Das bedeutet nicht zwangsläufig:

exakt 4,000 Bit
pro Parameter

Denn gruppierte Quantisierungen benötigen zusätzliche Informationen.

Zum Beispiel:

Skalierungswerte,

Blockmetadaten,

weitere höherpräzise Tensoren.

Die aktuelle llama.cpp-Dokumentation zeigt diesen Unterschied sehr anschaulich: Bei einem getesteten Modell benötigt beispielsweise Q4_K_M effektiv knapp 4,9 Bit pro Gewicht statt exakt vier. (GitHub)

Warum braucht Quantisierung zusätzliche Skalierungswerte?

Angenommen, wir quantisieren eine Gruppe von Gewichten.

Original:

-0,831
-0,122
 0,039
 0,248
 0,793

Wir wollen sie durch kleine Ganzzahlen darstellen.

Beispielsweise:

-7
-1
 0
 2
 7

Nun benötigen wir zusätzlich eine Information:

Wie wird aus diesen kleinen Ganzzahlen wieder ungefähr der ursprüngliche Wertebereich?

Dafür kann eine Skalierung gespeichert werden.

Vereinfacht:

quantisierter Wert
×
scale
≈
ursprünglicher Wert

Gruppenquantisierung reduziert Fehler

Statt eine einzige Skalierung für Milliarden Gewichte zu verwenden, werden Gewichte häufig in kleinere Gruppen beziehungsweise Blöcke eingeteilt.

Gewichte
↓
Block 1
Block 2
Block 3
...

Jeder Block kann eigene Quantisierungsparameter besitzen.

Dadurch passt die Darstellung besser zur lokalen Werteverteilung.

Kleinere Gruppen können Qualität verbessern

Sehr große Gruppe:

eine Skala
für sehr unterschiedliche Werte

Kleinere Gruppe:

mehrere passendere Skalen

Das kann den Quantisierungsfehler reduzieren.

Dafür müssen aber mehr Skalen gespeichert werden.

Wieder entsteht ein Trade-off:

kleinere Gruppen
→ möglicherweise bessere Qualität
→ mehr Metadaten

Deshalb ist „4 Bit“ nur eine grobe Klasse

Zwei unterschiedliche 4-Bit-Quantisierungen können:

unterschiedlich groß,

unterschiedlich schnell,

unterschiedlich genau

sein.

Die Bitzahl allein reicht deshalb nicht zur Auswahl.

Was bedeutet Weight-Only-Quantisierung?

Nicht alle Teile einer KI-Berechnung müssen auf dieselbe Präzision reduziert werden.

Bei Weight-Only Quantization werden primär die Modellgewichte quantisiert.

Weights
→ niedrigere Präzision

während andere Berechnungen beziehungsweise Aktivierungen mit höherer Präzision stattfinden können.

AWQ ist beispielsweise ein Verfahren für Low-Bit-Weight-Only-Quantisierung. (Proceedings MLSys)

Warum quantisiert man nicht einfach alles auf vier Bit?

Weil unterschiedliche Bestandteile des Modells unterschiedlich empfindlich sind.

Ein niedrigpräziser Speicherwert kann gut funktionieren.

Eine Zwischenberechnung könnte jedoch mehr Präzision benötigen.

Deshalb kann eine Engine beispielsweise:

Gewichte
→ 4 Bit gespeichert

aber:

Berechnung
→ 16 Bit oder anderes Format

verwenden.

Speicherformat und Rechenformat sind nicht dasselbe

Das wird häufig missverstanden.

Eine Modelldatei kann quantisierte Gewichte enthalten.

Während der Berechnung können Werte jedoch:

teilweise dequantisiert

oder:

in einem anderen Datentyp verarbeitet

werden.

Hugging Faces GGUF-Unterstützung beschreibt beispielsweise explizit, dass quantisierte Gewichte in kompakter Form vorliegen können, während sie für bestimmte Berechnungen in einen konfigurierten Compute-Datentyp überführt werden. (Hugging Face)

Quantisierung spart deshalb nicht automatisch exakt proportional Rechenleistung

Vier Bit statt 16 Bit bedeutet:

wesentlich weniger Gewichtsspeicher.

Es bedeutet aber nicht zwingend:

viermal schneller

Die tatsächliche Geschwindigkeit hängt davon ab:

Welche Hardware?

Welche Quantisierung?

Welche Kernel?

Welche Inference Engine?

Welche Speicherbandbreite?

Wie viel Dequantisierung ist notwendig?

Quantisierung kann sogar langsamer sein

Das klingt zunächst widersprüchlich.

Ein kleineres Modell muss weniger Daten bewegen.

Das ist gut.

Aber wenn die Hardware bestimmte Quantisierungsoperationen schlecht unterstützt, können zusätzliche Umwandlungen entstehen.

Dann kann eine stärkere Quantisierung:

kleiner

aber nicht unbedingt:

schneller

sein.

Deshalb sollte Geschwindigkeit gemessen werden

Nicht:

Q4 ist kleiner als Q8
→ also automatisch schneller

sondern:

Modell
+
Quantisierung
+
Hardware
+
Inference Engine
↓
Benchmark

Das Ergebnis kann je nach System unterschiedlich ausfallen.

Speicherbandbreite erklärt einen Teil des Geschwindigkeitsgewinns

Bei der Token-Generierung großer LLMs müssen immer wieder große Mengen Modellgewichtsdaten gelesen werden.

Wenn ein Modell statt:

16 GB

nur:

5 GB

Gewichte benötigt, müssen potenziell wesentlich weniger Daten durch den Speicher bewegt werden.

Das kann die Generierung beschleunigen.

Die llama.cpp-eigenen Benchmarks zeigen beispielsweise, dass verschiedene quantisierte Varianten auf derselben Hardware deutlich andere Generationsgeschwindigkeiten als F16 erreichen können – allerdings nicht in einer simplen Reihenfolge „weniger Bits = immer schneller“. (GitHub)

Quantisierung kann deshalb zwei Vorteile gleichzeitig bringen

weniger Speicher

und möglicherweise:

höhere Geschwindigkeit

Der erste Vorteil ist relativ zuverlässig.

Der zweite hängt stärker von der Implementierung ab.

Was ist Post-Training Quantization?

Ein großes Modell wurde bereits vollständig trainiert.

Danach wird es quantisiert.

Training
↓
hochpräzises Modell
↓
Quantisierung
↓
kompakteres Modell

Das nennt man Post-Training Quantization, kurz PTQ.

Der große Vorteil:

Das ursprüngliche Modell muss nicht vollständig neu trainiert werden.

Viele lokale Modelle sind genau solche quantisierten Ableitungen

Ein Anbieter veröffentlicht beispielsweise ein Modell in BF16.

Danach erstellt jemand daraus:

Q8
Q6
Q5
Q4

Varianten.

Alle stammen vom selben Grundmodell.

Sie unterscheiden sich hauptsächlich in der quantisierten Repräsentation der Gewichte.

Quantisierung verändert also nicht das Training des Grundmodells

Ein 4-Bit-Modell besitzt nicht:

weniger trainierte Texte

oder:

weniger ursprüngliche Parameter

Die vorhandenen Gewichte werden kompakter dargestellt.

Das ist etwas völlig anderes als ein kleineres Modell mit weniger Parametern.

8B Q4 und 4B FP16 sind unterschiedliche Dinge

Beispiel:

Modell A
8 Milliarden Parameter
4-Bit-quantisiert

gegen:

Modell B
4 Milliarden Parameter
16 Bit

Beide könnten eine ähnliche Speichergröße besitzen.

Aber:

Modell A besitzt weiterhin eine Architektur mit ungefähr acht Milliarden Parametern.

Modell B nur ungefähr vier Milliarden.

Welche Variante qualitativ besser ist, lässt sich nicht allein aus dem Speicherbedarf ableiten.

Quantisierung und Modellverkleinerung sind deshalb nicht identisch

Quantisierung:

gleiche Modellarchitektur
↓
weniger präzise Zahlenrepräsentation

Kleineres Modell:

weniger Parameter
↓
andere Modellkapazität

Das sollte man bei Modellvergleichen sauber auseinanderhalten.

Was ist Quantization-Aware Training?

Eine weitere Möglichkeit besteht darin, das Modell bereits während des Trainings auf die spätere Quantisierung vorzubereiten.

Das nennt man:

Quantization-Aware Training, kurz QAT.

Vereinfacht:

Training
↓
Quantisierungseffekte werden simuliert
↓
Modell lernt damit umzugehen

Das kann hohe Qualität bei niedriger Präzision ermöglichen.

Ist aber deutlich aufwendiger als reine Post-Training Quantization.

Für lokale Anwender ist PTQ häufiger relevant

Wenn du ein fertiges Open-Weight-Modell herunterladen möchtest, willst du normalerweise nicht:

das gesamte Grundmodell neu trainieren.

Du verwendest:

eine vorhandene Quantisierung

oder:

quantisierst selbst ein bereits trainiertes Modell.

Genau dafür existieren Werkzeuge wie llama-quantize, das hochpräzise GGUF-Modelle beispielsweise in verschiedene quantisierte Formate umwandeln kann. (GitHub)

Was ist Calibration?

Einige Quantisierungsverfahren verwenden Beispieldaten, um herauszufinden:

Welche Gewichtsteile sind empfindlich?

Welche Wertebereiche treten typischerweise auf?

Wie sollten Quantisierungsgrenzen gewählt werden?

Diese Beispieldaten nennt man häufig:

Calibration Dataset.

Kalibrierung ist kein neues Modelltraining

Das Modell lernt normalerweise nicht im klassischen Sinne eine neue Aufgabe.

Die Kalibrierungsdaten helfen dem Quantisierungsverfahren lediglich dabei, die Kompression besser auf das tatsächliche Modellverhalten abzustimmen.

Modell
+
repräsentative Beispiele
↓
Quantisierungsanalyse
↓
bessere Quantisierung

Gute Kalibrierungsdaten sollten repräsentativ sein

Wenn das Modell hauptsächlich:

deutsche Fachtexte

verarbeiten soll, kann es sinnvoll sein, bei empfindlichen Quantisierungsverfahren Daten zu verwenden, die diesem Einsatz halbwegs entsprechen.

Nicht unbedingt ausschließlich:

zufällige mathematische Formeln.

Wie stark dies nötig ist, hängt allerdings vom konkreten Verfahren ab.

Was ist eine Importance Matrix?

Im llama.cpp-Ökosystem gibt es beispielsweise eine sogenannte Importance Matrix, oft kurz imatrix.

Sie enthält Informationen darüber, welche Modellgewichte beziehungsweise Aktivierungsmuster während repräsentativer Eingaben besonders relevant sind.

Diese Informationen können bei der Quantisierung genutzt werden, um Fehler an wichtigen Stellen stärker zu vermeiden. Die aktuelle llama.cpp-Quantisierungsimplementierung unterstützt eine solche Importance Matrix ausdrücklich. (GitHub)

Das Grundprinzip ist wichtiger als der konkrete Name

nicht jedes Gewicht gleich behandeln

sondern:

wichtige Bereiche
→ vorsichtiger quantisieren

Das ist ein wiederkehrendes Prinzip moderner Quantisierung.

Was ist GPTQ?

GPTQ ist ein bekanntes Post-Training-Quantisierungsverfahren für große Transformermodelle.

Es versucht, Quantisierungsfehler beim Komprimieren der Gewichte intelligent zu kompensieren.

Die ursprüngliche GPTQ-Arbeit zeigte, dass sehr große Transformer auf niedrige Bitbreiten wie drei oder vier Bit reduziert werden können, ohne die Qualität zwangsläufig massiv zu zerstören. (arXiv)

GPTQ ist vor allem ein Verfahren, nicht einfach ein Dateiformat

Das ist wichtig.

GPTQ
→ Quantisierungsalgorithmus beziehungsweise Modellrepräsentation

Es ist nicht dasselbe wie:

GGUF

Diese Begriffe begegnen häufig nebeneinander, erfüllen aber unterschiedliche Rollen.

Was ist AWQ?

AWQ steht für:

Activation-aware Weight Quantization.

Die Kernidee lautet:

Nicht alle Gewichte eines Sprachmodells sind gleich wichtig.

Informationen aus den Aktivierungen helfen zu erkennen, welche Gewichte besonders sensibel sind.

Diese können beim Quantisieren besser geschützt werden. Die AWQ-Arbeit verfolgt genau dieses aktivierungsabhängige Weight-Only-Prinzip. (Proceedings MLSys)

GPTQ und AWQ verfolgen dasselbe grobe Ziel

großes Modell
↓
weniger Bits
↓
möglichst wenig Qualitätsverlust

Sie verwenden dafür unterschiedliche mathematische Strategien.

Welche Variante praktisch am besten ist, hängt auch von:

Inference Engine,

GPU,

Modell,

Deployment

ab.

Was ist bitsandbytes?

bitsandbytes ist eine häufig eingesetzte Bibliothek für niedrigpräzise Modellnutzung und Training.

In Kombination mit Hugging Face Transformers kann sie beispielsweise Modelle in:

8 Bit

oder:

4 Bit

laden.

Hugging Face beschreibt die 8-Bit-Variante als Speicherreduktion gegenüber höherpräziser Modellnutzung und die 4-Bit-Variante insbesondere als wichtige Grundlage für QLoRA. (Hugging Face)

Nicht jede Quantisierung ist für dieselbe Laufzeit gedacht

Eine lokale Desktop-Engine verwendet vielleicht:

GGUF.

Ein GPU-Server:

AWQ.

Ein Fine-Tuning-Workflow:

bitsandbytes / NF4.

Darum sollte man nicht fragen:

Was ist das beste Quantisierungsformat?

Sondern:

Für welches Modell, welche Hardware und welche Software?

Was ist GGUF?

GGUF begegnet besonders häufig bei lokalen Sprachmodellen.

Dabei ist wichtig:

GGUF ist zunächst ein Dateiformat.

Es kann enthalten:

Modelltensoren,

Tokenizerinformationen,

Metadaten

und verschiedene quantisierte Datentypen.

Hugging Face beschreibt GGUF als Single-File-Format für Modelle im GGML-/llama.cpp-Ökosystem, das zahlreiche Quantisierungstypen speichern kann. (Hugging Face)

GGUF ist also nicht selbst „die Quantisierung“

Das Modell könnte in einer GGUF-Datei beispielsweise gespeichert sein als:

F32

oder:

BF16

oder:

Q8

oder:

Q4

GGUF ist der Container.

Die Quantisierung beschreibt die konkrete Repräsentation der Tensoren.

Das lässt sich mit Bilddateien vergleichen

Vereinfacht:

JPEG-Datei

ist ein Dateiformat.

Innerhalb dieses Konzepts existieren unterschiedliche Qualitäts- beziehungsweise Kompressionseinstellungen.

GGUF und Quantisierung sind technisch nicht genau dasselbe wie JPEG-Kompression, aber der Vergleich hilft:

Dateiformat
≠
Qualitätsstufe

Warum ist GGUF für lokale KI so beliebt?

Das llama.cpp-Ökosystem ist auf effiziente lokale Inferenz ausgerichtet und kann GGUF-Modelle auf unterschiedlichen Hardwarekonfigurationen ausführen. Das Projekt unterstützt unter anderem CPU- und GPU-Backends und stellt zugleich einen lokalen API-Server bereit. (GitHub)

Damit eignet sich GGUF gut für:

Desktoprechner,

Heimserver,

CPU/GPU-Offloading,

lokale APIs.

Was bedeuten Namen wie Q4_K_M?

Bei GGUF-Modellen findest du häufig Bezeichnungen wie:

Q4_K_M
Q5_K_M
Q6_K
Q8_0

Diese Namen bezeichnen konkrete Quantisierungstypen im llama.cpp-/GGML-Ökosystem.

Die erste Zahl vermittelt ungefähr die Präzisionsklasse.

Aber:

Q4

bedeutet nicht automatisch exakt vier Bit pro Modellparameter.

Das zeigt die reale Speicherrechnung

Für ein von llama.cpp dokumentiertes 8B-Modell liegen die effektiven Größen beispielsweise ungefähr bei:

Q4_K_M
→ knapp 4,9 Bit pro Gewicht
Q5_K_M
→ knapp 5,7 Bit pro Gewicht
Q6_K
→ gut 6,5 Bit pro Gewicht
Q8_0
→ ungefähr 8,5 Bit pro Gewicht

Die zusätzlichen Bruchteile entstehen unter anderem durch die Struktur der jeweiligen Quantisierung und gespeicherte Zusatzinformationen. (GitHub)

Q4_K_M ist also nicht einfach „4 Bit“

Besser wäre das mentale Modell:

Q4_K_M
→ ungefähr 4-Bit-Klasse
→ mit konkretem Block- und Mischschema

Die genaue technische Bedeutung ist implementierungsspezifisch.

Für den normalen Anwender ist wichtiger:

Dateigröße,

Qualität,

Geschwindigkeit

und:

Hardwarekompatibilität.

Was bedeuten S, M und L?

Bei manchen Quantisierungsfamilien begegnen Varianten wie:

S
M
L

Sie können für unterschiedliche Mischungen beziehungsweise Qualitäts- und Größenabstufungen stehen.

Wichtig:

Diese Buchstaben sind keine universellen KI-Standards.

Sie gehören zum jeweiligen Quantisierungsschema.

Man sollte deshalb nicht automatisch erwarten, dass:

M

in einem völlig anderen Format dasselbe bedeutet.

Quantisierungsnamen sind Ökosystem-spezifisch

GGUF Q4_K_M
GPTQ 4-bit
AWQ 4-bit
bitsandbytes NF4

können alle ungefähr im 4-Bit-Bereich arbeiten.

Sie sind trotzdem nicht dieselbe Quantisierung.

Was ist NF4?

NF4, NormalFloat4, wurde im Zusammenhang mit QLoRA eingeführt.

Es ist ein spezielles 4-Bit-Datenformat, das für die Verteilung trainierter neuronaler Netzgewichte ausgelegt wurde.

QLoRA kombiniert ein eingefrorenes 4-Bit-quantisiertes Grundmodell mit trainierbaren LoRA-Adaptern, um Fine-Tuning mit stark reduziertem Speicherbedarf zu ermöglichen. (arXiv)

NF4 ist damit besonders im Fine-Tuning-Kontext bekannt

quantisiertes Basismodell
↓
NF4
↓
LoRA-Adapter trainieren

Das bedeutet nicht automatisch, dass NF4 für jede reine lokale Inferenz die beste Wahl ist.

Wieder entscheidet der Einsatzzweck.

Was ist Double Quantization?

Bei einer Quantisierung müssen zusätzlich:

Skalen,

Quantisierungskonstanten

gespeichert werden.

Auch diese benötigen Speicher.

QLoRA verwendet unter anderem das Konzept der Double Quantization:

Gewichte quantisieren
+
Quantisierungsinformationen
ebenfalls kompakter darstellen

Dadurch lässt sich der Speicherbedarf weiter reduzieren. (arXiv)

Quantisierung kann also selbst quantisiert werden

Das klingt zunächst ungewöhnlich.

Aber logisch:

Wenn Milliarden Gewichte in Gruppen organisiert werden und jede Gruppe zusätzliche Skalierungsinformationen benötigt, summieren sich diese Informationen.

Dann kann es sinnvoll sein, auch sie kompakter darzustellen.

Was bedeutet Mixed Precision?

Nicht jeder Tensor eines Modells muss mit derselben Präzision gespeichert werden.

Zum Beispiel:

großer Teil des Modells
→ 4 Bit

aber:

besonders sensible Gewichte
→ 6 oder 8 Bit

oder:

Output Layer
→ höhere Präzision

Das nennt man vereinfacht eine Mixed-Precision-Strategie.

Dadurch kann Qualität geschützt werden

Vielleicht verursachen:

95 Prozent der Gewichte

bei vier Bit kaum Probleme.

Ein kleiner sensibler Bereich dagegen schon.

Dann ist es verschwenderisch, das gesamte Modell mit acht Bit zu speichern.

Besser:

unempfindliche Bereiche
→ stärker quantisieren
empfindliche Bereiche
→ höhere Präzision

Das ist ein weiterer Grund, warum moderne Quantisierungen besser sein können als eine einfache pauschale Bitreduktion.

llama.cpp verwendet ebenfalls gemischte Tensorstrategien

Die aktuelle Quantisierungsimplementierung erlaubt beispielsweise, bestimmte Tensoren gezielt in anderen Quantisierungstypen zu speichern und einzelne Ausgabetensoren höherpräzise zu belassen. (GitHub)

Damit lässt sich Qualität gezielt schützen, ohne das gesamte Modell größer zu machen.

Warum kann ein Q5-Modell besser sein als Q4?

Weil mehr Präzision erhalten bleibt.

Vereinfacht:

Q4
→ kleiner
→ stärkerer Informationsverlust
Q5
→ etwas größer
→ geringerer Informationsverlust

Aber:

Der Unterschied hängt stark vom Modell ab.

Manchmal ist der Qualitätsunterschied kaum sichtbar

Bei:

alltäglichen Chats,

Zusammenfassungen,

einfachen Texten

kann eine gute 4-Bit-Quantisierung sehr nahe an einer höherpräzisen Variante liegen.

Bei:

schwieriger Logik,

Mathematik,

Code,

mehrsprachigen Aufgaben,

kleinen empfindlichen Modellen

können Unterschiede stärker auffallen.

Deshalb braucht Quantisierung eigene Evals

Nimm nicht einfach die Aussage:

Q4 ist praktisch genauso gut.

Teste:

deine Aufgaben.

Zum Beispiel:

50 reale Supporttickets
50 Dokumentextraktionen
50 Textbriefings

mit:

BF16
Q8
Q6
Q5
Q4

Dann kannst du vergleichen.

Eine einfache Vergleichsmatrix

Qualität
Geschwindigkeit
VRAM
Dateigröße

Für jede Quantisierung.

Nun wird aus Bauchgefühl eine technische Entscheidung.

Perplexity ist eine mögliche Qualitätsmetrik

Bei Sprachmodellen kann man beispielsweise betrachten, wie gut ein Modell Textfolgen vorhersagt.

Eine verbreitete technische Kennzahl dafür ist:

Perplexity.

llama.cpp verwendet bei seinen Quantisierungsanalysen unter anderem Perplexity beziehungsweise Abweichungsmetriken, um den Informationsverlust verschiedener Quantisierungen zu beurteilen. (GitHub)

Perplexity allein beantwortet aber nicht deine Geschäftsfrage

Ein Modell kann eine ausgezeichnete Perplexity besitzen.

Aber vielleicht:

deine Rechnungsdaten falsch extrahieren.

Darum braucht man zusätzlich aufgabenbezogene Tests.

Technischer Benchmark
+
echte Aufgaben

ist wesentlich aussagekräftiger.

Für Klassifikation misst man andere Dinge

Zum Beispiel:

Accuracy
Precision
Recall

pro Kategorie.

Wenn Q4 dieselbe Klassifikationsqualität wie Q8 erreicht:

Warum doppelt so viel Gewichtsspeicher verwenden?

Für strukturierte Ausgaben misst man Formatstabilität

Zum Beispiel:

100 Testfälle

davon:

Q8:
99 gültige JSON-Ausgaben
Q4:
91 gültige JSON-Ausgaben

Dann kann der Unterschied geschäftlich relevant sein.

Selbst wenn beide Modelle in normalen Chats nahezu gleich wirken.

Quantisierung kann Halluzinationen beeinflussen

Eine aggressive Quantisierung verändert das Modell.

Sie kann daher auch:

Argumentation,

Faktenwiedergabe,

Formatverhalten

beeinflussen.

Aber Quantisierung ist nicht die alleinige Ursache von KI-Halluzinationen.

Auch ein hochpräzises Modell kann halluzinieren.

Man sollte Quantisierung nicht für jedes Modell gleich beurteilen

Ein großes Modell besitzt möglicherweise genügend Redundanz, um starke Quantisierung gut zu verkraften.

Ein sehr kleines Modell kann empfindlicher sein.

Oder umgekehrt kann eine bestimmte Architektur besonders quantisierungsfreundlich sein.

Deshalb gibt es keine universelle Regel:

Q4 verliert exakt X Prozent Qualität

Auch einzelne Fähigkeiten können unterschiedlich empfindlich sein

Ein Modell bleibt vielleicht hervorragend bei:

deutscher Alltagssprache.

Aber verliert überproportional bei:

Programmiercode

oder:

Mathematik.

Daher müssen Evals die tatsächlichen Aufgaben repräsentieren.

Re-Quantisierung ist problematisch

Angenommen, du hast bereits:

Q8

und möchtest daraus:

Q4

machen.

Das funktioniert technisch teilweise.

Aber du quantisierst dann bereits angenäherte Werte erneut.

Original
↓
erste Rundung
↓
zweite Rundung

Dabei können sich Fehler verstärken.

llama.cpp warnt bei seiner Re-Quantisierungsoption ausdrücklich, dass erneutes Quantisieren bereits quantisierter Tensoren die Qualität gegenüber einer Quantisierung direkt aus 16- oder 32-Bit-Quellen deutlich stärker verschlechtern kann. (GitHub)

Deshalb möglichst vom hochwertigen Ausgangsmodell quantisieren

Besser:

BF16
↓
Q4

als:

Q8
↓
Q6
↓
Q4

wenn eine hochwertige Ausgangsdatei verfügbar ist.

Das gilt besonders beim Erstellen eigener GGUF-Varianten

Ein sinnvoller Prozess lautet:

Originalmodell
↓
hochwertiges GGUF
↓
gewünschte Quantisierung

Nicht:

irgendeinen vorhandenen Quant
↓
immer weiter verkleinern

Wie wählt man eine Quantisierung praktisch aus?

Die einfachste Frage lautet zunächst:

Wie viel Speicher steht zur Verfügung?

Angenommen, du besitzt:

16 GB VRAM

und möchtest ein Modell mit:

ungefähr 14 Milliarden Parametern

betreiben.

Dann könnte die theoretische Gewichtsschätzung lauten:

FP16
≈ 28 GB
8 Bit
≈ 14 GB
4 Bit
≈ 7 GB

Da noch VRAM für Kontext und Laufzeitdaten benötigt wird, wäre eine geeignete 4- bis 6-Bit-Variante womöglich deutlich komfortabler als 8 Bit.

Zweite Frage: Wie wichtig ist maximale Qualität?

Experiment:

Q4
→ ausreichend gut

Dann:

verwenden.

Wenn:

Q4
→ messbare Probleme

teste:

Q5

und danach:

Q6

Nicht automatisch direkt zur größten Variante springen.

Ein sinnvoller Suchprozess

kleinste plausible Quantisierung
↓
testen
↓
Qualität ausreichend?
├── ja → verwenden
└── nein → nächsthöhere Qualität testen

Damit findest du den kleinsten Speicherbedarf, der deine Qualitätsanforderung erfüllt.

Das ist besser als die größte Variante zu wählen, die gerade noch passt

Denn freier VRAM kann ebenfalls wertvoll sein.

Er kann genutzt werden für:

längeren Kontext
mehr parallele Nutzer
Embeddingmodell
Reranker
größere Batches

Beispiel: Q8 nutzt fast den gesamten VRAM

Modell Q8
→ 15 GB

GPU:

16 GB

Dann bleibt kaum Reserve.

Alternative:

Q5
→ 10 GB

Vielleicht verliert das Modell für deinen Anwendungsfall praktisch kaum Qualität.

Nun bleiben:

6 GB

für:

KV-Cache

und:

weitere Verarbeitung.

Q5 kann dadurch praktisch besser sein, obwohl Q8 numerisch präziser ist.

Die beste Quantisierung ist deshalb systemabhängig

Nicht:

höchste Präzision gewinnt

sondern:

Gesamtsystem funktioniert am besten

Das beinhaltet:

Qualität,

Latenz,

Kontext,

Parallelität,

Kosten.

Ein lokaler Chat hat andere Anforderungen als ein Server

Einzelplatz:

1 Nutzer

Da kann man viel VRAM für maximale Modellqualität reservieren.

Server:

20 Nutzer

Nun kann eine kompaktere Quantisierung mehr parallele Kontexte ermöglichen.

Damit könnte die etwas stärker quantisierte Variante für das Gesamtsystem besser sein.

Batchverarbeitung verändert die Rechnung erneut

Du verarbeitest nachts:

100.000 Texte

Dann zählt:

Durchsatz.

Vielleicht liefert:

Q4

genügend Qualität und deutlich mehr Verarbeitungskapazität.

Ein etwas stärkeres Modell mit Q4 kann eventuell sogar besser sein als ein kleineres Modell in FP16.

Das muss gemessen werden.

Quantisierung und Modellgröße können gegeneinander getauscht werden

Angenommen:

Variante A:

8B
8 Bit

Variante B:

14B
4 Bit

Beide benötigen möglicherweise eine ähnliche Größenordnung an Gewichtsspeicher.

Welche besser ist?

Keine pauschale Antwort.

Das größere, stärker quantisierte Modell kann leistungsfähiger sein.

Oder der Quantisierungsverlust kann bei deiner Aufgabe stärker stören.

Nur ein Test entscheidet.

Genau deshalb ist VRAM allein kein Modellbenchmark

Der Speicherbedarf sagt:

Wie groß ist die Repräsentation?

Nicht:

Wie intelligent ist das Modell?

Quantisierung kann auch Kosten reduzieren

Cloudserver mit:

80-GB-GPU

sind meist teurer als solche mit:

24-GB-GPU

Wenn Quantisierung ein Modell von:

40 GB

auf:

18 GB

reduziert, kann sich die notwendige Hardwareklasse ändern.

Damit wird Quantisierung nicht nur zum technischen, sondern auch zum wirtschaftlichen Werkzeug.

Dasselbe gilt für lokale Hardware

Vielleicht würde ein Modell unquantisiert eine professionelle GPU verlangen.

Quantisiert läuft es auf einer vorhandenen Consumerkarte.

Der Unterschied kann:

tausende Euro

ausmachen.

Quantisierung senkt außerdem Speicherverkehr

Kleinere Gewichte müssen:

von SSD geladen,

in RAM gehalten,

in VRAM übertragen

und während der Inferenz gelesen

werden.

Auch dadurch kann sich das Gesamtsystem verbessern.

Modellladezeiten können sinken

Modelldatei A:

50 GB

Modelldatei B:

12 GB

Beim Laden von SSD und Übertragen in den Speicher ist die kleinere Datei natürlich im Vorteil.

Das fällt besonders auf, wenn Modelle häufig gewechselt werden.

Quantisierung kann mehr Modelle gleichzeitig ermöglichen

GPU:

24 GB

Modell A:

8 GB

Modell B:

5 GB

Embeddingmodell:

1 GB

Nun können mehrere Dienste möglicherweise gleichzeitig resident bleiben.

Ohne Quantisierung würde vielleicht bereits Modell A den gesamten Speicher beanspruchen.

Das ist für einen lokalen KI-Server besonders wertvoll

GPU
├── Chatmodell
├── Embeddings
└── Reranker

oder:

GPU 1
→ großes Modell

GPU 2
→ weitere quantisierte Modelle

Quantisierung wird damit Teil der Infrastrukturplanung.

Auch CPU-Inferenz profitiert

Bei reiner CPU-Inferenz müssen Modellgewichte ebenfalls durch den Speicher bewegt und verarbeitet werden.

Kompaktere Modelle können dadurch:

weniger RAM benötigen

und:

besseren Durchsatz ermöglichen.

Das ist einer der Gründe, warum GGUF-Quantisierungen auch für CPU-basierte lokale KI so verbreitet sind.

Sehr aggressive Quantisierung hat Grenzen

Wenn wir immer weiter reduzieren:

8 Bit
↓
6 Bit
↓
4 Bit
↓
3 Bit
↓
2 Bit

wird irgendwann der Informationsverlust erheblich.

Moderne Verfahren können erstaunlich weit gehen, aber es gibt keinen kostenlosen Weg zu:

0 Bit
+
100 % Qualität

Unter vier Bit wird die Auswahl anspruchsvoller

Es existieren Verfahren im Bereich:

3 Bit
2 Bit

und sogar darunter.

llama.cpp unterstützt heute ebenfalls Quantisierungsklassen in diesem Bereich. Seine eigenen Tabellen zeigen jedoch deutlich, dass niedrige Bitklassen nicht einfach linear mit Qualität oder Geschwindigkeit skalieren. (GitHub)

Für allgemeine lokale Nutzung sind solche extremen Quantisierungen daher eher etwas, das gezielt getestet werden sollte.

2 Bit kann für ein großes Modell trotzdem interessant sein

Angenommen:

ein sehr großes Modell passt sonst überhaupt nicht auf deine Hardware.

Dann lautet die Entscheidung vielleicht:

großes Modell
stark quantisiert

gegen:

kleines Modell
weniger quantisiert

Welche Variante besser ist, kann wiederum nur der reale Anwendungsfall zeigen.

Nicht jede Quantisierung ist auf jeder GPU gleich schnell

Manche GPUs besitzen besonders gute Hardwareunterstützung für:

FP16,

BF16,

INT8

oder bestimmte andere Datentypen.

Eine exotische Quantisierung kann theoretisch extrem kompakt sein, aber schlechter optimierte Kernel besitzen.

Deshalb sollte man bei Serverdeployments immer prüfen:

Hardware
+
Runtime
+
Quantisierung

als Kombination.

Ein Modellformat kann die Hardwarewahl beeinflussen

Wenn dein gesamter Stack:

llama.cpp
+
GGUF

ist, hast du andere optimale Varianten als bei einem Stack mit:

PyTorch
+
Transformers
+
bitsandbytes

oder einem spezialisierten GPU-Serving-System.

Nicht jedes Format ist überall gleich gut unterstützt.

Darum zuerst die Laufzeitumgebung bestimmen

Für einen Heim-PC:

einfaches lokales Serving

kann GGUF hervorragend passen.

Für:

hochparalleles GPU-Serving

kann ein anderes Format attraktiver sein.

Für:

QLoRA-Training

wieder ein anderes.

Quantisierung ist kein isolierter Dateidownload.

Sie gehört zur gesamten Softwarearchitektur.

Was ist Dynamic Quantization?

Bei bestimmten Verfahren wird Quantisierung teilweise während des Ladens oder während der Ausführung vorgenommen.

hochpräzises Modell
↓
Runtime
↓
quantisierte Darstellung

Das kann sehr bequem sein.

Der Nachteil:

Der Quantisierungsschritt muss gegebenenfalls beim Laden durchgeführt werden und die genaue Performance hängt vom Framework ab.

Was ist statische Quantisierung?

Ein Modell wird vorher quantisiert.

Original
↓
Quantisierungsprozess
↓
fertiges quantisiertes Modell

Danach wird genau diese Variante verteilt.

GGUF-Modelle sind häufig bereits in der gewünschten Quantisierung gespeichert.

Vorgerechnete Quantisierung hat Vorteile

einmal quantisieren
↓
viele Male laden

Statt bei jedem Serverstart erneut Arbeit zu investieren.

Außerdem lässt sich genau diese Datei:

testen,

versionieren,

archivieren.

Für produktive Systeme sollte die Quantisierung dokumentiert werden

Nicht nur:

Modell:
XYZ

sondern:

Modell:
XYZ

Version:
...

Quantisierung:
Q5_K_M

Kontext:
...

Engine:
...

Denn dieselbe Modellfamilie kann je nach Quantisierung ein deutlich anderes Verhalten zeigen.

Quantisierung gehört zur Modellversion

Praktisch betrachtet sind:

Modell X BF16

und:

Modell X Q4

nicht vollständig austauschbare Produktionsartefakte.

Sie sollten separat evaluiert werden.

Ein Modellwechsel kann dadurch sehr klein aussehen

Dateiname vorher:

model-Q5.gguf

nachher:

model-Q4.gguf

Aber daraus können folgen:

anderer VRAM-Bedarf,

andere Geschwindigkeit,

andere Qualität.

Deshalb sollte auch ein Quantisierungswechsel durch Tests gehen.

Ein guter Produktionsprozess

neue Quantisierung
↓
Testset
↓
Qualitätsvergleich
↓
Performancevergleich
↓
Shadow Test
↓
Produktionsfreigabe

Dasselbe Prinzip wie bei einem neuen Modell.

Quantisierung kann für unterschiedliche Aufgaben unterschiedlich gewählt werden

Ein Server könnte sogar dasselbe Grundmodell mehrfach halten.

Q4
→ Batchklassifikation
Q6
→ hochwertige Textgenerierung

Der Workflow entscheidet je nach Aufgabe.

Ob das sinnvoll ist, hängt davon ab, ob genug Speicher für mehrere Varianten vorhanden ist.

Modellrouting und Quantisierung können zusammenspielen

Zum Beispiel:

einfache Aufgabe
↓
kleines Modell Q4
mittlere Aufgabe
↓
größeres Modell Q4
anspruchsvolle Aufgabe
↓
größeres Modell Q6

Damit wird nicht nur zwischen Modellen, sondern zwischen Qualitätsstufen geroutet.

Für RAG muss nicht automatisch höchste Präzision verwendet werden

Ein gutes RAG-System liefert dem Modell hochwertige relevante Quellen.

Dadurch kann ein mittelgroßes quantisiertes Modell bei bestimmten Wissensfragen hervorragend funktionieren.

Die Qualität des Retrievals kann wichtiger sein als der Unterschied zwischen:

Q5

und:

Q8

Das muss allerdings mit realen Fragen geprüft werden.

Embeddingmodelle können ebenfalls quantisiert werden

Auch Embeddings werden von neuronalen Modellen erzeugt.

Diese Modelle können ebenfalls von niedrigeren Präzisionen profitieren.

Dabei sollte aber besonders getestet werden:

Verändert sich die Qualität der semantischen Suche?

Denn kleine Änderungen in Embeddings können Rankings beeinflussen.

Reranker ebenso

Ein Reranker bewertet:

Query
+
Dokument

und sortiert Suchergebnisse.

Wenn eine Quantisierung dessen Rankingqualität verschlechtert, kann die gesamte RAG-Pipeline schlechter werden.

Deshalb gilt wiederum:

Optimierung nicht isoliert betrachten.

Fine-Tuning und Quantisierung lösen unterschiedliche Probleme

Quantisierung:

Wie speichere und betreibe ich
das Modell effizienter?

Fine-Tuning:

Wie verändere ich
das Verhalten des Modells?

Man kann beide kombinieren.

Aber eine Quantisierung macht ein Modell nicht automatisch fachlich besser.

Quantisierung repariert keinen schlechten Prompt

Prompt schlecht.

Modell antwortet schlecht.

Q8 statt Q4:

vielleicht weiterhin schlecht.

Zuerst:

Aufgabe,

Prompt,

Kontext,

Retrieval

prüfen.

Nicht jedes Qualitätsproblem ist ein Präzisionsproblem.

Quantisierung repariert auch keine fehlenden Fakten

Ein Modell kennt eine Information nicht.

Dann hilft:

Q8

statt:

Q4

nicht zwingend.

Vielleicht brauchst du:

RAG

oder:

API.

Quantisierung ist Speicheroptimierung, kein Wissensupdate.

Ebenso wenig beseitigt sie Halluzinationen

Ein nicht quantisiertes Modell kann halluzinieren.

Ein quantisiertes ebenfalls.

Die KI-Halluzinationen müssen über:

Quellen,

Validierung,

RAG,

Systemarchitektur

behandelt werden.

Wann sollte man möglichst hohe Präzision verwenden?

Zum Beispiel beim:

Erstellen einer Referenzbaseline.

Wenn du prüfen möchtest:

Wie gut kann dieses Modell maximal auf meiner Aufgabe sein?

Dann ist eine hochwertige Variante sinnvoll.

Baseline
↓
BF16 / hohe Qualität

Danach:

Q8
Q6
Q5
Q4

vergleichen.

Ohne Baseline weißt du nicht, was Quantisierung kostet

Angenommen Q4 erzielt:

86 % Genauigkeit

Ist das gut?

Vielleicht erreicht das Original:

87 %

Dann hervorragend.

Vielleicht erreicht es:

98 %

Dann ist der Quantisierungsverlust problematisch.

Man braucht einen Referenzwert.

Der richtige Test lautet deshalb nicht

Funktioniert Q4?

Sondern:

Wie viel verliere ich gegenüber meiner Qualitätsbaseline – und ist dieser Verlust für die Speicherersparnis akzeptabel?

Das ist eine wesentlich bessere Frage.

Quantisierung sollte am End-to-End-Ergebnis gemessen werden

Bei einem Contentworkflow könnte die relevante Frage sein:

Wie viele Texte bestehen die
redaktionelle Qualitätsprüfung?

Nicht nur:

Wie hoch ist die Perplexity?

Bei einem Supportsystem:

Wie viele Tickets werden
richtig klassifiziert?

Bei RAG:

Wie häufig wird die Frage
korrekt und quellenbasiert beantwortet?

Ein praktischer Quantisierungstest

Nehmen wir beispielsweise 100 repräsentative Aufgaben.

Referenz:

BF16

Dann:

Q8
Q6
Q5
Q4

Für jede Variante messen:

Aufgabenqualität

Formatfehler

Halluzinationen

Tokens pro Sekunde

VRAM

Modellgröße

Nun entsteht eine Entscheidungsgrundlage.

Die Ergebnisse könnten beispielsweise so aussehen

Nur als hypothetisches Beispiel:

BF16
Qualität: 100 %
VRAM: hoch
Q8
Qualität: 99,8 %
VRAM: deutlich geringer
Q6
Qualität: 99,5 %
VRAM: geringer
Q5
Qualität: 99 %
VRAM: nochmals geringer
Q4
Qualität: 97 %
VRAM: sehr gering

Wenn deine Mindestanforderung:

98 %

lautet, wäre Q5 vielleicht der beste Kompromiss.

Nicht BF16.

Nicht Q4.

Genau darin liegt die Idee des Sweet Spots

möglichst klein

aber:

noch ausreichend gut

Der Sweet Spot hängt vom konkreten Einsatz ab.

Für interaktive Experimente kann man aggressiver sein

Du möchtest:

lokale Modelle ausprobieren.

Dann ist ein Q4-Modell vielleicht perfekt.

Kleine Datei.

Schnell geladen.

Passt auf vorhandene GPU.

Ein kleiner Qualitätsverlust spielt kaum eine Rolle.

Für kritische Extraktion kann man konservativer sein

Beispiel:

Vertragsdaten.

Beträge.

Fristen.

Wenn ein Quantisierungsschritt messbar mehr Fehler verursacht:

höhere Präzision verwenden.

Oder:

das Ergebnis durch deterministische Validierung absichern.

Für Massendaten kann Speicherersparnis enorm wichtig sein

Du klassifizierst:

Millionen Datensätze.

Ein Q4-Modell erreicht fast dieselbe Qualität, aber wesentlich mehr Durchsatz.

Dann kann es wirtschaftlich klar überlegen sein.

Quantisierung ist damit eine wirtschaftliche Stellschraube

mehr Präzision
→ mehr Hardware

gegen:

mehr Quantisierung
→ weniger Hardware

bis die Qualität unter deine Grenze fällt.

Ein lokaler KI-Server sollte mehrere Größenordnungen kennen

Nicht zwangsläufig jede Quantisierung installieren.

Aber sinnvoll dokumentieren:

Standard:
Q5
High Quality:
Q8
Low Resource:
Q4

Dann können Workflows gezielt entscheiden.

Manche Modelle werden bereits speziell quantisiert veröffentlicht

Dann brauchst du nicht selbst quantisieren.

Das ist bequem.

Trotzdem sollte geprüft werden:

Wer hat die Datei erstellt?

Von welchem Original?

Mit welcher Methode?

Welche Lizenz?

Welche Checksums beziehungsweise Herkunft?

Lokale Modelldateien sind ausführbarer beziehungsweise von Software geladener Datenbestand und sollten aus vertrauenswürdigen Quellen stammen.

Quantisierte Modelle sind nicht automatisch sicher

Quantisierung betrifft:

numerische Repräsentation.

Nicht:

Modellsicherheit.

Ein Q4-Modell kann genauso:

gefährliche Inhalte erzeugen,

Prompt Injection verarbeiten,

falsche Toolaufrufe vorschlagen

wie eine andere Modellvariante.

Sicherheitsarchitektur bleibt separat notwendig.

Bei Agenten gilt das besonders

Ein KI-Agent mit stark quantisiertem Modell könnte eventuell häufiger:

Tool falsch auswählen,

Argumente verwechseln,

Instruktionen missverstehen.

Wenn das bei deinem Modell tatsächlich messbar ist, kann eine höhere Präzision für den Agenten sinnvoll sein.

Aber auch ein unquantisiertes Modell darf nicht unbegrenzt handeln.

Agentensicherheit darf nicht von Quantisierung abhängen

Agent
↓
Tool
↓
Berechtigungsprüfung
↓
Business Rules
↓
eventuell Human Approval

Diese Kontrollschichten bleiben identisch.

Quantisierung beeinflusst auch den Modellserver

Kleineres Modell:

weniger VRAM

Dadurch vielleicht:

mehr parallele Requests

oder:

mehr KV-Cache

oder:

zweite Modellinstanz

Damit kann dieselbe Hardware mehr Nutzer bedienen.

Ein Server kann dadurch horizontal weniger Hardware benötigen

Beispiel:

Unquantisiert braucht jede Modellinstanz:

40 GB

Quantisiert:

15 GB

Nun könnten auf einer entsprechend großen GPU möglicherweise mehrere Instanzen beziehungsweise größere Servingreserven möglich werden.

Das kann Infrastrukturkosten massiv verändern.

Quantisierung kann aber GPU-Auslastung verändern

Kleinere Gewichte reduzieren Speicherverkehr.

Gleichzeitig können bestimmte Quantisierungs-Kernel mehr Rechenoperationen benötigen.

Ob eine GPU danach:

schneller

oder:

langsamer

läuft, hängt von ihrem Flaschenhals ab.

Deshalb:

Benchmark.

Was ist die beste Quantisierung für lokale KI?

Es gibt keine allgemeingültige Antwort.

Für viele Anwender ist die sinnvollste Denkweise:

Q4
→ erste kompakte Testvariante
Q5 / Q6
→ mögliche Qualitäts-/Größenkompromisse
Q8
→ hohe Präzision bei weiterhin reduziertem Speicher
BF16 / FP16
→ hochwertige Referenz,
wenn Hardware ausreichend

Das ist bewusst keine starre Empfehlung für jedes Modell.

Moderne Q4-Varianten sind häufig ein guter Startpunkt

Nicht weil:

vier Bit magisch optimal wären.

Sondern weil sie:

erhebliche Speicherersparnis

mit oft noch brauchbarer bis sehr guter Modellqualität

kombinieren.

Welche Q4-Variante sinnvoll ist, hängt vom konkreten Ökosystem ab.

Wenn Q4 schlecht funktioniert, nicht sofort Modell verwerfen

Teste zuerst:

Q5

oder:

Q6

Vielleicht liegt das Qualitätsproblem nur an einer zu aggressiven Quantisierung.

Wenn Q8 ebenfalls schlecht ist, liegt es wahrscheinlich eher am Modell

Dann bringt:

noch mehr Präzision

möglicherweise wenig.

Vielleicht ist das Grundmodell für die Aufgabe ungeeignet.

Das ist ein wichtiger Diagnoseweg.

Ein hilfreicher Testbaum

Modell grundsätzlich gut?
│
├── nein
│   → anderes Modell
│
└── ja
    ↓
Q4 testen
│
├── ausreichend
│   → verwenden
│
└── nicht ausreichend
    ↓
Q5 / Q6 testen
    ↓
immer noch nicht ausreichend?
    ↓
Q8 / hohe Präzision vergleichen

Damit trennt man:

Modellproblem

von:

Quantisierungsproblem.

Speicherberechnung bleibt trotzdem nur eine Näherung

Angenommen:

32B
×
4 Bit
÷
8
=
16 GB

Das heißt nicht:

Eine 16-GB-GPU reicht.

Denn wir wissen aus dem Artikel über VRAM:

Gewichte
+
Quantisierungsoverhead
+
KV-Cache
+
Runtime
+
Reserve

müssen gemeinsam hineinpassen.

Ein reales Q4 kann eher fünf als vier Bit pro Gewicht benötigen

Wie bereits erwähnt, liegen konkrete GGUF-Quantisierungen durch zusätzliche Blockinformationen über der nominalen Bitbreite. Die aktuelle llama.cpp-Tabelle zeigt für Q4_K_M beim dort getesteten Modell rund 4,9 Bit pro Gewicht. (GitHub)

Die Überschlagsformel ist daher nur:

erste Größenordnung

nicht:

exakte Kaufentscheidung

Der Dateidownload liefert einen besseren Anhaltspunkt

Wenn die konkrete Modelldatei:

18 GB

groß ist, weißt du:

Die Gewichte und zugehörigen Quantisierungsinformationen liegen ungefähr in dieser Größenordnung.

Trotzdem braucht die Runtime zusätzlich Speicher.

Deshalb Modell tatsächlich laden

Die beste Methode bleibt:

gewünschte Modelldatei
↓
gewünschte Engine
↓
gewünschter Kontext
↓
VRAM messen

Keine theoretische Formel ist genauer als dein reales System.

Beim Modellserver zusätzlich Parallelität testen

1 Request
↓
VRAM

dann:

2 Requests
↓
VRAM

dann:

realistische Anzahl paralleler Nutzer
↓
VRAM

Erst dann weißt du, ob die Konfiguration produktionsgeeignet ist.

Quantisierung und Kontext sollten gemeinsam optimiert werden

Du hast zwei Möglichkeiten:

Q8
+
kleiner Kontext

oder:

Q5
+
großer Kontext

Welche besser ist?

Für einen Chat über lange Dokumente könnte:

mehr Kontext

wichtiger sein als die zusätzliche Gewichtpräzision.

Für kurze komplexe Mathematik könnte:

höhere Modellpräzision

wichtiger sein.

Wieder entscheidet der Workload.

Quantisierung und Parallelität konkurrieren ebenfalls um VRAM

Ein:

Q8-Modell

kann vielleicht:

einen Nutzer

bedienen.

Dasselbe Modell in Q4:

vielleicht:

mehrere gleichzeitig.

Dann ist die etwas niedrigere Präzision wirtschaftlich möglicherweise klar sinnvoller.

Quantisierung macht lokale KI überhaupt erst flexibel

Ohne Quantisierung wäre Hardwarewahl häufig binär:

Modell passt
oder
Modell passt nicht

Mit Quantisierung entsteht ein Spektrum:

mehr Qualität
↔
weniger Speicher

und damit viele sinnvolle Kompromisse.

Was du dir über Quantisierung merken solltest

Quantisierung reduziert die numerische Präzision eines KI-Modells, um Speicherbedarf und häufig auch den Rechenaufwand beziehungsweise Speicherverkehr zu verringern. Moderne Frameworks verwenden dafür unterschiedliche Verfahren von 8 und 4 Bit bis hin zu noch niedrigeren Präzisionen. (Hugging Face)

Ein Sprachmodell besteht aus Milliarden Parametern.

Der theoretische Gewichtsspeicher lässt sich grob abschätzen über:

Parameter
×
Bits
÷
8

Ein Modell mit zehn Milliarden Parametern benötigt damit theoretisch ungefähr:

FP32
→ 40 GB
FP16 / BF16
→ 20 GB
8 Bit
→ 10 GB
4 Bit
→ 5 GB

Das sind lediglich Größenordnungen für die Gewichte.

Der reale VRAM-Bedarf ist höher beziehungsweise komplexer, weil zusätzlich:

Quantisierungsmetadaten

KV-Cache

temporäre Daten

Runtime

Parallelität

Speicher benötigen.

Ein Q4-Modell besitzt zudem nicht zwangsläufig exakt vier Bit pro Gewicht. Blockskalen und andere Zusatzinformationen erhöhen den effektiven Speicherbedarf; konkrete llama.cpp-Quantisierungen zeigen diesen Unterschied deutlich. (GitHub)

Quantisierung bedeutet:

Originalwert
↓
kompaktere Näherung

Dabei entsteht:

Quantisierungsfehler

Moderne Verfahren versuchen diesen Fehler intelligent zu minimieren.

Manche berücksichtigen beispielsweise besonders empfindliche Gewichtsteile.

AWQ nutzt Aktivierungsinformationen, um wichtige Gewichte bei niedriger Bitbreite besser zu schützen. (Proceedings MLSys)

GPTQ verwendet wiederum ein anderes Post-Training-Verfahren zur möglichst genauen Kompression großer Transformermodelle. (arXiv)

GGUF sollte dabei nicht mit einer Quantisierungsmethode verwechselt werden.

GGUF
→ Dateiformat

innerhalb dessen unterschiedliche:

F32
BF16
Q8
Q6
Q5
Q4
...

Tensorrepräsentationen gespeichert werden können. (Hugging Face)

Auch:

Q4_K_M
GPTQ 4-bit
AWQ 4-bit
NF4

sind nicht automatisch dasselbe.

Sie gehören zu unterschiedlichen Quantisierungsverfahren beziehungsweise Softwareökosystemen.

Für Fine-Tuning ist insbesondere QLoRA interessant.

4-Bit-Basismodell
↓
eingefroren
↓
LoRA-Adapter trainieren

Dadurch kann der Speicherbedarf gegenüber vollständigem Fine-Tuning massiv reduziert werden. (arXiv)

Quantisierung hat vor allem vier mögliche Vorteile:

kleinere Modelldatei

weniger RAM

weniger VRAM

potenziell höhere Inferenzgeschwindigkeit

Der letzte Punkt ist allerdings nicht garantiert.

weniger Bits
≠
automatisch schneller

Die Geschwindigkeit hängt von:

Hardware,

Kernel,

Engine,

Speicherbandbreite,

Quantisierung

ab.

Deshalb sollte man immer messen.

Die zentrale praktische Strategie lautet:

hochwertige Referenz
↓
Q8
↓
Q6
↓
Q5
↓
Q4
↓
Qualität vergleichen

Das Ziel ist nicht:

die kleinste Datei.

Und auch nicht:

die höchstmögliche Präzision.

Das Ziel ist:

die kleinste Variante, die deine Qualitätsanforderungen zuverlässig erfüllt.

Genau dieser Punkt ist bei lokaler KI entscheidend.

Denn jeder eingesparte Gigabyte VRAM kann anschließend genutzt werden für:

größeres Modell

mehr Kontext

mehr parallele Nutzer

weitere KI-Modelle

Damit wird Quantisierung nicht nur zu einem Kompressionsverfahren.

Sie ist ein zentraler Bestandteil der Architektur und Wirtschaftlichkeit lokaler KI.