Quantisierung und schnelle Inferenz auf eigener Hardware
Wie man größere Modelle auf kleinere GPUs bringt und sie schnell ausliefert.
Die erste Reaktion vieler Ingenieure, wenn sie die Hardware-Anforderungen eines modernen Large Language Models sehen, ist Sticker-Shock. Ein 70-Milliarden-Parameter-Modell in seinem nativen FP32-Format würde etwa 280 GB GPU-Speicher benötigen - mehr als die meisten Organisationen in einem einzelnen Server haben und weit mehr als sie bereitstellen wollen, nur um Mitarbeiteranfragen zu beantworten. Quantisierung ist die Technik, die diese Zahlen handhabbar macht, und ihr Verständnis ist für jeden, der einen On-Premise-KI-Stack entwirft, unerlässlich.
Was Quantisierung tatsächlich tut
Ein neuronales Netz ist im Wesentlichen eine sehr große Sammlung von Zahlen - die während des Trainings gelernten Gewichte. Standardmäßig werden diese Gewichte als 32-Bit-Gleitkommazahlen (FP32) gespeichert, von denen jede 4 Bytes Speicher verbraucht. Quantisierung ersetzt hochpräzise Zahlen durch Darstellungen mit niedrigerer Präzision: 16-Bit-Floats (FP16 oder BF16), 8-Bit-Ganzzahlen (INT8) oder sogar 4-Bit-Ganzzahlen (INT4). Der Speicherbedarf sinkt proportional, und auf Hardware mit nativer Unterstützung für Arithmetik niedrigerer Präzision wird die Inferenz auch schneller.
- FP16 / BF16 - Halbpräzisions-Floats. Nahezu verlustfrei für die meisten Aufgaben; die bevorzugte Wahl für Produktions-Deployments, bei denen Genauigkeit kritisch ist. Speichereinsparungen: 2x gegenüber FP32.
- INT8 - 8-Bit-Ganzzahlen, typischerweise durch Post-Training-Quantisierungsmethoden (PTQ) wie GPTQ oder llm.int8() erzeugt. Geringe Qualitätsdegradation bei komplexem Denken; erheblich bei den meisten praktischen Aufgaben. Speichereinsparungen: 4x gegenüber FP32.
- INT4 - 4-Bit-Ganzzahlen, die Frontier aggressiver Quantisierung. Tools wie GGUF Q4_K_M und AWQ liefern überraschend gute Qualität für ihre Größe. Speichereinsparungen: 8x gegenüber FP32, mit akzeptabler Degradation für Chat- und Zusammenfassungs-Workloads.
Der Qualitäts-Größen-Kompromiss
Quantisierung ist nicht kostenlos. Jedes Bit, das man entfernt, ist Information, die verworfen wird, und irgendwann zeigt sich das als verschlechterte Ausgabe - Halluzinationen, Denkfehler oder Nuancenverlust. Die praktische Erkenntnis aus Privonis-Deployments ist, dass der Kompromiss für die meisten Unternehmensaufgaben überraschend günstig ist. Ein 70B-Modell, das auf INT4 quantisiert wurde, übertrifft typischerweise ein 13B-Modell bei FP16, obwohl beide in ähnlichem GPU-Speicher passen. Im Zweifel: Verwenden Sie das größte Modell, das bei der höchsten Präzision passt, die Ihre Hardware unterstützt.
Die richtige Quantisierung zu wählen geht weniger um die Anzahl der Bits als darum, die Modellkapazität auf die Aufgabe abzustimmen: ein gut gewähltes INT4 70B schlägt jedes Mal ein nachlässiges FP16 13B.
Inferenz-Server: woher der Durchsatz kommt
Ein quantisiertes Modell zu betreiben ist nur die halbe Geschichte. Es effizient unter gleichzeitiger Last zu bedienen erfordert einen Inferenz-Server, der die Struktur der Transformer-Attention versteht. Die dominante Open-Source-Option heute ist vLLM, das PagedAttention eingeführt hat - eine Speicherverwaltungstechnik, die von Betriebssystem-virtuellem Speicher übernommen wurde und es dem Server ermöglicht, viele Anfragen gleichzeitig zu verschachteln, ohne GPU-Speicher für vorab zugewiesene KV-Cache-Blöcke zu verschwenden. Der praktische Effekt ist eine 10-30-fache Verbesserung des Durchsatzes gegenüber einer naiven Einzel-Request-Schleife.
Weitere bemerkenswerte Optionen umfassen llama.cpp (CPU-freundlich, ausgezeichnet für kleinere Modelle auf Commodity-Hardware), Ollama (entwicklerfreundlicher Wrapper um llama.cpp), TGI von Hugging Face (starke Unterstützung für Hugging-Face-Modellformate) und TensorRT-LLM von NVIDIA (höchster Durchsatz auf NVIDIA-Hardware, auf Kosten einer komplexeren Kompilierungspipeline). Privonis evaluiert und benchmarkt alle diese für jede Kundenkonfiguration.
Batching und Durchsatz
GPUs erreichen Spitzeneffizienz, wenn sie viele Operationen gleichzeitig verarbeiten - dafür wurden sie entwickelt. Kontinuierliches Batching (auch dynamisches Batching oder Iteration-Level-Scheduling genannt) ermöglicht es einem Inferenz-Server, Token aus mehreren gleichzeitigen Anfragen in einem einzigen GPU-Kernel-Aufruf zu gruppieren, was die Auslastung dramatisch verbessert. Ohne Batching könnte eine einzelne Nutzeranfrage 5% Ihrer GPU-Kapazität nutzen; mit kontinuierlichem Batching können Sie die Auslastung bei realen Verkehrsmustern auf 70-80% drücken. Für ein Unternehmen mit dutzenden gleichzeitiger Nutzer kann der Unterschied zwischen einem Batching-bewussten Server und einem naiven den Unterschied bedeuten, ob man einen GPU-Server oder vier benötigt.
Die richtige Quantisierung für Ihre GPU wählen
Der Entscheidungsbaum ist einfacher als er aussieht. Beginnen Sie mit Ihrem GPU-Speicherbudget, subtrahieren Sie Spielraum für OS und den Inferenz-Server (typischerweise 4-8 GB), dann finden Sie das größte Modell, das bei der höchsten Präzision passt. Ein paar praktische Referenzpunkte:
- 24 GB VRAM (z.B. RTX 4090, A5000) - betreibt komfortabel ein 13B-Modell bei FP16 oder ein 34B-Modell bei INT4.
- 48 GB VRAM (z.B. RTX 6000 Ada, A6000) - betreibt ein 34B-Modell bei FP16 oder ein 70B-Modell bei INT4.
- 2 x 80 GB (z.B. A100-Paar via NVLink) - betreibt ein 70B-Modell bei FP16 oder ein 140B-Modell bei INT4 mit Tensor-Parallelismus.
- Nur CPU (keine GPU) - llama.cpp mit einem Q4_K_M 7B oder 13B-Modell ist für niedrige gleichzeitige Entwickler-Tooling machbar; erwarten Sie 5-15 Token/s.
Es mit Privonis zusammensetzen
Ein Quantisierungsformat und einen Inferenz-Server auszuwählen ist Engineering-Arbeit, die Profiling auf Ihrer spezifischen Hardware mit Ihrem spezifischen Workload erfordert. Privonis übernimmt dieses Benchmarking als Teil jedes Deployments: Wir führen Durchsatztests durch, messen die Ausgabequalität an einer repräsentativen Stichprobe Ihrer echten Prompts und liefern eine Konfiguration, die die Leistung innerhalb Ihres Hardwarebudgets maximiert. Das Ergebnis ist ein produktiver Inferenz-Stack, den Ihr Team ohne einen spezialisierten ML-Ingenieur in Bereitschaft betreiben kann. Wenn Sie bereit sind zu erkunden, was in Ihre Umgebung passt, führt unser Team gerne die Zahlen mit Ihnen durch.
Sprechen wir über Ihr KI-Projekt
Termin buchen