Was ist Quantisierung?

29. Juli 2024

Autoren

Bryan Clark

Senior Technology Advocate

Quantisierung ist ein Vorgang zur Reduzierung der Präzision eines digitalen Signals, in der Regel von einem Format mit höherer auf eines mit niedrigerer Genauigkeit. Diese Methode ist in verschiedenen Bereichen weit verbreitet, darunter Signalverarbeitung, Datenkomprimierung und maschinelles Lernen.

Quantisierung ist eine Methode, die in Large Language Models (LLMs) verwendet wird, um Gewichtungen und Aktivierungswerte von Daten mit hoher Genauigkeit – üblicherweise 32-Bit-Gleitkomma (FP32) oder 16-Bit-Gleitkomma (FP16) – in Daten mit niedrigerer Genauigkeit, wie 8-Bit-Ganzzahl (INT8), umzurechnen. Daten mit hoher Genauigkeit (bezogen auf FP32 und FP16) tragen ihren Namen, weil Modelle, die diese Datentypen verwenden, in der Regel eine höhere Genauigkeit aufweisen. Dies liegt daran, dass die Daten, wenn sie in etwas wie INT8 komprimiert werden, in eine kleinere Größe gepresst werden. Dies führt effektiv zu einer geringeren Genauigkeit, was auch als Quantisierungsfehler bezeichnet wird. Ein Aktivierungswert ist eine Zahl (zwischen Null und Eins), die dem künstlichen Neuron des Neural Network zugewiesen wird. Diese zugewiesene Nummer wird als ihr Aktivierungswert bezeichnet. Eine 8-Bit-Quantisierung ist im Allgemeinen das Ziel, aber auch quantisierte Daten von 4-Bit-Ganzzahlen (INT4) und niedriger wurden bereits erfolgreich erreicht. Im Wesentlichen handelt es sich um den Quantisierungsprozess unter Verwendung von Kompressionstechniken in einem Neural Network, um eine große Anzahl von Bits in eine kleine Anzahl von Bits umzuwandeln. 1

Der Rechenleistungsbedarf beim Betrieb eines LLM mit FP32 kann enorm sein. Neben dem erhöhten Rechenleistungsbedarf kann auch die Inferenz (der Vorgang, bei dem ein LLM eine Antwort auf die Abfrage eines Benutzers generiert) verlangsamt werden. Die Quantisierung kann ein großartiges Optimierungstool sein, um sowohl den Rechenaufwand zu reduzieren, als auch gleichzeitig die Inferenzgeschwindigkeit eines LLM zu erhöhen. Der Quantisierungsprozess basiert auf der Prämisse, die Gewichte in einen Datentyp mit geringerer Präzision zu konvertieren, während die Leistung des Modells nahezu identisch bleibt. Die Konvertierung von Gewichten in einen Datentyp mit geringerer Genauigkeit führt zu geringeren Rechenkosten, da bei jedem Durchlauf des Modells weniger Bits verarbeitet werden müssen. Wenn weniger Bits verarbeitet werden, wird auch jede Abfrage an das LLM schneller verarbeitet.

3D-Design aus Kugeln, die auf einer Schiene rollen

Die neuesten Erkenntnisse und Insights zu KI

Entdecken Sie von Experten kuratierte Erkenntnisse und Neuigkeiten zu KI, Cloud und mehr im wöchentlichen Newsletter Think. 

Was spricht für eine Implementierung von Quantisierung?

Schnellere Inferenz

Durch die Nutzung der Quantisierung zur Konvertierung der Gleitkomma-Datentypen in Ganzzahlen können die Berechnungen schneller abgeschlossen werden. Dies verringert die Gesamtlatenz des Modells und führt zu einer Verbesserung der Inferenzgeschwindigkeit im Verhältnis zur Genauigkeit. Dieser Kompromiss ist für alle Echtzeitanwendungen von entscheidender Bedeutung, insbesondere wenn sie auf mobilen CPUs ausgeführt werden. 2

Effizienz

Die Quantisierung ist von entscheidender Bedeutung, wenn versucht wird, Modelle für maschinelles Lernen auf Geräten auszuführen, die nicht in der Lage sind, höhere Rechenleistungsanforderungen zu bewältigen. Wenn durch Quantisierung die Gleitkomma- in eine Ganzzahldarstellung umgewandelt wird, verringert sich der Rechenleistungsbedarf des maschinellen Lernmodells. Dadurch wird es möglich, diese quantisierten Modelle in realen Anwendungen auf Laptops, Tablets und Smartphones zu nutzen. 2

Geringerer Stromverbrauch

In der Regel haben quantisierte Modelle einen geringeren Rechenaufwand. Daher führt die Quantisierung zu einer höheren Energieeffizienz, die für die Ausführung dieser Modelle auf Laptops, Tablets und Mobiltelefonen entscheidend ist. 3

Kompatibilität

Dank der Quantisierung können aktuelle Modelle für maschinelles Lernen mit Integer-Operationen arbeiten. Dadurch sind die quantisierten Modelle mit älteren Plattformen kompatibel, die keine Gleitkommaoperationen unterstützen. Es macht diese Modelle zudem viel zugänglicher, sodass es möglich ist, sie auf GPUs für Endverbraucher auszuführen. 4

Funktionsweise der Quantisierung

Es gibt etwa 4 Milliarden Werte innerhalb der FP32-Menge möglicher Werte, die von -3,4 1038 bis 3,4 1038 reichen. Bei INT8 hingegen sehen wir nur 256 Werte innerhalb des möglichen Wertebereichs von -128 bis 128. Da es sich bei Letzterem um eine wesentlich kleinere Menge von Werten handelt, kann die Matrixmultiplikation viel schneller erfolgen. Aufgrund der immensen Rechenkosten von Deep-Learning-basierten Modellen sind genaue und effiziente Algorithmen unerlässlich.

Der Prozess der Quantisierung erfolgt, indem zunächst der optimale Weg für die Projektion der 32-Bit-Gleitkommawerte in das INT8-Feld bestimmt wird. Dazu gibt es mehrere Algorithmen zur Quantisierung eines Modells. Wir werfen einen Blick auf zwei Quantisierungsmethoden: Absolute-Max- und affine Quantisierung.

Absolute max. Quantisierung

Um bei der Absolute-Max-Quantisierung die Zuordnung zwischen der Gleitkommazahl und der entsprechenden INT8-Zahl zu berechnen, muss man zunächst durch den absoluten Maximalwert des Tensors dividieren und dann mit dem Gesamtbereich des Datentyps multiplizieren.

Als Beispiel wenden wir den Algorithmus zur Absolute-Max-Quantisierung auf den folgenden Vektor an: [1,6, −0,7, −3,4, 1,7, −2,9, 0,5, 2,3, 6,2]. Sie extrahieren das absolute Maximum, in diesem Fall 6,2. INT8 hat einen Bereich von [−127, 127], daher teilen wir 127 durch 6,2 und erhalten 20,5 für den Skalierungsfaktor. Die Multiplikation des ursprünglichen Vektors mit diesem Faktor ergibt den quantisierten Datenvektor [33, −14, −70, 35, −59, 10, 47, 127]. Da diese Zahlen gerundet werden, kommt es zu einem gewissen Genauigkeitsverlust. 5

Affine Quantisierung

Um den Algorithmus zur affinen Quantisierung zu implementieren, definieren wir unseren Bereich von 32-Bit-Gleitkommawerten als [a, b]. Der Algorithmus zur affinen Quantisierung lautet wie folgt:

𝑥𝑞 = gerundet ((1/𝑆)𝑥+𝑍)

- 𝑥𝑞 ist der quantisierte INT8-Wert, der dem 32-Bit-Gleitkommawert x entspricht.

– S ist ein FP32-Skalierungsfaktor und ein positiver 32-Bit-Gleitkommawert.

– Z ist der Nullpunkt. Dies ist der INT8-Wert, der der Null im 32-Bit-Gleitkommafeld entspricht.

- Gerundet bezeichnet das Runden des resultierenden Wertes auf die nächste Ganzzahl.

Um als Nächstes die [min, max] unserer 32-Bit-Gleitkommawerte zu ermitteln, müssen wir alle Ausreißer berücksichtigen. Werden diese Ausreißer außer Acht gelassen, können sie entweder Min oder Max zugeordnet werden und die Genauigkeit des quantisierten Modells verzerren. Um dem entgegenzuwirken, kann das Modell in Blöcken quantisiert werden. Die Gewichtungen können in Gruppen zu 64 oder 128 unterteilt werden. Anschließend werden diese Gruppen quantisiert, um Ausreißer zu berücksichtigen und das Risiko einer verringerten Präzision zu minimieren. 6

AI Academy

Warum Foundation Models einen Paradigmenwechsel für die KI bedeuten

Erfahren Sie mehr über eine neue Klasse flexibler, wiederverwendbarer KI-Modelle, die neue Einnahmen erschließen, Kosten senken und die Produktivität steigern können. Dann nutzen Sie unseren Leitfaden, um mehr zu erfahren.

Arten der Quantisierung

Quantisierung nach dem Training

Quantisierung nach dem Training findet dann statt, wenn diese auf ein vorhandenes Modell angewendet wird. Dadurch wird das Modell von einer Gleitkommadarstellung in eine Festkomma-Ganzzahl mit niedrigerer Genauigkeit konvertiert, ohne dass ein erneutes Training erforderlich ist. Diese Methode erfordert nicht so viele Daten wie quantisierungsbewusstes Training und ist deutlich schneller. Da jedoch ein bereits vorhandenes Modell im Wesentlichen auf ein kleineres Modell umgestellt wird, kann die Quantisierung nach dem Training zu Leistungseinbußen führen. Ein Beispiel für einen Anwendungsfall von Quantisierung nach dem Training wäre, wenn Sie bereits über ein funktionierendes Modell verfügen und dessen Geschwindigkeit und Effizienz erhöhen möchten. Das liegt daran, dass Quantisierung nach dem Training stattfindet, nachdem ein Modell trainiert wurde (das heißt, ein bereits vorhandenes Modell), sodass für diesen Prozess keine große Menge an Trainingsdaten erforderlich ist. 7

Quantisierungsbewusstes Training

Quantisierungsbewusstes Training beinhaltet die Umrechnung von Gewichten während des Vortrainings oder der Feinabstimmung eines LLM. Dies ermöglicht eine verbesserte Leistung, erfordert jedoch eine große Menge an Rechenleistung sowie repräsentative Trainingsdaten. Insgesamt führt ein quantisierungsbewusstes Training in der Regel zu einem Modell mit höherer Leistung, das jedoch teurer ist und weitaus mehr Rechenleistung benötigt. Quantisierungsbewusstes Training wäre beispielsweise dann angebracht, wenn Sie über eine ausreichende Menge an Trainingsdaten und ein größeres Budget verfügen. Man sollte ebenfalls bedenken, dass dieser Prozess während der Trainingsphase des Modells stattfindet – es ist daher nicht sinnvoll, diese Methode bei einem bereits trainierten Modell anzuwenden. 7

Dynamische Quantisierung vs. statische Quantisierung

Der Nutzen dieser beiden Methoden besteht in der Auswahl des Clipping-Intervalls – oder der Kalibrierung, wie es auch oft genannt wird – denn bei der dynamischen Quantisierung wird das Clipping-Intervall für jede Aktivierung dynamisch berechnet. Normalerweise führt diese Art von Quantisierungsmethode zu einer höheren Genauigkeit. Wie der Name schon sagt, verwendet die statische Quantisierung ein festes Clipping-Intervall für alle Eingaben. Diese Form der Quantisierung wird häufiger verwendet als die dynamische Quantisierung und kann sehr kostspielig sein.

Risiken und Einschränkungen

Geringere Präzision

Wenn die Gewichtungen während der Quantisierung umgerechnet werden, kommt es bei quantisierten Modellen des maschinellen Lernens manchmal zu einem Verlust an Genauigkeit innerhalb der quantisierten Werte. Die Modellgröße sollte berücksichtigt werden, da bei der Quantisierung außergewöhnlich großer LLMs mit zahlreichen Parametern und Schichten das Risiko einer signifikanten Akkumulation von Quantisierungsfehlern besteht. 8

Kosten

Das Training von Modellen für maschinelles Lernen kann extrem kostspielig sein, insbesondere beim quantisierungsbewussten Training (Quantization Aware Training, QAT). Dies macht die Quantisierung nach dem Training (Post-Training Quantization, PTQ) aus kosteneffizienter Sicht zur besten Wahl. Dadurch wird das Modell jedoch in einigen Aspekten eingeschränkt, da quantisierungsbewusstes Training in der Regel ein genaueres Modell liefert. 9

Machen Sie den nächsten Schritt

Erkunden Sie die Foundation-Model-Bibliothek im watsonx-Portfolio von IBM zur zuverlässigen Skalierung generativer KI für Ihr Unternehmen.

watsonx.ai erkunden Erkunden Sie KI-Lösungen
Fußnoten

¹ Dong Liu, Meng Jiang, Kaiser Pister, „LLMEasyQuant - An Easy to Use Toolkit for LLM Quantization“, https://arxiv.org/pdf/2406.19657v2.

² Benoit Jacob, Skirmantas Kligys, Bo Chen, Menglong Zhu, Matthew Tang, Andrew Howard, Hartwig Adam, Dmitry Kalenichenko, „Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference“, https://arxiv.org/pdf/1712.05877v1.

³ Ravi Kishore Kodali, Yatendra Prasad Upreti, Lakshmi Boppana, „A Quantization Approach for the Reduced Size of Large Language Models“, https://ieeexplore.ieee.org/document/10499664.

⁴ Xiao Sun, Naigang Wang, Chia-yu Chen, Jia-min Ni, Ankur Agrawal, Xiaodong Cui, Swagath Venkataramani, Kaoutar El Maghraoui, Vijayalakshmi Srinivasan, „Ultra-Low Precision 4-bit Training of Deep Neural Networks“, https://research.ibm.com/publications/ultra-low-precision-4-bit-training-of-deep-neural-networks

⁵ Tim Dettmers, Mike Lewis, Younes Belkada, Luke Zettlemoyer, „LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale“, https://arxiv.org/pdf/2208.07339

⁶ Amir Gholami, Sehoon Kim, Zhen Dong, Zhewei Yao, Michael W. Mahoney, Kurt Keutzer, „A Survey of Quantization Methods for Efficient Neural Network Inference“, https://arxiv.org/pdf/2103.13630

⁷ Hao Wu, Patrick Judd, Xiaojie Zhang, Mikhail Isaev, Paulius Micikevicius, „A Survey of Quantization Methods for Efficient Neural Network Inference“, https://arxiv.org/pdf/2004.09602

⁸ Zhuocheng Gong, Jiahao Liu, Jingang Wang, Xunliang Cai, Dongyan Zhao, Rui Yan, „What Makes Quantization for Large Language Models Hard? An Empirical Study from the Lens of Perturbation“, https://arxiv.org/pdf/2403.06408v1.

⁹ Sehoon Kim, Coleman Hooper, Amir Gholami, Zhen Dong, Xiuyu Li, Sheng Shen, Michael W. Mahoney, Kurt Keutzer, „SqueezeLLM: Dense-and-Sparse Quantization“, https://arxiv.org/pdf/2306.07629v4.