Quantisierung und Modellformate
SmoothQuant
Abstimmung von Gewichten und Aktivierungen für leichtere Quantisierung.
SmoothQuant löst ein Problem, das entsteht, wenn auch die Zwischenwerte in niedriger Präzision geführt werden sollen: In großen Sprachmodellen treten einzelne sehr große Aktivierungen auf, die den Wertebereich dominieren und feine Unterschiede verschwinden lassen. Dettmers et al.
Die Schwierigkeit wird verschoben, nicht beseitigt
Der Ansatz nutzt aus, dass sich ein Faktor mathematisch zwischen Aktivierungen und Gewichten verschieben lässt, ohne das Ergebnis zu verändern. Die Aktivierungen werden gedämpft, die zugehörigen Gewichte entsprechend verstärkt. Danach sind beide Seiten gutmütig genug, um in acht Bit geführt zu werden. Xiao et al.
Der Gewinn liegt im Betrieb unter Last. Wenn Gewichte und Aktivierungen ganzzahlig vorliegen, kann die Rechnung selbst in ganzzahliger Arithmetik laufen, die auf passender Hardware deutlich schneller ist.
So kannst du dir das vorstellen
Zwei Waagschalen, auf denen das Gewicht ungünstig verteilt ist. Man kann Last von der einen auf die andere Seite geben, ohne dass sich die Summe ändert, und dadurch beide Seiten messbar machen. Das Bild erklärt das Verschieben, es beschreibt keine konkrete Rechnung.
Was es in der Praxis konkret bedeutet
Relevant wird das Verfahren im Serverbetrieb mit hoher Auslastung, wo Rechenleistung der Engpass ist. Für den Einzelbetrieb auf einem Arbeitsplatzrechner ist die Komprimierung nur der Gewichte der einfachere Weg. Wie bei allen nachträglichen Verfahren gilt: Die Kalibrierungsdaten sollten zu deinem Anwendungsfall passen.
Wo es verwechselt wird
SmoothQuant ist kein Dateiformat und keine Alternative zu Verfahren, die nur Gewichte komprimieren, sondern eine Vorbehandlung, die Quantisierung beider Seiten erst praktikabel macht.
Verwandte Begriffe
Weight-and-Activation Quantization, INT8, AWQ, Continuous Batching, Tensor Cores, Quantization.