Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

PHPz
Freigeben: 2023-11-18 15:34:00
nach vorne
1109 Leute haben es durchsucht

Die Komprimierung großer Sprachmodelle (LLM) hat schon immer große Aufmerksamkeit auf sich gezogen, und die Quantisierung nach dem Training ist einer der am häufigsten verwendeten Algorithmen. Die meisten vorhandenen PTQ-Methoden sind jedoch Ganzzahlquantisierung und wenn die Zahl Wenn die Anzahl der Bits weniger als 8 beträgt, nimmt die Genauigkeit des Modells nach der Quantisierung stark ab. Im Vergleich zur Integer-Quantisierung (INT) kann die Floating-Point-Quantisierung (FP) Long-Tail-Verteilungen besser darstellen, sodass immer mehr Hardwareplattformen beginnen, die FP-Quantisierung zu unterstützen. Dieser Artikel bietet eine Lösung für die FP-Quantifizierung großer Modelle. Artikel veröffentlicht bei EMNLP 2023.

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

  • Papieradresse: https://arxiv.org/abs/2310.16836
  • Codeadresse: https://github.com/nbasyl/LLM-FP4
.

Um diesen Artikel zu verstehen, müssen Sie zunächst über Grundkenntnisse über das Gleitkommaformat und die Gleitkommaquantisierung verfügen. Erstens kann die Gleitkommazahl durch die folgende Formel ausgedrückt werden:

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

s stellt das Vorzeichenbit dar. m repräsentiert die Mantissenbits und e repräsentiert die Exponentenbits. p ist ein Wert zwischen 0 und 2^e - 1 und gibt an, in welches Exponentialintervall die aktuelle Zahl geteilt werden soll. d nimmt einen Wert von 0 oder 1 an und gibt das i-te Mantissenbit an. b ist Bias, ein ganzzahliger Wert, der zum Anpassen des Exponentenintervalls verwendet wird.

Im nächsten Abschnitt erklären wir, wie die Gleitkomma-Quantisierung funktioniert. Zunächst müssen die Eingabewerte einen Schritt namens „Skalieren und Zuschneiden“ durchlaufen. Dieser Schritt schneidet zunächst den Eingabewert auf den maximalen Bereich ab, den Gleitkommazahlen darstellen können (±Qmax). Die spezifische Berechnungsformel lautet wie folgt:

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.


Sie können sehen, dass dies der Ganzzahlquantisierung FP ähnelt Durch die Quantisierung wird außerdem ein Skalierungsfaktor mit voller Präzision hinzugefügt, um die Eingabe auf das entsprechende Intervall zu skalieren. Bei der Berechnung der Matrixmultiplikation wird der Skalierungsfaktor getrennt von der Low-Bit-Matrixmultiplikation berechnet, sodass kein großer Overhead entsteht. Nach Einbeziehung dieses Skalierungsfaktors mit voller Präzision können verschiedene quantisierte Tensoren entsprechend auf unterschiedliche Maximal- und Minimalwertintervalle begrenzt werden. Bei der tatsächlichen Verwendung wird das erforderliche Quantisierungsintervall basierend auf dem Wertebereich des Eingabetensors bestimmt und dann die entsprechende Vorspannung mithilfe der Formel (4) abgeleitet. Beachten Sie, dass der Bias in Gleichung (4) als Skalierungsfaktor für reale Werte verwendet werden kann, siehe Gleichung (2)(3).

Der nächste Schritt bei der Gleitkomma-Quantisierung besteht darin, die Werte im ermittelten Quantisierungsintervall dem entsprechenden Quantisierungsintervall zuzuordnen:

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

Die obige Abbildung veranschaulicht dies intuitiv Beim Quantisierungsprozess wird der aktuelle Eingabewert nach dem Vergleich mit Formel 5 in verschiedene Quantisierungsintervalle quantisiert.

Nachdem die quantisierte Aktivierung und das Gewicht erhalten wurden, wird hier zunächst der Skalierungsfaktor wie oben erwähnt berechnet und die folgende effiziente Matrixmultiplikation erreicht, um die Beschleunigung der Matrixmultiplikation abzuschließen:

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

Dann Der Artikel weist darauf hin, dass die Genauigkeit der FP-Quantisierung eng mit der Einstellung der Exponentenbits und dem Quantisierungsintervall zusammenhängt.

In früheren Arbeiten wurde bestätigt, dass es große Unterschiede bei den Quantisierungsfehlern zwischen verschiedenen FP-Formaten gibt (d. h. den Exponentenbit/Mantissenbit-Einstellungen von Gleitkommazahlen). Nur wenn ein geeignetes FP-Format gewählt wird, kann die FP-Quantisierung Long-Tail-Verteilungen besser darstellen als die INT-Quantisierung

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

Dieser Artikel schlägt eine Lösung vor, die darin besteht, einen suchbasierten Gleitkomma-Quantisierungsalgorithmus zu verwenden, um die am besten geeigneten Exponenten- und Mantisseneinstellungen von Gleitkommazahlen und das entsprechende Quantisierungsintervall

in einer umfassenden Suchmethode zu ermitteln. Darüber hinaus gibt es in verschiedenen Arten von Transformer-Modellen (Bert, LLaMA, ViT) ein weiteres Phänomen, das die Schwierigkeit der Quantifizierung erheblich beeinträchtigt: Das heißt, der Größenordnungsunterschied zwischen verschiedenen Kanälen bei der Aktivierung des Modells ist sehr groß. und derselbe Kanal Die Größenordnung ist sehr konsistent. Frühere Studien LLM.int8 und SmoothQuant fanden ebenfalls ähnliche Phänomene, aber dieser Artikel weist darauf hin, dass dieses Phänomen nicht nur in LLM existiert, sondern auch ähnliche Aktivierungsverteilungen in anderen Transformer-Modellen gefunden hat (siehe unten, LLaMA, BERT und DeIT-S). Phänomen:

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

Wie Sie auf dem Bild sehen können, sind diese ungewöhnlich großen Kanäle viel größer als die übrigen Kanäle, sodass die Quantisierungsgenauigkeit bei der Quantifizierung des Aktivierungstensors weitgehend von diesen Ausreißern bestimmt wird Unterdrückung des Quantisierungsintervalls anderer Kanalwerte, wodurch letztendlich die Gesamtauswirkung auf die Quantisierungsgenauigkeit verringert wird. Dies führt dazu, dass das Endergebnis der Quantisierung zusammenbricht, insbesondere wenn die Anzahl der Bits auf ein bestimmtes Niveau absinkt. Es ist erwähnenswert, dass nur die tensorweise und tokenweise Quantisierung den Skalierungsfaktor während der effizienten Matrixmultipilierung extrahieren kann, während die kanalweise Quantisierung keine effiziente Matrixmultipilierung unterstützt, wie in der folgenden Abbildung dargestellt.

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

Um das Problem zu lösen und gleichzeitig eine effiziente Matrixmultiplikation aufrechtzuerhalten, verwendet dieser Artikel eine kleine Menge Korrekturdatensatz, um den Maximalwert jedes aktivierten Kanals vorab zu berechnen und die Skalierung zu berechnen Faktor. Der Skalierungsfaktor wird dann für jeden Tensor in eine reelle Zahl multipliziert mit einer Zweierpotenz für jeden Kanal aufgeteilt. Diese Potenz von 2 kann durch die exponentielle Abweichung in FP dargestellt werden. Der gesamte Prozess kann durch die folgende Formel ausgedrückt werden:

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

Darüber hinaus ändert sich nach Abschluss der Kalibrierung der Exponentenbias pro Kanal nicht mehr, sodass er zusammen mit der Gewichtsquantisierung vorberechnet werden kann Integrieren Sie diese Exponentenverzerrung pro Kanal in die quantisierten Gewichte, um die Quantisierungsgenauigkeit zu verbessern. Der vollständige Prozess ist wie folgt:

Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

Nach dem Vorversatz kann beobachtet werden, dass die Position des Versatzes mit voller Genauigkeit jedes Kanals in der ursprünglichen Aktivierungsfunktion zu einem tensorbasierten realen Skalierungsfaktor wird. Gleichzeitig wird der zerlegte Ganzzahl-Bias an die Position des ursprünglichen Ganzzahl-Bias im Gewicht verschoben. Einzelheiten finden Sie in Formel 4. Daher kann diese Methode (vorverschobener Exponenten-Bias) bessere Ergebnisse erzielen Um das Prinzip der effizienten Matrixmultiplikation zu verbessern, ist die intuitive Darstellung der Methode in der folgenden Abbildung dargestellt:

Abschließend zeigt dieser Artikel die Methode der Gleitkommaquantisierung (FPQ) auf LLaMA In den Modellen BERT und ViTs hat die 4-Bit-Quantisierung weitaus mehr Ergebnisse erzielt als SOTA. Insbesondere zeigt dieser Artikel, dass das 4-Bit-quantisierte LLaMA-13B-Modell bei der Inferenzaufgabe ohne Stichprobe eine durchschnittliche Punktzahl von 63,1 erreicht, was nur 5,8 Punkte niedriger ist als das Modell mit voller Präzision und einen höheren Glättungsgrad als das vorherige aufweist SOTA-Methode 12.7, die derzeit eines der wenigen bekannten realisierbaren 4-Bit-Quantisierungsschemata ist. Das erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.

Das obige ist der detaillierte Inhalt vonDas erste LLM, das die 4-Bit-Gleitkomma-Quantisierung unterstützt, ist da und löst die Bereitstellungsprobleme von LLaMA, BERT usw.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage