Heim > Artikel > Technologie-Peripheriegeräte > ICLR 2024 Spotlight |. Großes Sprachmodellgewicht, Aktivierung, umfassende Low-Bit-Mikronisierung, wurde in die kommerzielle APP integriert
Die Modellquantisierung ist eine Schlüsseltechnologie bei der Modellkomprimierung und -beschleunigung. Sie quantisiert Modellgewichte und Aktivierungswerte auf niedrige Bits, wodurch das Modell weniger Speicheraufwand beansprucht und die Inferenz beschleunigt. Bei großen Sprachmodellen mit massiven Parametern ist die Modellquantifizierung noch wichtiger. Beispielsweise verbrauchen die 175B-Parameter des GPT-3-Modells 350 GB Speicher, wenn sie im FP16-Format geladen werden, was mindestens fünf 80 GB A100-GPUs erfordert.
Aber wenn die Gewichte des GPT-3-Modells auf 3 Bit komprimiert werden können, dann kann ein einziger A100-80GB zum Laden aller Modellgewichte verwendet werden.
Derzeit gibt es eine offensichtliche Herausforderung im bestehenden Post-Training-Quantisierungsalgorithmus für große Sprachmodelle, nämlich dass er auf der manuellen Einstellung von Quantisierungsparametern beruht und kein entsprechender Optimierungsprozess vorhanden ist. Dies führt dazu, dass es bei bestehenden Methoden häufig zu Leistungseinbußen kommt, wenn eine Low-Bit-Quantisierung durchgeführt wird. Obwohl quantisierungsbewusstes Training bei der Bestimmung der optimalen Quantisierungskonfiguration effektiv ist, erfordert es zusätzliche Trainingskosten und Datenunterstützung. Insbesondere bei großen Sprachmodellen ist der Rechenaufwand selbst bereits groß, was die Anwendung von quantisierungsbewusstem Training bei der Quantisierung großer Sprachmodelle schwieriger macht.
Da stellt sich die Frage: Können wir die Leistung eines quantisierungsbewussten Trainings erreichen und gleichzeitig die Zeit- und Dateneffizienz der Quantisierung nach dem Training beibehalten?
Um das Problem der Quantisierungsparameteroptimierung während des Post-Trainings großer Sprachmodelle zu lösen, schlug eine Gruppe von Forschern des Shanghai Artificial Intelligence Laboratory, der University of Hong Kong und der Chinese University of Hong Kong „OmniQuant: Omnidirektional“ vor Kalibrierte Quantisierung für große Sprachmodelle“. Dieser Algorithmus unterstützt nicht nur die Quantisierung von Gewichten und Aktivierungen in großen Sprachmodellen, sondern kann sich auch an eine Vielzahl unterschiedlicher Quantisierungsbiteinstellungen anpassen.
ArXiv-Papieradresse: https://arxiv.org/abs/2308.13137
OpenReview-Papieradresse: https://openreview.net/forum?id=8Wuvhh0LYW
Codeadresse: https://github. com/OpenGVLab/OmniQuant
Framework-Methode
Wie in der Abbildung oben gezeigt, ist OmniQuant eine differenzierbare Quantisierungstechnologie für große Sprachmodelle (LLM), die sowohl die Nur-Gewichts-Quantisierung als auch die gleichzeitige Gewichtungsaktivierungswert-Quantisierung unterstützt. Darüber hinaus erhält es bei der Erzielung eines leistungsstarken Quantisierungsmodells die Effizienz der Trainingszeit und die Dateneffizienz der Quantisierung nach dem Training. OmniQuant kann beispielsweise die Quantisierungsparameter der Modelle LLaMA-7B bis LLaMA70B innerhalb von 1–16 Stunden auf einer einzelnen Karte A100–40 GB aktualisieren.
Um dieses Ziel zu erreichen, verwendet OmniQuant ein Framework zur blockweisen Quantisierungsfehlerminimierung. Gleichzeitig hat OmniQuant zwei neuartige Strategien entwickelt, um die lernbaren Quantisierungsparameter zu erhöhen, darunter das lernbare Gewichtungs-Clipping (LWC), um die Schwierigkeit der Quantisierung von Gewichten zu verringern, und eine lernbare äquivalente Transformation (Learnable Equivalent Transformation, LET), die die Quantisierungsherausforderung weiter verschiebt von Aktivierungswerten bis hin zu Gewichten.
Darüber hinaus können alle von OmniQuant eingeführten lernbaren Parameter nach Abschluss der Quantisierung zusammengeführt und eliminiert werden, und das Quantisierungsmodell kann auf der Grundlage vorhandener Tools auf mehreren Plattformen bereitgestellt werden, einschließlich GPU, Android, IOS usw.
Blockweise Quantisierungsfehlerminimierung
OmniQuant schlägt einen neuen Optimierungsprozess vor, der die blockweise Quantisierungsfehlerminimierung nutzt und zusätzliche Quantisierungsparameter auf differenzierbare Weise optimiert. Darunter wird das Optimierungsziel wie folgt formuliert:
wobei F die Abbildungsfunktion eines Transformatorblocks in LLM darstellt, W und die Quantisierungsparameter beim lernbaren Gewichtungsclipping (LWC) bzw. der lernbaren äquivalenten Transformation (LET) sind . OmniQuant installiert die blockweise Quantisierung, um Parameter in einem Transformer-Block nacheinander zu quantisieren, bevor zum nächsten übergegangen wird. Learnable Weight Clipping (LWC)
Äquivalente Transformation führt eine Größenübertragung zwischen Modellgewichten und Aktivierungswerten durch. Die von OmniQuant übernommene lernbare äquivalente Transformation führt dazu, dass sich die Verteilung der Modellgewichte mit dem Training während des Parameteroptimierungsprozesses kontinuierlich ändert. Bisherige Methoden zum direkten Erlernen von Gewichtsbegrenzungsschwellen [1,2] sind nur dann geeignet, wenn sich die Gewichtsverteilung nicht drastisch ändert, da es sonst schwierig wird, zu konvergieren. Basierend auf diesem Problem optimiert LWC im Gegensatz zu früheren Methoden, die den Gewichts-Clipping-Schwellenwert direkt lernen, die Clipping-Intensität auf folgende Weise:
wobei ⌊⋅⌉ die Rundungsoperation darstellt. N ist die Zielanzahl der Ziffern. und W repräsentieren die quantisierten bzw. vollpräzisen Gewichte. h ist der Normalisierungsfaktor der Gewichte und z ist der Nullpunktwert. Die Klemmoperation begrenzt den quantisierten Wert auf den Bereich von N-Bit-Ganzzahlen, also . In der obigen Formel sind und die erlernbaren Clipping-Stärken der oberen bzw. unteren Gewichtsgrenze. Daher in der Optimierungszielfunktion .
Learnable Equivalent Transformation (LET)
Zusätzlich zur Optimierung des Clipping-Schwellenwerts, um LWC mit für die Quantisierung besser geeigneten Gewichten zu erreichen, reduziert OmniQuant die Schwierigkeit der Quantisierung von Aktivierungswerten durch LET weiter. In Anbetracht der Tatsache, dass in bestimmten Kanälen Ausreißer in LLM-Aktivierungswerten vorhanden sind, übertragen frühere Methoden wie SmoothQuant [3] und Outlier Supression+[4] die Schwierigkeit der Quantifizierung von Aktivierungswerten auf Gewichte durch mathematisch äquivalente Transformationen.
Äquivalente Transformationsparameter, die durch manuelle Auswahl oder gierige Suche erhalten werden, schränken jedoch die Leistung des quantisierten Modells ein. Dank der Einführung der blockweisen Quantisierungsfehlerminimierung kann OmniQuants LET die optimalen äquivalenten Transformationsparameter auf differenzierbare Weise bestimmen. Inspiriert von der Unterdrückung von Ausreißern+~citep {outlier-plus} werden Skalierung und Verschiebung auf Kanalebene verwendet, um die Aktivierungsverteilung zu manipulieren und so eine effektive Lösung für das Ausreißerproblem bei Aktivierungswerten bereitzustellen. Insbesondere untersucht OmniQuant äquivalente Transformationen in linearen Ebenen und Aufmerksamkeitsoperationen.
Äquivalente Transformation in einer linearen Schicht: Eine lineare Schicht akzeptiert eine Eingabesequenz von Token , wobei T die Tokenlänge und das Produkt aus der Gewichtsmatrix und dem Bias-Vektor ist. Der mathematisch äquivalente lineare Layer-Ausdruck lautet:
wobei Y die Ausgabe darstellt, und Skalierungs- bzw. Verschiebungsparameter auf Kanalebene sind, und äquivalente Aktivierungen, Gewichtungen bzw. Vorspannungen sind, ⊘ und ⊙ Division und Multiplikation auf Elementebene darstellen. Durch die äquivalente Umwandlung der obigen Formel wird der Aktivierungswert in eine Form umgewandelt, die einfacher zu quantifizieren ist, allerdings auf Kosten der Schwierigkeit, das Gewicht zu quantifizieren. In diesem Sinne kann LWC die durch LET erzielte Modellquantisierungsleistung verbessern, da es die Quantifizierung der Gewichte erleichtert. Schließlich quantisiert OmniQuant die transformierten Aktivierungen und Gewichte wie folgt
wobei Q_a der gewöhnliche MinMax-Quantisierer und Q_w der MinMax-Quantisierer mit lernbarer Gewichtsbeschneidung (d. h. der vorgeschlagene LWC) ist.
Äquivalente Transformation in Aufmerksamkeitsoperationen: Zusätzlich zu den linearen Schichten nehmen Aufmerksamkeitsoperationen auch den größten Teil der LLM-Berechnungen ein. Darüber hinaus erfordert der autoregressive Inferenzmodus von LLM die Speicherung eines Schlüsselwert-Cache (KV) für jedes Token, was zu enormen Speicheranforderungen für lange Sequenzen führt. Daher erwägt OmniQuant auch die Quantisierung der Q/K/V-Matrix in autonomen Kraftberechnungen auf niedrige Bits. Konkret kann die lernbare äquivalente Transformation in der Selbstaufmerksamkeitsmatrix wie folgt geschrieben werden:
wobei Skalierungsfaktor. Die quantitative Berechnung bei der Selbstaufmerksamkeitsberechnung wird als ausgedrückt. Hier verwendet OmniQuant auch das MinMax-Quantisierungsschema als zur Quantisierung der -Matrix. Daher wird in der Zielfunktion letztendlich optimiert.
Pseudocode
Der Pseudoalgorithmus von OmniQuant ist in der Abbildung oben dargestellt. Beachten Sie, dass die durch LWC und LET eingeführten zusätzlichen Parameter nach der Quantisierung des Modells eliminiert werden können, d. h. OmniQuant verursacht keinen zusätzlichen Overhead für das quantisierte Modell, sodass es direkt an vorhandene Quantisierungsbereitstellungstools angepasst werden kann.
Experimentelle Leistung
Die obige Abbildung zeigt die experimentellen Ergebnisse der reinen Gewichtsquantifizierungsergebnisse von OmniQuant für das LLaMA-Modell. Weitere Ergebnisse des OPT-Modells finden Sie im Originaltext. Wie man sehen kann, übertrifft OmniQuant frühere Modelle in verschiedenen LLM-Modellen (OPT, LLaMA-1, LLaMA-2) und verschiedenen Quantisierungskonfigurationen (einschließlich W2A16, W2A16g128, W2A16g64, W3A16, W3A16g128, W4A16 und W4A16g128) durchweg. LLM ist eine Gewichtsquantifizierung Nur Methode. Gleichzeitig demonstrieren diese Experimente die Vielseitigkeit von OmniQuant und seine Fähigkeit, sich an eine Vielzahl von Quantifizierungskonfigurationen anzupassen. Während beispielsweise AWQ [5] besonders effektiv bei der Gruppenquantisierung ist, zeigt OmniQuant eine überlegene Leistung sowohl bei der Quantisierung auf Kanal- als auch auf Gruppenebene. Darüber hinaus werden die Leistungsvorteile von OmniQuant noch deutlicher, wenn die Anzahl der Quantisierungsbits abnimmt.
In einer Umgebung, in der sowohl Gewichtungen als auch Aktivierungen quantisiert werden, liegt der Schwerpunkt des Experiments auf der W6A6- und W4A4-Quantisierung. Die W8A8-Quantisierung wurde aus dem Versuchsaufbau ausgeschlossen, da frühere SmoothQuant-Modelle im Vergleich zu Modellen mit voller Präzision eine nahezu verlustfreie W8A8-Modellquantisierung erreichten. Die obige Abbildung zeigt die experimentellen Ergebnisse der Quantifizierung der Gewichtsaktivierungswerte durch OmniQuant am LLaMA-Modell. Insbesondere verbessert OmniQuant die durchschnittliche Genauigkeit verschiedener Modelle der W4A4-Quantifizierung erheblich, wobei die Steigerungen zwischen +4,99 % und +11,80 % liegen. Insbesondere im LLaMA-7B-Modell übertrifft OmniQuant sogar die aktuelle quantisierungsbewusste Trainingsmethode LLM-QAT [6] um einen deutlichen Vorsprung von +6,22 %. Diese Verbesserung zeigt die Wirksamkeit der Einführung zusätzlicher lernbarer Parameter, die vorteilhafter ist als die globalen Gewichtsanpassungen, die beim quantisierungsbewussten Training verwendet werden.
Gleichzeitig können mit OmniQuant quantisierte Modelle nahtlos auf MLC-LLM [7] eingesetzt werden. Die obige Abbildung zeigt den Speicherbedarf und die Inferenzgeschwindigkeit des Quantisierungsmodells der LLaMA-Serie auf NVIDIA A100-80G.
Weights Memory (WM) stellt die quantisierte Gewichtsspeicherung dar, während Running Memory (RM) den Speicher während der Inferenz darstellt, wobei letzterer höher ist, da bestimmte Aktivierungswerte beibehalten werden. Die Inferenzgeschwindigkeit wird durch die Generierung von 512 Token gemessen. Es ist offensichtlich, dass das quantisierte Modell den Speicherverbrauch im Vergleich zum 16-Bit-Modell mit voller Genauigkeit erheblich reduziert. Darüber hinaus verdoppelt die Quantisierung W4A16g128 und W2A16g128 die Inferenzgeschwindigkeit nahezu.
Es ist erwähnenswert, dass MLC-LLM [7] auch die Bereitstellung des OmniQuant-Quantifizierungsmodells auf anderen Plattformen unterstützt, einschließlich Android-Telefonen und IOS-Telefonen. Wie in der Abbildung oben gezeigt, verwendet die aktuelle Anwendung Private LLM den OmniQuant-Algorithmus, um die speichereffiziente Bereitstellung von LLM auf mehreren Plattformen wie iPhone, iPad, macOS usw. abzuschließen.
Zusammenfassung
OmniQuant ist ein fortschrittlicher Quantisierungsalgorithmus für große Sprachmodelle, der die Quantisierung auf ein Low-Bit-Format erweitert. Das Kernprinzip von OmniQuant besteht darin, die ursprünglichen Gewichte mit voller Präzision beizubehalten und gleichzeitig lernbare Quantisierungsparameter hinzuzufügen. Es nutzt lernbare Gewichtsverbindungen und äquivalente Transformationen, um die Quantisierungskompatibilität von Gewichten und Aktivierungswerten zu optimieren. Durch die Integration von Gradientenaktualisierungen sorgt OmniQuant für eine mit bestehenden PTQ-Methoden vergleichbare Trainingszeit- und Dateneffizienz. Darüber hinaus gewährleistet OmniQuant Hardwarekompatibilität, da die zusätzlichen trainierbaren Parameter ohne zusätzlichen Aufwand in das Originalmodell integriert werden können. ?? -Trainingsquantisierung für große Sprachmodelle.
[4] Ausreißerunterdrückung+: Genaue Quantisierung großer Sprachmodelle durch äquivalente und optimale Verschiebung und Skalierung.
[5] Awq: Aktivierungsbewusste Gewichtsquantisierung für llm-Komprimierung und Beschleunigung.
[6] Llm-qat: Datenfreies Quantisierungsbewusstes Training für große Sprachmodelle.
[7] MLC-LLM: https://github.com/mlc-ai/mlc-llm
Das obige ist der detaillierte Inhalt vonICLR 2024 Spotlight |. Großes Sprachmodellgewicht, Aktivierung, umfassende Low-Bit-Mikronisierung, wurde in die kommerzielle APP integriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!