Die AIxiv-Kolumne ist eine Kolumne, in der akademische und technische Inhalte auf dieser Website veröffentlicht werden. In den letzten Jahren sind in der AIxiv-Kolumne dieser Website mehr als 2.000 Berichte eingegangen, die Spitzenlabore großer Universitäten und Unternehmen auf der ganzen Welt abdecken und so den akademischen Austausch und die Verbreitung wirksam fördern. Wenn Sie hervorragende Arbeiten haben, die Sie teilen möchten, können Sie gerne einen Beitrag leisten oder uns für die Berichterstattung kontaktieren. Einreichungs-E-Mail: liyazhou@jiqizhixin.com; zhaoyunfeng@jiqizhixin.com
Da Deep Learning große Sprachmodelle immer beliebter werden, werden große Sprachmodelle immer größer, wodurch auch ihre Inferenzkosten steigen. Die Modellquantifizierung ist zu einem beliebten Forschungsthema geworden.
Kürzlich hat ByteDance eine neue Quantifizierungsidee auf den Markt gebracht, die das traditionelle Quantifizierungsparadigma aufgibt und Quantifizierungsaufgaben aus der Perspektive der mathematischen Optimierung modelliert. Der Artikel ist auf arXiv veröffentlicht und der Code ist Open Source. Alle Ergebnisse im Artikel können mit einem Klick reproduziert werden. Diese Quantifizierungsidee basiert auf der mathematischen Optimierung, der Modellierung der Quantifizierungsaufgabe aus der Perspektive der mathematischen Optimierung und der Suche nach der optimalen Lösung durch Maximierung der Zielfunktion oder Minimierung der Verlustfunktion. Diese Idee hat in Experimenten gute Ergebnisse erzielt und zufriedenstellende Ergebnisse erzielt. 🔜 /github.com/NVIDIA/TensorRT-LLM/pull/1568
2. Traditionelle Quantisierung
wobei die Gleitkommagewichte des Modells vor der Quantisierung sind; s und z sind lineare Transformationskoeffizienten, die Skalierung und darstellen Nullpunkt; α und β sind die Ober- und Untergrenzen des ganzzahligen Darstellungsbereichs. Für die int4-Quantisierung kann beispielsweise α = -8 verwendet werden, β = 7 stellt die Rundungsfunktion dar, die im Allgemeinen auf den nächsten Wert gerundet wird ganze Zahl.
In Bezug auf die Werte von s und z können wir im Allgemeinen für die asymmetrische Quantisierung Folgendes annehmen:Auf diese Weise werden in
verteilte Gleitkommagewichte linear auf den Intervallbereich vonabgebildet.
Bei der inversen Quantisierung wird im Allgemeinen die folgende Formel verwendet:
Bei diesem traditionellen Quantisierungsschema müssen wir auf viele detaillierte Aspekte achten, die nur für die Quantisierung gelten. Für empfindliche Kanäle verfügen wir beispielsweise über Methoden zur Verarbeitung empfindlicher Kanäle ; Für Ausreißer haben wir eine Ausreißerverarbeitungsmethode. Dieses Verarbeitungsparadigma der Behandlung von Kopfschmerzen und der Behandlung von Kopfschmerzen ist in komplexen und sich ständig ändernden Geschäftsszenarien nur schwer zu bewältigen. Bytedance-Forscher versuchen, diese Probleme zu abstrahieren und Quantifizierungsprobleme aus einer Makroperspektive zu betrachten. Wir müssen nur eine abstrakte Optimierungszielfunktion erstellen und diese Zielfunktion dann lösen.
3.depairQWenn wir die Rolle der Gleichungen (1) bis (3) bei der Quantifizierung betrachten und unsere Denkweise ändern, werden wir feststellen, dass wir die Gleichungen (1) und (2) eigentlich nicht kennen müssen. Nachdem wir ein großes Modell quantifiziert und es den Studenten der nachgeschalteten Motoren übergeben haben, müssen wir nur noch und (s,z) in Gleichung (3) kennen. Mit anderen Worten: (s,z) in Gleichung (3) kann als Koeffizient einer gewöhnlichen affinen Transformation betrachtet werden, und es besteht keine Notwendigkeit, seine Bedeutung in Gleichung (2) beizubehalten. Der affine Transformationskoeffizient kann durch mathematische Optimierungsverfahren ermittelt werden.
Wenn wir uns weiter mit (3) befassen, können wir die Parameter eines großen Modells in den ganzzahligen Teil und den Gleitkommateil (s,z) entkoppeln. Nach einer solchen Entkopplung kann der Prozess der Modellquantisierung als ein Prozess der Lösung des ganzzahligen Teils und des Gleitkommateils (s,z) des Modells betrachtet werden. Alternativ können wir die Lösung optimieren. Hierzu müssen die Optimierungszielfunktion und ihre Randbedingungen bestimmt werden.
Für eine lineare Schicht können wir die folgende Optimierungszielfunktion konstruieren:
wobei die Eingabe der Schicht ist, eine symmetrische Matrix ist (wenn die Spalten von X nicht alle Null sind, dann ist H eine positiv definite symmetrische Matrix).
Im Allgemeinen können wir zur Verbesserung der Quantisierungsgenauigkeit die Quantisierung pro Kanal für die Gewichte des Modells verwenden. Bei der Quantisierung pro Kanal wird bei der Optimierung von Gleichung (4) jede Spalte von unabhängig optimiert. Wir müssen uns also nur auf eine der Spalten konzentrieren.
An dieser Stelle kann das Optimierungsziel wie folgt geschrieben werden: (Der Einfachheit halber werden die Symbole im Artikel neu definiert):
wo die Optimierungszielfunktion ist
wo , w ist eine bestimmte Spalte von und b befindet sich in der entsprechenden Spalte von . Die Definitionen anderer Symbole sind dieselben wie zuvor.
Tatsächlich stimmt die Optimierungszielfunktion (6) vollständig mit (4) überein, ist der inverse Quantisierungsprozess.
Die Umwandlung eines quantitativen Problems in ein mathematisches Optimierungsproblem der Form (5) ist der Schlüssel zur Unterscheidung von de CoupleQ von herkömmlichen quantitativen Arbeiten. Diese Transformation ermöglicht es uns, uns nur auf die Lösung von Gleichung (5) zu konzentrieren und müssen uns nicht mehr mit den Details der Quantisierung selbst wie Ausreißern usw. befassen.
Die Lösung von Gleichung (5) ist nicht einfach, da es Einschränkungen für gibt, insbesondere die nicht konvexe Einschränkung . In dem Artikel gibt der Autor eine alternative Lösungsidee an, das heißt, nach einer guten Initialisierung von (s, z) und w werden (s, z) und w abwechselnd iterativ gelöst. Beachten Sie beim Lösen von (s,z), dass Gleichung (5) eine uneingeschränkte quadratische Form in Bezug auf (s,z) ist. Sie können die Zielfunktion direkt ableiten und die Ableitung auf Null setzen, um die analytische Lösung zu erhalten. Bei der Lösung von w verwendet der Autor zwei Näherungsebenen. Die Näherung der ersten Ebene weist eine höhere Konvergenz auf, die Lösung ist jedoch langsam ist schneller.
Um die Genauigkeit des quantisierten Modells weiter zu verbessern, wies der Autor darauf hin, dass zusätzlich zur MSE-Minimierung auf Schichtebene auch eine MSE-Minimierung auf Blockebene durchgeführt werden kann, das heißt:
In In diesem Schritt führt der Autor eine Transformatorblockebene durch. Nachdem er jede lineare Schicht quantisiert hat, korrigiert er seinen ganzzahligen Teil und optimiert den Gleitkommateil (s, z) und die zugehörigen Parameter der Schichtnorm. Experimentelle Ergebnisse zeigen, dass dieser Schritt der Feinabstimmung die Genauigkeit des Modells weiter verbessern kann.
4. W2-Operator-Implementierung
Um auf das quantisierte Modell schließen zu können, ist die Unterstützung von quantisierten Operatoren in der Branche erforderlich. Die Autoren basieren auf dem w4-Operator in Tensorrt-LLM Entwickelte den Gemm-Cuda-Kernel von w2, um eine effiziente Inferenz des w2a16-Modells zu erreichen.
Das Quantisierungsmodell selbst wird in Form einer 2-Bit-Gewichtung geladen und im Videospeicher gespeichert, sodass es relativ wenig Videospeicher belegt. Unser Cuda-Kernel lädt das 2-Bit-Gewicht zur Laufzeit in das Register und verwendet dann Hardwareanweisungen, um es effizient in die bf16-Form umzuwandeln und Gemm-Operationen mit Aktivierung auszuführen. Da unser Szenario durch die Latenz begrenzt ist, ist die Stapelgröße in der Generierungsphase zu diesem Zeitpunkt relativ gering. Die Matrixmultiplikation ist durch den Gewichtsspeicherzugriff begrenzt. Diese Implementierung wird den Umfang des Speicherzugriffs erheblich reduzieren und die Leistung des Modells verbessern. Während des Implementierungsprozesses werden Algorithmussuche und SpiltK Parallel Reduce kombiniert, um die Leistung des Modells weiter zu verbessern. Laut tatsächlichen Messungen kann die Leistung von w2a16 Gemm auf der L-Karte um das 1,4- bis 1,7-fache verbessert werden im Vergleich zu w4a16.
operator Link: https://github.com/nvidia/tenorrt-llm/pull/1568
5. , und die Vergleichsergebnisse mit Open-Source-Experimenten sind angegeben:
Die internen experimentellen Ergebnisse sind:
In dieser Tabelle verwendet der Autor die Wortfehlerrate (WER), um die Genauigkeit von ASR zu messen. Die Autoren versuchten, das Modell mit verschiedenen Methoden auf W2A16g64 zu quantifizieren. Der Wert des Gleitkommamodells vor der Quantisierung beträgt 6,68 %. Nach der Quantisierung mit GPTQ [1] beträgt er 6,83 %. Der Wert der EntkopplungQ mit Blockminimierung beträgt nach der Quantisierung sehr ähnlich Gleitkommamodell vor der Quantisierung. Außerdem wird die für die Quantifizierung benötigte Zeit angegeben. Der Preis einer hohen Quantisierungsgenauigkeit besteht darin, dass die Quantisierung lange dauert. Im tatsächlichen Geschäft wird nach der Verwendung von de CoupleQ zur Quantifizierung des Modells der ganzzahlige Teil festgelegt und der beschriftete Datensatz zur Feinabstimmung von Skala und Null verwendet, wodurch die Genauigkeit des Modells weiter verbessert wird.
Die Ergebnisse des Open-Source-Vergleichsexperiments sind:
Diese Tabelle ist ein Vergleich der quantitativen Ergebnisse von de CoupleQ und anderen Methoden auf Llama-1/2. Als Bewertungsindex wird Perplexity (PPL) verwendet. Es ist ersichtlich, dass bei derselben Quantisierungskonfiguration der PPL von deoucpleQ die meiste Zeit niedriger ist als bei anderen Methoden.
6. Geschäftsvorteile
Die Quantifizierungstechnologie von de CoupleQ wird mittlerweile häufig in der Sprachabteilung von ByteDance eingesetzt. Es wurde in Spracherzeugungsmodellen (Text-to-Speech), Spracherkennungsmodellen (automatische Spracherkennung) usw. eingeführt und in Produkten wie Doubao, Feishu und Douyin implementiert. Eine große Anzahl von Online-Unternehmen zeigt, dass die Inferenzgenauigkeit von W4A16 basierend auf der De CoupleQ-Quantifizierung vollständig mit der fp16/bf16-Inferenz übereinstimmt. Die Genauigkeit von W2A16 ist nur geringfügig schlechter als die fp16/bf16-Genauigkeit (nach dem Gleitkommateil sft). die Genauigkeit liegt auf dem gleichen Niveau wie fp16/bf16) ). Obwohl in dem Papier nur die reine Gewichtsquantifizierung eingeführt wird, kann die Aktivierungsquantifizierung im tatsächlichen Geschäftsleben viel einfacher sein, nachdem das Gewicht gut quantifiziert wurde.
Im Vergleich zu fp16, w8fp16 und w4fp16 wurden gute Beschleunigungseffekte in Bezug auf die Hardwarebeschleunigung erzielt. In kleinen Chargen ist die Leistung der w2-Matrixmultiplikation 5-6-mal höher als bei fp16 und 1,5-1,7-mal höher als bei w4 . In Bezug auf interne Geschäftsmodelle weist w2fp16 eine Leistungsverbesserung um das 3- bis 5-fache im Vergleich zu fp16 und eine Leistungsverbesserung um das 1,25- bis 1,4-fache im Vergleich zu w4fp16 auf. Außerdem wird der durch das Modellgewicht belegte Speicher erheblich reduziert, wodurch ein besserer Speicher bereitgestellt wird Ausnutzung für die Laufzeit.
7. Zusammenfassung und Diskussion
Im Zusammenfassungs- und Diskussionsteil wies der Autor auch auf zwei Risiken hin, die decoupleQ derzeit birgt:
1 Verluste davor und danach werden minimiert. Die Minimierung des L2-Verlusts auf Schicht- oder Blockebene stellt jedoch möglicherweise nicht unbedingt die optimale Genauigkeit des endgültigen Modells dar
2 Im Optimierungsprozess der Gleichungen (5) und (7) beim Lösen von und (s,z ) wird nur ein kleiner Teil der Kalibrierungsdaten gelöst, wodurch es bei de CoupleQ leicht zu einer Überanpassung der Kalibrierungsdaten kommt.
Dennoch hat der Autor auch darauf hingewiesen, dass die Idee, die Modellparameter in den Ganzzahlteil und den Gleitkommateil zu entkoppeln, sehr sinnvoll ist. Wenn ein beschrifteter Datensatz vorhanden ist, können wir den ganzzahligen Teil nach der Quantisierung korrigieren und den beschrifteten Datensatz verwenden, um (s, z) gezielt zu trainieren und die Genauigkeit des Modells weiter zu verbessern. Dies stellt nicht nur die Generalisierungsleistung des Modells sicher (aufgrund des festen ganzzahligen Teils ), sondern kann seine Fähigkeit auch auf bestimmte Unteraufgaben ausüben (aufgrund des Gleitkommateils zur Feinabstimmung). Im eigentlichen Geschäft von ByteDance kann, nachdem die vorherige Version des Modells quantifiziert und online gestellt wurde, bei der Aktualisierung der nächsten Version nur der Gleitkommateil des Modells trainiert werden.
References:
1】 Elias Frantar, Saleh Ashkboos, Torsten Hoefler und Dan Alistarh.
【2】Wenqi Shao, Mengzhao Chen, Zhaoyang Zhang, Peng arXiv:2308.13137, 2023
【3】Ji Lin, Jiaming Tang, Haotian Tang, Shang Yang, Xingyu Dang und Song Han: Aktivierungsbewusste Gewichtsquantisierung für arXiv-Vorabdruck arXiv: 2306.00978, 2023.
Das obige ist der detaillierte Inhalt vonNeue Ideen zur Quantifizierung großer Byte-Open-Source-Modelle. Die Genauigkeit des 2-Bit-Quantisierungsmodells entspricht der von fp16. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!