← Zurück zur Bibliothek
KI-Konzepte Anbieter: KI-Forschungsgemeinschaft

Quantisierung (Modellkompression)

Quantisierung ist die ermöglichende Technologie, die das Deployment großer Sprachmodelle demokratisierte und Modelle, die $100K+ Server-Cluster erforderten, in Anwendungen transformierte, die auf $500 Consumer-GPUs oder sogar Smartphones laufen. Die Kerntechnik reduziert numerische Präzision von Modellgewichten und Aktivierungen von 32-Bit Fließkommazahlen (FP32, 4 Bytes pro Parameter) auf 8-Bit-Integer (INT8, 1 Byte) oder sogar 4-Bit-Repräsentationen (0,5 Bytes) und erreicht 4-8x Speicherreduktion mit typischerweise <2% Genauigkeitsdegradation. Ein 70B-Parameter-Modell, das 280GB in FP32 benötigt, schrumpft auf 35GB in 4-Bit-Quantisierung und passt komfortabel auf eine einzelne NVIDIA A100 (80GB) oder sogar Consumer-RTX 4090 (24GB). Die Quantisierungslandschaft hat sich schnell entwickelt: Frühe Methoden wie Post-Training-Quantisierung (PTQ) rundeten Gewichte einfach nach dem Training, während moderne Ansätze wie GPTQ und AWQ Kalibrierungsdatensätze verwenden, um optimale Quantisierungsskalen zu finden und 99%+ der ursprünglichen Modellqualität zu bewahren. Stand Oktober 2025 umfassen Quantisierungsformate GGUF (CPU-optimiert, llama.cpp-Ökosystem), GPTQ (GPU-optimiert, AutoGPTQ), AWQ (aktivierungsbewusst, schnellere Inferenz) und NF4 (4-Bit NormalFloat verwendet in QLoRA). Die Technik ist für Edge-Deployment unverzichtbar geworden, wobei Qualcomms Snapdragon und Apples M4-Chips dedizierte Neural Engines für effiziente INT8/INT4-Operationen aufweisen.

Quantisierung (Modellkompression)
ki-konzepte modellkompression optimierung edge-deployment inferenz effizienz

Überblick

Quantisierung adressiert die fundamentale Spannung in moderner KI zwischen Modellfähigkeit und rechnerischer Praktikabilität. Transformer-Modelle erreichen ihre beeindruckende Leistung durch Milliarden von Parametern, die jeweils als 32-Bit-Fließkommazahl gespeichert sind. Ein 7B-Parameter-Modell verbraucht 28GB Speicher (7B × 4 Bytes) nur für Gewichte, exklusive Aktivierungen, Gradienten und Optimizer-States, die während des Trainings benötigt werden. Quantisierung komprimiert diese Repräsentationen durch Abbildung kontinuierlicher Float-Werte auf diskrete Integer-Buckets. Der einfachste Ansatz, symmetrische Quantisierung, bildet FP32-Werte im Bereich [-α, α] auf INT8-Werte [-127, 127] ab, wobei α der maximale absolute Gewichtswert ist. Jedes Gewicht W_q = round(W / α × 127), und während der Inferenz W ≈ W_q × α / 127. Diese 4x-Kompression kommt mit Quantisierungsfehler, aber Transformer-Modelle zeigen bemerkenswerte Robustheit: redundante Parameter und Aufmerksamkeitsmechanismen bieten natürliche Fehlerresilienz.

Das Quantisierungs-Ökosystem hat sich zu unterschiedlichen Formaten ausgereift, die für verschiedene Deployment-Szenarien optimiert sind. GGUF (GPT-Generated Unified Format) zielt auf CPU- und Apple Silicon-Deployment mit Mixed-Precision-Quantisierung (Q4_K_M, Q5_K_M-Varianten) und optimiertem Memory-Layout ab und ermöglicht llama.cpps Fähigkeit, 70B-Modelle auf MacBooks laufen zu lassen. GPTQ (GPU Post-Training Quantization) verwendet fortgeschrittene Kalibrierung mit Hessian-basierter Wichtigkeitsgewichtung, um 4-Bit-Kompression mit <1% Perplexitätsanstieg zu erreichen, ideal für GPU-Inferenz mit AutoGPTQ- und ExLlama2-Backends. AWQ (Activation-aware Weight Quantization) schützt die 1% wichtigsten Gewichte, die durch Aktivierungsverteilungen identifiziert werden, und liefert 20-30% schnellere Inferenz als GPTQ mit vergleichbarer Qualität. NF4 (4-Bit NormalFloat), entwickelt für QLoRA, nimmt an, dass Gewichte einer Normalverteilung folgen, und quantisiert mit nicht-uniformen Buckets, die mit dieser Verteilung übereinstimmen. Die Wahl zwischen Formaten beinhaltet Kompromisse: GGUF maximiert CPU-Kompatibilität, GPTQ priorisiert GPU-Speichereffizienz, AWQ optimiert Inferenz-Geschwindigkeit und NF4 ermöglicht Training auf quantisierten Modellen.

Kernkonzepte

  • Präzisionsreduktion: Konvertierung float32 (4 Bytes) → int8 (1 Byte) → int4 (0,5 Bytes) für 4-8x Kompression
  • Quantisierungsgranularität: Per-Tensor (gesamte Schicht), Per-Channel (jede Output-Dimension) oder Per-Group (128 Gewichte)
  • Symmetrisch vs. asymmetrisch: Symmetrische Quantisierung bildet auf [-127, 127] ab, asymmetrisch erlaubt Offset für unsigned Bereiche
  • Kalibrierung: Verwendung repräsentativer Daten zur Bestimmung optimaler Quantisierungsskalen und Zero-Points
  • Mixed Precision: Beibehaltung sensitiver Schichten (Embeddings, erste/letzte Schichten) in höherer Präzision
  • Quantization-aware Training (QAT): Training mit Quantisierung in der Schleife, um Gewichte für niedrigere Präzision anzupassen
  • Post-Training-Quantisierung (PTQ): Quantisierung nach dem Training ohne Gewichtsaktualisierungen, schneller aber potenziell niedrigere Qualität
  • Dynamische vs. statische Quantisierung: Berechnung von Skalen zur Inferenzzeit (dynamisch) versus Vorberechnung (statisch)

Funktionsweise

Post-Training-Quantisierung, der häufigste Ansatz, verläuft in drei Schritten: (1) Kalibrierung—Durchlauf repräsentativer Daten durch das Modell zum Sammeln von Aktivierungsstatistiken und Gewichtsverteilungen; (2) Skalenberechnung—Bestimmung von Quantisierungsparametern (Skalierungsfaktor S und Zero-Point Z), die Quantisierungsfehler minimieren, oft unter Verwendung von Min-Max-Bereichen oder Perzentil-basiertem Clipping; (3) Gewichtstransformation—Konvertierung von Fließkommagewichten zu Integern: W_q = round(W/S + Z). Während der Inferenz geschieht Dequantisierung just-in-time vor Matrixmultiplikationen: W ≈ (W_q - Z) × S. Fortgeschrittene Methoden wie GPTQ verbessern dies durch Verwendung der Hessian-Matrix (zweite Ableitung des Verlusts), um Gewichte zu identifizieren, die am empfindlichsten auf Quantisierung reagieren, und sie mit höherer Präzision zu schützen. AWQ verfolgt einen anderen Ansatz: Analyse von Aktivierungsmagnitudes über Kalibrierungsdaten, um die 1% der Gewichte mit höchstem Aktivierungsimpakt zu finden, dann Verwendung von Mixed Precision, um diese kritischen Gewichte bei 8-Bit zu bewahren, während der Rest auf 4-Bit quantisiert wird. Quantization-aware Training geht weiter, indem es Fake-Quantisierungsoperationen während des Trainings injiziert, wodurch Gradienten durch Quantisierung fließen können und Gewichte angepasst werden, um in niedriger Präzision besser zu performen.

Anwendungsfälle

  • Edge-Deployment: LLMs auf Smartphones, Raspberry Pi und eingebetteten Geräten laufen lassen
  • Consumer-Hardware-Inferenz: Ermöglichung von 70B-Modellen auf RTX 4090 (24GB) statt A100 (80GB) zu benötigen
  • Kostenoptimierung: Reduktion von Cloud-Inferenz-Kosten durch Unterbringung mehr Anfragen pro GPU
  • Latenzreduktion: Schnellere Matrixmultiplikation mit INT8-Operationen auf Tensor Cores
  • On-Device KI: Datenschutzschonende Inferenz ohne Cloud-API-Aufrufe (Apple Intelligence, Android AI)
  • Multi-Modell-Serving: Laden mehrerer quantisierter Modelle im selben GPU-Speicher-Budget
  • Fine-Tuning auf Consumer-Hardware: QLoRA ermöglicht Training von 65B-Modellen auf einzelner 24GB GPU
  • Echtzeit-Anwendungen: Niedrigere Latenz für Chatbots, Code-Vervollständigung und Content-Generierung
  • IoT und Robotik: KI-Fähigkeiten auf beschränkten Hardware-Plattformen
  • Offline-Anwendungen: Vollständige KI-Systeme ohne Internet-Konnektivitätsanforderungen

Technische Implementierung

Die Implementierung von Quantisierung erfordert Auswahl von Format, Präzisionsniveau und Tooling basierend auf Deployment-Ziel. Für CPU/Apple Silicon-Deployment bietet GGUF via llama.cpp die beste Erfahrung: Q4_K_M balanciert Qualität und Größe (4,5 Bits pro Gewicht durchschnittlich), Q5_K_M fügt Qualität für 15% mehr Speicher hinzu (5,5 Bits), und Q8_0 bietet nahezu verlustlose Kompression (8 Bits). GPU-Deployment verwendet typischerweise GPTQ (via AutoGPTQ oder ExLlama2) oder AWQ (via AutoAWQ) für 4-Bit-Quantisierung, wobei AWQ 1,2-1,3x schnellere Inferenz bietet, aber etwas höhere Speichernutzung. Der Quantisierungsprozess erfordert Kalibrierungsdaten: 512-2048 Samples aus Domänen ähnlich den Produktions-Use-Cases, oft unter Verwendung von Wikitext- oder C4-Datensätzen. Kalibrierung dauert 5-30 Minuten für 7B-Modelle, 1-3 Stunden für 70B-Modelle auf modernen GPUs. Qualitätsbewertung vergleicht Perplexität auf zurückgehaltenen Daten: <1% Anstieg gilt als exzellent, 1-3% akzeptabel, >5% deutet auf Probleme hin. Für Produktion zählt Hardware-Beschleunigung: NVIDIA-GPUs mit INT8-Tensor-Cores (A100, H100, RTX 40-Serie) erreichen 2-3x Beschleunigung über FP16, während neuere Hardware (H100, B200) FP8- und INT4-Unterstützung für 4-5x Gewinne hinzufügt. Apples Neural Engine auf M4 Max liefert 50 Token/Sek für Llama 3 8B in Q4-Quantisierung und entspricht dedizierter GPU-Performance.

Best Practices

  • Beginnen Sie mit 8-Bit-Quantisierung für nahezu verlustlose Kompression, gehen Sie zu 4-Bit nur bei Speicherbeschränkung
  • Verwenden Sie GPTQ oder AWQ für GPU-Deployment (4-Bit), GGUF für CPU/Mac (4-8 Bit mixed)
  • Kalibrieren Sie mit domänenrelevanten Daten—generischer Web-Text repräsentiert möglicherweise nicht Ihren Use-Case
  • Testen Sie Perplexität und aufgabenspezifische Metriken vor Deployment quantisierter Modelle
  • Halten Sie Embeddings und Output-Schichten bei höherer Präzision für bessere Qualität (Mixed Precision)
  • Für QLoRA-Training verwenden Sie NF4-Quantisierung mit compute_dtype=bfloat16
  • Überwachen Sie Inferenz-Latenz—manchmal beschleunigt höhere Quantisierung nicht aufgrund von Speicherbandbreite
  • Kombinieren Sie Quantisierung mit anderen Optimierungen: Flash Attention, Paged Attention, Continuous Batching
  • Dokumentieren Sie Quantisierungsmethode und Kalibrierungsdaten für Reproduzierbarkeit und Debugging
  • Re-quantisieren Sie regelmäßig, wenn Modelle aktualisiert oder fine-getuned werden

Tools und Frameworks

Das Quantisierungs-Ökosystem konzentriert sich auf mehrere spezialisierte Tools. llama.cpp bietet GGUF-Quantisierung mit quantize-Befehl (./quantize model.gguf model.Q4_K_M.gguf Q4_K_M) und CPU-optimierte Inferenz, die 50+ Token/Sek auf M4 Max für 8B-Modelle erreicht. AutoGPTQ handhabt GPU-Quantisierung mit Python-API: from auto_gptq import AutoGPTQForCausalLM, bietet 4-Bit-GPTQ mit ExLlama2-Backend für 2x schnellere Inferenz als bitsandbytes. AutoAWQ bietet aktivierungsbewusste Quantisierung mit ähnlicher API und 20-30% Geschwindigkeitsvorteil über GPTQ bei vergleichbarer Qualität. bitsandbytes (von Tim Dettmers) war Pionier der zugänglichen Quantisierung mit 8-Bit- und 4-Bit-Unterstützung, integriert in Hugging Face Transformers, wodurch quantisierte Inferenz mit einem Parameter ermöglicht wird (load_in_8bit=True). Optimum (Hugging Face) abstrahiert Quantisierung über Backends (ONNX Runtime, OpenVINO, TensorRT) für hardwarespezifische Optimierung. Der Hugging Face Hub hostet über 30.000 vorgequantisierte Modelle in GGUF-, GPTQ- und AWQ-Formaten, wodurch die Notwendigkeit der Selbstquantisierung eliminiert wird. Inferenz-Server wie vLLM (automatische INT8-KV-Cache-Kompression), Text Generation Inference (GPTQ/AWQ-Unterstützung) und Ollama (GGUF-fokussiert) bieten produktionsreifes quantisiertes Modell-Serving. Apples MLX-Framework ermöglicht Quantisierung für Apple Silicon mit mlx.quantize und nutzt Unified-Memory-Architektur.

Verwandte Techniken

Quantisierung ist eine von mehreren Modelloptimierungstechniken. Pruning entfernt unnötige Gewichte (strukturiert oder unstrukturiert), oft kombiniert mit Quantisierung für 10-20x Gesamtkompression. Knowledge Distillation trainiert kleinere Modelle, größere nachzuahmen, komplementär zur Quantisierung (kann das destillierte Modell quantisieren). LoRA und QLoRA verwenden Quantisierung unterschiedlich: QLoRA quantisiert das Basismodell auf 4-Bit (mit NF4), während Adapter-Gewichte bei voller Präzision gehalten werden, wodurch Training auf Consumer-GPUs ermöglicht wird. Flash Attention optimiert Attention-Berechnung Speicher und Geschwindigkeit ohne Präzisionsreduktion, stapelbar mit Quantisierung für maximale Performance. Compilation (TensorRT, TorchCompile, PyTorch 2.0) fusioniert Operationen und generiert optimierte Kernel, verbessert quantisierte Modell-Performance weiter. Mixture-of-Experts (MoE) Modelle wie Mixtral verwenden spärliche Aktivierung, laden nur 2-8 Experten pro Token; Quantisierung jedes Experten auf 4-Bit ermöglicht Ausführung von 8x7B MoE in 28GB. Die aufkommende Grenze ist extreme Quantisierung: 3-Bit (Reduktion von 70B auf 26GB), 2-Bit (17,5GB) und 1-Bit (8,75GB, aber typischerweise >10% Qualitätsverlust) unter Verwendung von Techniken wie QuIP und OmniQuant. FP8 (8-Bit Fließkomma) auf H100/B200-GPUs bietet bessere Qualität als INT8 bei ähnlichen Speichereinsparungen.