Quantisierung von LLMs: So werden Modelle klein genug für den Laptop

Werkbank in einem Hardware- und Robotiklabor mit Messgeraeten, Kabeln und zerlegten Geraeten
Deine Reaktion:

„Qwen-3-Coder-Next ist ein Modell mit 80 Milliarden Parametern und belegt 159,4 GB Speicher. Das ist ungefähr so viel RAM, wie du zum Ausführen bräuchtest – und da ist der Kontext noch gar nicht eingerechnet. Das gilt nicht einmal als großes Modell.“ Mit dieser Einordnung beginnt der Entwickler seinen Blogpost auf ngrok über Quantisierung. Heutige Spitzenmodelle bringen Gerüchten zufolge bereits über eine Billion Parameter mit, wofür mindestens 2 TB RAM nötig wären. Diese Hardware steckt in kaum einem normalen Rechner. Trotzdem, so seine Kernbotschaft, ließen sich große Sprachmodelle rund viermal kleiner und doppelt so schnell machen, sodass sie auf einem durchschnittlichen Laptop laufen – bei nur fünf bis zehn Prozent Genauigkeitsverlust. Quantisierung macht das möglich. Genau darum geht es in diesem Text.

Warum große Sprachmodelle so groß sind

Der Großteil dessen, was ein LLM auf der Festplatte oder im Arbeitsspeicher ausmacht, sind seine Parameter, oft auch Gewichte genannt. Wer schon einmal mit neuronalen Netzen zu tun hatte, kennt den Begriff. Für alle anderen: Parameter sind die gelernten Zahlen, die ein Modell dazu befähigen, Sprache zu verstehen und zu erzeugen. Ein neuronales Netz ist ein „enormes Diagramm aus Milliarden sorgfältig angeordneter Operationen“, wie der Autor es formuliert. Der einfachste Baustein besteht aus einem Eingabewert, der mit einem Parameter multipliziert wird und einen Ausgabewert erzeugt. Aus diesen Bausteinen setzen sich moderne KI-Systeme zusammen.

Modelle werden groß, weil sie Milliarden solcher Parameter besitzen und in Schichten organisiert sind. Jede Verbindung zwischen zwei Knoten hat ein eigenes Gewicht. Treffen mehrere Verbindungen an einem Knoten aufeinander, werden ihre Werte addiert. Schon bei einem winzigen Netz mit wenigen Eingaben, Ausgaben und drei Schichten kommt man auf 64 Parameter. Moderne LLMs haben Hunderttausende Ein- und Ausgaben, dutzende Schichten mit jeweils Tausenden Knoten, allesamt dicht miteinander verbunden. Multipliziert man das durch, landet man unweigerlich im Bereich von Milliarden bis hin zu Billionen Parametern. Und jeder einzelne Parameter muss irgendwo gespeichert werden, am liebsten mit hoher Präzision.

Wie Computer Zahlen speichern

Computer arbeiten bekanntermaßen mit Bits, also den Zuständen 0 und 1. Ganze Zahlen, in der Fachsprache Integer, lassen sich damit wunderbar abbilden: jedes Bit steht für eine Zweierpotenz, und die Summe ergibt den Wert. Zwischen 1 und 3 existiert exakt eine ganze Zahl, nämlich 2. Das ist diskret und damit ideal für Maschinen. Komplizierter wird es bei Dezimalzahlen, denn zwischen 1 und 3 liegen unendlich viele reelle Werte, und unendlich viele Dinge kann kein Computer speichern. Also wird ein Kompromiss eingegangen: Die Maschine verspricht Genauigkeit bis zu einer bestimmten Anzahl signifikanter Stellen und liefert danach nur eine Annäherung.

Eine 32-Bit-Gleitkommazahl, englisch float32, deckt einen Bereich von etwa ±3,4 × 10³⁸ ab und garantiert rund sieben signifikante Stellen Genauigkeit. Diese 32 Bits werden auf drei Bereiche aufgeteilt: ein Vorzeichenbit, acht Bits für den Exponenten und 23 Bits für die Mantisse, auch Significand genannt. Mehr Exponentenbits bedeuten einen größeren Wertebereich, mehr Bits in der Mantisse bedeuten mehr Präzision. Auffällig ist, dass die darstellbaren Werte nicht gleichmäßig verteilt sind. Im Bereich zwischen −0,5 und 0,5 gibt es über zwei Milliarden verschiedene float32-Werte, während weiter draußen die Abstände zwischen den darstellbaren Zahlen rapide wachsen. Das ist Absicht: Modelle tendieren dazu, ihre Parameter klein zu halten, und kleine Werte werden bei dieser Verteilung am genauesten abgebildet.

Der Autor hat sich sechs populäre Open-Source-Modelle vorgenommen und die Verteilung ihrer Parameter analysiert. Das Ergebnis: Nahezu alle Gewichte sitzen extrem nahe an der Null. Es gibt zwar Ausreißer, aber die sind selten. Diese Beobachtung ist der Schlüssel zur gesamten Quantisierung, denn sie zeigt, dass der enorme Wertebereich von float32 in der Praxis gar nicht ausgenutzt wird.

Kleinere Gleitkommazahlen als Ausweg

Wenn Modelle ihre Parameter sowieso im engen Bereich nahe Null halten, dann brauchen sie auch keine 32 Bits pro Wert. Eine 16-Bit-Gleitkommazahl (float16) verwendet fünf Exponentenbits und zehn Bits für die Mantisse, kommt auf etwa drei signifikante Stellen und einen Bereich von rund ±65.504. Schon diese Halbierung des Speicherplatzes ist ein großer Gewinn. Noch weiter geht bfloat16, ein Format, das vom Google-Brain-Team entwickelt wurde: acht Exponentenbits für einen riesigen Bereich, aber nur sieben Bits für die Mantisse, also nur zwei verlässliche Stellen. Google stellte fest, dass zwei signifikante Stellen für das Training großer Modelle völlig ausreichen, sofern der Wertebereich groß genug ist, um Überläufe zu vermeiden.

Danach wird es drastisch. Formate wie float8 und float4 nutzen nur noch acht beziehungsweise vier Bits pro Wert. Deren Genauigkeit lässt sich zeigen, indem man eine Sinuskurve nachbildet: Während float32 die Welle fast perfekt zeichnet, wirken float8 bereits leicht stufig, und float4 driftet sichtbar von der glatten Kurve ab. Das ist der Präzisionskompromiss, mit dem jede Form von Quantisierung leben muss. In der Praxis mischen Entwickler Exponenten- und Mantissenbits je nach Anforderung, um das beste Verhältnis aus Reichweite und Genauigkeit herauszuholen.

Was Quantisierung eigentlich bedeutet

Quantisierung bedeutet, Werte aus einem großen Wertebereich in einen kleineren zu pressen. Es ist eine verlustbehaftete Kompression. Wenn ein float16-Wert in einen float8-Wert umgewandelt wird, wird in der Regel auf den nächstgelegenen darstellbaren Wert gerundet. Diese Methode heißt „round-to-nearest“ und ist die einfachste Variante der Quantisierung. Das grundlegende Prinzip: Schiebe einen Schieberegler entlang einer Zahlengeraden und beobachte, welcher Wert im jeweiligen Format am nächsten liegt. Das funktioniert, ist aber für LLMs meist keine gute Idee.

Der Autor demonstriert das Problem an einem Mini-Netzwerk. Wird von bfloat16 auf float8 gerundet, bleiben die Ergebnisse noch brauchbar. Geht man weiter zu float4, bricht das Modell komplett zusammen. Manche Parameter werden zu null, und da kein Pfad vom Eingang zum Ausgang mehr ohne Multiplikation mit null existiert, ist der Ausgang zwangsläufig null. Der Grund: float4 deckt den Bereich −3 bis 3 ab, die tatsächlichen Parameter liegen aber zwischen −0,89 und 0,16. Hinzu kommen Sonderwerte wie Unendlich und NaN, die beim Quantisieren schlicht nutzlos sind. So verschenkt man wertvolle Bits an Bereiche, die im Modell gar nicht vorkommen.

Symmetrische Quantisierung als smartere Lösung

Die naheliegende Idee: Statt den starren float4-Bereich zu nutzen, sollte man den verfügbaren Wertebereich passend zur tatsächlichen Parameterverteilung zuschneiden. Genau hier setzt symmetrische Quantisierung an. Der Trick besteht darin, die Daten zu skalieren, damit sie optimal in das vorgegebene Raster passen. Anstatt also von −3 bis 3 darzustellen, was bei Parametern zwischen −0,89 und 0,16 völlig überdimensioniert wäre, wird der Bereich zusammengeschoben. So lassen sich die begrenzten Stufen eines 4-Bit-Formats weitaus effizienter nutzen.

In der Praxis funktioniert das so: Man bestimmt den größten absoluten Parameterwert, teilt alle Werte dadurch und multipliziert sie mit dem gewünschten Skalenfaktor. Das Ergebnis ist eine Verteilung, die exakt in den verfügbaren Wertebereich passt. Dadurch erhöht sich die effektive Präzision drastisch, ohne dass mehr Bits nötig wären. Das ist der Grund, warum Modelle nach der Quantisierung häufig noch gut funktionieren: Der theoretische Verlust an Genauigkeit ist hoch, aber die tatsächliche Information steckt in einem engen Bereich, der nun vollständig abgedeckt wird.

Es gibt allerdings einen Haken: Ausreißer in der Parameterverteilung. Wenn ein einziges Gewicht weit außerhalb des typischen Bereichs liegt, zwingt es den gesamten Skalenfaktor in die Höhe. Alle anderen Parameter verlieren dadurch an Präzision. Deshalb gibt es neben der symmetrischen noch weitere Verfahren, etwa die asymmetrische Quantisierung oder spezielle Methoden zum Umgang mit Ausreißern. Welche Strategie am besten funktioniert, hängt vom konkreten Modell und vom Einsatzzweck ab.

Was das für den Alltag bedeutet

Quantisierung ist kein Zaubertrick, sondern ein durchdachtes Komprimierungsverfahren. Es baut auf einer simplen Beobachtung auf: Neuronale Netze nutzen ihren theoretisch riesigen Zahlenbereich gar nicht aus. Wenn du also das nächste Mal ein 70-Milliarden-Parameter-Modell auf deinem Laptop ausführen möchtest, ist Quantisierung der Grund, warum das möglich ist. Die Modelle verlieren etwas Genauigkeit, aber in den meisten Anwendungen fallen fünf bis zehn Prozent nicht ins Gewicht. Für Entwickler sinkt dadurch die Hürde, lokal mit ernstzunehmenden Modellen zu experimentieren. Die Abhängigkeit von riesigen Cloud-Instanzen wird kleiner.

Quelle: ngrok.com

Deine Reaktion:
Artikel teilen:
Krötzsch-Check0 — 100
Fakten 70
Relevanz 78
Hype 35
Einschätzung 68
Redaktion 50 Stand 50 · noch keine Stimmen
Ist das Hype?
Sebastian Krötzsch
Autor

Sebastian Krötzsch

Sebastian Krötzsch schreibt auf sebask.de über Künstliche Intelligenz, Automatisierung, digitale Systeme und die Frage, was davon im Alltag wirklich nützlich ist. Ohne Buzzword-Nebel, dafür mit klarem Blick auf Praxis, Tools und echte Wirkung.