Definition
Quantisierung reduziert die numerische Präzision der Modellgewichte — meist von 32-Bit-Fließkommazahl (FP32) auf 8-Bit- (INT8) oder 4-Bit-Ganzzahl (INT4). Speicherverbrauch und Inference-Latenz sinken um den Faktor 4 bis 8, der Qualitätsverlust bleibt bei richtiger Kalibrierung gering. Damit laufen große Sprachmodelle auf Consumer-Hardware statt nur auf Multi-GPU-Clustern.
Mechanik
Nach dem Training werden die Gewichte auf eine geringere Bitbreite abgebildet. Die Abbildung geschieht durch Skalierung und Clipping: Werte werden in einen reduzierten Wertebereich normalisiert (z.B. Min-Max-Normalisierung) und als ganze Zahlen gespeichert. Bei der Inference werden sie über Skalierungsfaktor und Nullpunkt zurück in Fließkommazahlen konvertiert.
Zwei Verfahren sind verbreitet:
- Post-Training Quantization (PTQ): nachträglich angewendet, kein Retraining nötig — schnell, aber leichte Qualitätseinbußen.
- Quantization-Aware Training (QAT): Quantisierungseffekte werden bereits während des Trainings simuliert und kompensiert — höhere Qualität, deutlich aufwändiger.
Tools wie GGUF, llama.cpp und vLLM automatisieren das Laden und Inferieren quantisierter Modelle.
Beispiel
Quantisierung von 8 Beispiel-Gewichten von FP32 auf 4 Bit (16 Stufen) mit anschließender Rekonstruktion:
Lokales Sprachmodell mit Ollama
Quantisierte Sprachmodelle lassen sich auf Consumer-Hardware betreiben. Llama 3.2 1B Q4_K_M belegt ~1,3 GB statt ~3 GB in FP16; Llama 70B Q4 schrumpft von ~140 GB auf ~40 GB. Ollama lädt und betreibt solche Modelle über eine lokale HTTP-API (localhost:11434).
import ollama
response = ollama.generate(
model="llama3.2:1b",
prompt="Erkläre Quantisierung in einem Satz:",
)
print(response.response)
Lokales Sprachmodell aufrufen — Setup für deinen Rechner
- Python 3.10 oder neuer installiert. Download: python.org/downloads. Beim Windows-Installer die Option „Add Python to PATH" aktivieren — sonst findet die Konsole `python` nicht.
# 1) Konsole öffnen: Win+R drücken, "powershell" eintippen, Enter.
# 2) Prüfen, ob Python installiert ist:
py --version
# Falls "command not found" -> https://python.org/downloads
# 3) Einmal-Setup (Tool installieren / Modell ziehen):
ollama pull llama3.2:1b
# 4) Projekt-Setup: venv + Abhängigkeiten
py -m venv .venv
.venv\Scripts\Activate.ps1
pip install ollama
# 5) Code in ollama_test.py speichern (Button oben oder Copy + Editor)
# Dann ausführen:
python ollama_test.py
# 1) Terminal öffnen:
# macOS: Cmd+Leertaste -> "Terminal" eintippen -> Enter
# Linux: Strg+Alt+T (in den meisten Distros)
# 2) Prüfen, ob Python installiert ist:
python3 --version
# Falls fehlt:
# macOS: brew install python (oder https://python.org/downloads)
# Debian: sudo apt install python3 python3-venv
# Fedora: sudo dnf install python3
# 3) Einmal-Setup (Tool installieren / Modell ziehen):
ollama pull llama3.2:1b
# 4) Projekt-Setup: venv + Abhängigkeiten
python3 -m venv .venv
source .venv/bin/activate
pip install ollama
# 5) Code in ollama_test.py speichern (Button oben oder Copy + Editor)
# Dann ausführen:
python ollama_test.py
Selbst chatten — quantisiertes Modell im Browser
Ein quantisiertes 1B-Sprachmodell laeuft direkt in deinem Browser. Beim ersten Klick werden ~700 MB einmalig geladen und gecacht; bei spaeteren Besuchen ist es sofort bereit. Frag das Modell z.B.: „Was bedeutet INT4 fuer Modellgewichte?".
Quantisierung im Code: LLM in Python aufrufen
Statt mit dem LLM zu chatten, kannst du im Browser direkt Python schreiben, das das Modell ansteuert. Beim ersten Aufruf von llm.load(...) erscheint eine Bestaetigung fuer den Modell-Download. Danach laeuft alles im Browser, kein Server, keine Installation.