Quantisieren Sie Aktivierungen, Gewichte und Verläufe in 4 Bits, was das Training neuronaler Netze voraussichtlich beschleunigen wird.
Bestehende 4-stellige Trainingsmethoden erfordern jedoch ein benutzerdefiniertes Zahlenformat, das von moderner Hardware nicht unterstützt wird.
Kürzlich hat das Team von Tsinghua Zhu Jun eine Transformer-Trainingsmethode vorgeschlagen, die den INT4-Algorithmus verwendet, um alle Matrixmultiplikationen zu implementieren.
Das Training mit extrem niedriger INT4-Genauigkeit ist eine große Herausforderung. Um dieses Ziel zu erreichen, analysierten die Forscher sorgfältig die spezifischen Strukturen von Aktivierungen und Gradienten in Transformer und schlugen dafür spezielle Quantisierer vor.
Für die Vorwärtsausbreitung identifizierten die Forscher die Herausforderung von Ausreißern und schlugen den Hadamard-Quantisierer zur Unterdrückung von Ausreißern vor.
Für die Backpropagation nutzen sie die strukturelle Spärlichkeit von Gradienten aus, indem sie eine Bitpartitionierung vorschlagen, und nutzen fraktionierte Abtasttechniken, um Gradienten genau zu quantifizieren.
Dieser neue Algorithmus erreicht wettbewerbsfähige Genauigkeit bei einer Vielzahl von Aufgaben, einschließlich des Verständnisses natürlicher Sprache, maschineller Übersetzung und Bildklassifizierung.
Der Prototyp des linearen Operators ist 2,2-mal schneller als vergleichbare Operatoren im FP16 und die Trainingsgeschwindigkeit wurde um 35,1 % erhöht.
Bilder
Papieradresse: https://arxiv.org/abs/2306.11987
Codeadresse: https://github.com/xijiu9/Train_Transformers_with_INT4
Das Training neuronaler Netze ist sehr rechenintensiv. Es wird erwartet, dass das Training mit Arithmetik geringer Genauigkeit (vollständig quantisiertes Training/FQT) die Rechen- und Gedächtniseffizienz verbessert.
Die FQT-Methode fügt dem ursprünglichen Berechnungsdiagramm mit voller Genauigkeit einige Quantisierer und Dequantisierer hinzu und ersetzt die teureren Gleitkommaoperationen durch kostengünstigere Gleitkommaoperationen mit niedriger Genauigkeit.
FQT-Forschung zielt darauf ab, die numerische Genauigkeit des Trainings zu reduzieren, ohne zu viel Konvergenzgeschwindigkeit oder -genauigkeit zu opfern.
Die erforderliche numerische Genauigkeit wurde von FP16 auf FP8, INT32+INT8 und INT8+INT5 reduziert.
FP8-Training ist in der Nvidia H100-GPU mit Transformer-Engine implementiert, wodurch das Training großer Transformer beschleunigt wird. Die numerische Genauigkeit des letzten Trainings ist auf 4 Stellen gesunken.
Diese 4-Bit-Trainingsmethoden können jedoch nicht direkt zur Beschleunigung verwendet werden, da sie benutzerdefinierte Zahlenformate erfordern, die von moderner Hardware nicht unterstützt werden.
Zuallererst führt der nicht differenzierbare Quantisierer bei der Vorwärtsausbreitung zu einer holprigen Verlustsituation, und der auf Gradienten basierende Optimierer kann leicht in ein lokales Optimum fallen.
Zweitens wird die Steigung nur mit geringer Präzision angenähert. Solche ungenauen Gradienten können den Trainingsprozess verlangsamen und sogar dazu führen, dass das Training instabil wird oder divergiert.
In dieser Arbeit schlugen die Forscher einen neuartigen INT4-Trainingsalgorithmus für Transformer vor.
Bilder
Alle kostenintensiven linearen Operationen für das Training von Transformer können in Form einer Matrixmultiplikation (MM) geschrieben werden.
Dieses MM-Formular ermöglicht es uns, einen flexibleren Quantisierer zu entwerfen, der die FP32-Matrixmultiplikation besser annähern kann, indem er die spezifische Struktur von Aktivierungen, Gewichten und Gradienten in Transformer nutzt.
Fortschritte auf dem Gebiet der zufälligen numerischen linearen Algebra (RandNLA) werden von diesem Quantisierer voll ausgenutzt.
Für die Vorwärtsausbreitung fanden Forscher heraus, dass Ausreißer bei der Aktivierung der Hauptgrund für die Abnahme der Genauigkeit sind.
Um Ausreißer zu unterdrücken, schlugen sie den Hadamard-Quantisierer vor, der die transformierte Version der Aktivierungsmatrix quantisiert. Bei dieser Transformation handelt es sich um eine blockdiagonale Hadamard-Matrix, die die in den Ausreißern enthaltenen Informationen an benachbarte Einträge der Matrix weitergibt und dadurch den numerischen Bereich der Ausreißer einschränkt.
Für die Rückausbreitung nutzen sie die strukturelle Spärlichkeit des Aktivierungsgradienten. Forscher fanden heraus, dass einige Token sehr große Gradienten aufweisen. Gleichzeitig sind die Gradienten der meisten anderen Token sehr gleichmäßig, sogar gleichmäßiger als die quantisierten Residuen großer Gradienten.
Bilder
Anstatt also alle Steigungen zu berechnen, ist es besser, die Rechenressourcen für die Berechnung der größeren Steigungsreste zu sparen.
Um diese Sparsität auszunutzen, schlugen die Forscher eine Bitpartitionierung vor, die den Gradienten jedes Tokens in hohe 4 Bits und niedrige 4 Bits unterteilt.
Dann wird der aussagekräftigste Gradient durch Leverage-Score-Sampling ausgewählt, eine wichtige Sampling-Technik von RandNLA.
Bilder
Durch die Kombination der Quantisierungstechniken der Vorwärts- und Rückwärtsausbreitung schlugen die Forscher einen Algorithmus vor, der INT4MM verwendet, um alle linearen Operationen in Transformer auszuführen, und evaluierten den Algorithmus zum Trainieren von Transformer für verschiedene Aufgaben, einschließlich natürlicher Sprache Verständnis, Beantwortung von Fragen, maschinelle Übersetzung und Bildklassifizierung.
Ihr Algorithmus erreicht eine konkurrenzfähige oder höhere Genauigkeit im Vergleich zu bestehenden 4-Bit-Trainingsalgorithmen.
Darüber hinaus ist dieser Algorithmus mit moderner Hardware wie GPUs kompatibel, da er keine benutzerdefinierten Zahlenformate wie FP4 oder logarithmische Formate erfordert.
Diese Implementierung des Prototyps Quantisierung + INT4 MM-Operator ist 2,2-mal schneller als die FP16MM-Basislinie und erhöht die Trainingsgeschwindigkeit um 35,1 %.
Vollständig quantisierte Trainingsmethoden (FQT) beschleunigen das Training, indem sie Aktivierungen, Gewichte und Gradienten auf niedrige Präzision quantisieren, sodass lineare und nichtlineare Operatoren während des Trainings mit Low implementiert werden können -Präzisionsarithmetik.
FQT-Forschung hat neuartige numerische Formate und Quantisierungsalgorithmen entwickelt, die Tensoren mit voller Präzision besser approximieren können.
Der aktuelle Forschungsschwerpunkt ist 4-Bit-FQT. FQT ist aufgrund des großen numerischen Bereichs von Gradienten und des Optimierungsproblems beim Training eines quantisierten Netzwerks von Grund auf eine Herausforderung.
Aufgrund dieser Herausforderungen leiden bestehende 4-Bit-FQT-Algorithmen bei einigen Aufgaben immer noch unter einem Genauigkeitsverlust von 1–2,5 % und können moderne Hardware nicht unterstützen.
Bilder
Das Mischen von Experten erhöht die Modellkapazität, ohne das Trainingsbudget zu erhöhen.
Structural Dropout nutzt recheneffiziente Methoden zur Regularisierung des Modells. Effiziente Aufmerksamkeit reduziert die quadratische Zeitkomplexität der Aufmerksamkeitsberechnung.
Das verteilte Trainingssystem reduziert die Trainingszeit, indem es mehr Rechenressourcen nutzt.
Die Arbeit der Forscher zur Reduzierung der numerischen Genauigkeit verläuft orthogonal zu diesen Richtungen.
Bilder
Vorwärtsausbreitung
Neuronales Netzwerktraining ist ein iterativer Optimierungsprozess, der stochastische Gradienten durch Vorwärts- und Rückwärtsausbreitung berechnet.
Das Forschungsteam verwendet einen 4-Bit-Integer-Algorithmus (INT4), um die Vorwärts- und Rückwärtsausbreitung zu beschleunigen.
Die Vorwärtsausbreitung kann mit einer Kombination aus linearen und nichtlinearen Operatoren (GeLU, Normalisierung, Softmax usw.) implementiert werden.
Während unseres Trainingsprozesses beschleunigen wir alle linearen Operatoren mit INT4-Arithmetik und behalten alle rechentechnisch kostengünstigeren nichtlinearen Operatoren im 16-Bit-Gleitkommaformat (FP16) bei.
Alle linearen Operationen in Transformer können in Form einer Matrixmultiplikation (MM) geschrieben werden.
Der Einfachheit halber betrachtet dieser Artikel die folgende Beschleunigung der einfachen Matrixmultiplikation:
Bild
Der Hauptanwendungsfall dieser Art von MM ist die vollständig verbundene Schicht.
Stellen Sie sich einen Transformator vor, dessen Eingabeform (Chargengröße S, Sequenzlänge T, Dimension D) ist.
Die vollständig verbundene Schicht kann wie die obige Formel ausgedrückt werden, wobei X die Aktivierung von N = STtoken und W die Gewichtsmatrix ist.
Für die Aufmerksamkeitsschicht ist möglicherweise eine Batch-Matrix-Multiplikation (BMMS) erforderlich.
Unsere vorgeschlagene Technologie kann auf BMMS angewendet werden.
Um das Training zu beschleunigen, müssen ganzzahlige Operationen zur Berechnung der Vorwärtsausbreitung verwendet werden.
Zu diesem Zweck nutzten die Forscher den Learning Step Quantizer (LSQ).
LSQ ist eine statische Quantisierungsskala, die nicht von der Eingabemethode abhängt, daher ist sie kostengünstiger als dynamische Quantisierungsmethoden, die die Quantisierungsskala in jeder Iteration dynamisch berechnen müssen.
Aktivieren von Ausreißern
Die einfache Anwendung von LSQ auf FQT mit 4-Bit-Aktivierungen/Gewichten führt zu einer verringerten Genauigkeit, da Ausreißer aktiviert werden.
Bild
Wie im Bild oben gezeigt, weist die Aktivierung einige Ausreißereinträge auf, die viel größer sind als andere Einträge.
Leider neigen Transformer dazu, Informationen in diesen Ausreißern zu speichern, und eine solche Kürzung kann die Genauigkeit ernsthaft beeinträchtigen.
Das Ausreißerproblem ist besonders offensichtlich, wenn die Trainingsaufgabe darin besteht, ein vorab trainiertes Modell auf einige neue nachgelagerte Aufgaben abzustimmen.
Weil das vorab trainierte Modell mehr Ausreißer enthält als die zufällige Initialisierung.
Wir schlagen Hadamard-Quantisierung (HQ) vor, um das Ausreißerproblem zu lösen.
Die Hauptidee besteht darin, eine andere Matrix in einem linearen Raum mit weniger Ausreißern zu quantisieren.
Ausreißer in der Aktivierungsmatrix bilden eine merkmalsbezogene Struktur.
Sie sind normalerweise auf wenige Dimensionen konzentriert, das heißt, nur wenige Spalten in X sind deutlich größer als andere Spalten.
Die Hardamand-Transformation ist eine lineare Transformation, die Ausreißer auf andere Einträge verteilt.
Backpropagation
Jetzt erwägen wir die Verwendung von INT4-Operationen, um die Backpropagation linearer Ebenen zu beschleunigen.
In diesem Abschnitt besprechen wir die Berechnung des Aktivierungsgradienten/Gewichtsgradienten.
Wir haben festgestellt, dass die Gradientenmatrix während des Trainings tendenziell sehr spärlich ist.
Und die Sparsity hat eine solche Struktur: Einige Zeilen von
(z. B. Token) haben große Einträge, während die meisten anderen Zeilen nahe an Nullvektoren liegen.
Bilder
Diese strukturelle Spärlichkeit resultiert aus der starken Überparametrisierung moderner neuronaler Netze.
Das Netzwerk läuft fast während des gesamten Trainingsprozesses in einem hyperparametrisierten Schema und passt sich bis auf einige schwierige Beispiele gut an die meisten Trainingsdaten an.
Für gut angepasste Datenpunkte liegt der (Aktivierungs-)Gradient also nahe bei Null.
Forscher haben herausgefunden, dass beispielsweise bei Aufgaben vor dem Training nach einigen Trainingsepochen schnell strukturelle Spärlichkeit auftritt.
Für Feinabstimmungsaufgaben ist der Gradient während des gesamten Trainingsprozesses immer gering.
Wie entwerfe ich einen Gradientenquantisierer, um MM während der Backpropagation mithilfe struktureller Sparsity genau zu berechnen?
Die fortgeschrittene Idee ist: Viele Gradientenreihen sind so klein, dass sie kaum Einfluss auf Parametergradienten haben, aber viele Berechnungen verschwenden.
Andererseits können große Banken durch INT4 nicht genau abgebildet werden.
Wir lassen einige kleine Zeilen weg und nutzen die eingesparte Rechenleistung, um große Zeilen genauer darzustellen.
Experimente
Forscher evaluieren die Feinabstimmung unseres INT4-Trainingsalgorithmus für eine Vielzahl von Aufgaben, darunter Sprachmodelle, maschinelle Übersetzung und Bildklassifizierung.
Die Forscher verwendeten CUDA und Cutlass, um ihre vorgeschlagenen HQ-MM- und LSS-MM-Algorithmen auszuführen.
Die Forscher ersetzten alle Gleitkomma-Linearoperatoren durch INT4-Implementierungen, nutzten jedoch nicht einfach LSQ, um die Schichten einzubetten und die Genauigkeit der letzten Klassifikatorschicht aufrechtzuerhalten.
Schließlich übernahmen die Forscher die Standardarchitektur, den Optimierer, den Scheduler und die Hyperparameter für alle bewerteten Modelle.
Die Forscher verglichen die Genauigkeit der konvergenten Modelle bei verschiedenen Aufgaben in der folgenden Tabelle.
Bilder
Zum Vergleich umfassen die Methoden Full Precision Training (FP), INT8 Training (INT8), FP4 Training („ultra low“), Verwendung von LSQ zur Aktivierung und Gewichtung (LSQ+LUQ) Logarithmische 4-Bit-Quantifizierung und unser Algorithmus, der HQ für die Vorwärtsausbreitung und LSS für die Rückausbreitung (HQ+LSS) verwendet.
„Ultra Low“ hat keine öffentliche Implementierung, daher listen wir seine Leistung nur im Originalpapier zur maschinellen Übersetzungsaufgabe auf.
Mit Ausnahme der großen maschinellen Übersetzungsaufgabe und der großen visuellen Transformer-Aufgabe wiederholen wir jeden Lauf dreimal und geben die Standardabweichung als Index in der Tabelle an.
Die Forscher führten keinerlei Wissensdestillation oder Datenerweiterung durch.
Der Zweck des von den Forschern durchgeführten Ablationsexperiments bestand darin, die Wirksamkeit der Vorwärts- und Rückwärtsmethoden zu demonstrieren.
Um die Wirksamkeit der Vorwärtsausbreitung für verschiedene Quantisierer zu untersuchen, belassen wir die Rückwärtsausbreitung im FP16.
Die Ergebnisse sind im Bild unten dargestellt.
Bilder
Abschließend demonstrierten die Forscher das Potenzial ihres Ansatzes zur Beschleunigung des Trainings neuronaler Netze, indem sie ihre Prototypenimplementierung evaluierten.
Und ihre Umsetzung ist noch nicht vollständig optimiert.
Die Forscher haben auch keine linearen Operatoren mit Nichtlinearität und Normalisierung verschmolzen.
Daher spiegeln die Ergebnisse das Potenzial des INT4-Trainingsalgorithmus nicht vollständig wider.
Eine vollständig optimierte Implementierung erfordert umfangreiches Engineering und geht über den Rahmen unseres Dokuments hinaus.
Die Forscher schlugen eine hardwarefreundliche Trainingsmethode für Transformer INT4 vor.
Durch die Analyse der Eigenschaften von MM in Transformer schlugen die Forscher HQ- und LSS-Methoden vor, um Aktivierungen und Gradienten zu quantifizieren und gleichzeitig die Genauigkeit beizubehalten.
Bei mehreren wichtigen Aufgaben schneidet unsere Methode gleich gut oder sogar besser ab als die bestehende INT4-Methode.
Die Arbeit der Forscher kann neben Transformern auch auf andere MM-Architekturen ausgeweitet werden, wie z. B. MLP-Mixer, graphische neuronale Netze und wiederkehrende neuronale Netze.
Dies ist ihre zukünftige Forschungsrichtung.
Größere Wirkung:Der Algorithmus der Forscher kann die Effizienz steigern und den Energieverbrauch beim Training neuronaler Netze senken, was dazu beitragen könnte, die durch Deep Learning verursachten CO2-Emissionen zu reduzieren.
Effiziente Trainingsalgorithmen können jedoch auch die Entwicklung großer Sprachmodelle und bösartiger KI-Anwendungen erleichtern, die ein Risiko für die menschliche Sicherheit darstellen.
Zum Beispiel verwandte Modelle und Anwendungen, die zur Erzeugung falscher Inhalte verwendet werden.
Einschränkungen:Die Haupteinschränkung dieser Arbeit besteht darin, dass große Modelle nur mit Matrixmultiplikationen in größerem Maßstab (lineare Schichten) beschleunigt werden können, nicht jedoch mit Faltungsschichten.
Darüber hinaus ist die vorgeschlagene Methode nicht gut auf sehr große Modelle wie OPT-175B anwendbar.
Soweit wir wissen, ist selbst das INT8-Training für diese sehr großen Modelle immer noch ein ungelöstes Problem.
Das obige ist der detaillierte Inhalt vonDie neue Arbeit des Teams von Tsinghua Zhu Jun: Verwenden Sie 4-stellige Ganzzahlen, um Transformer zu trainieren, was 2,2-mal schneller als FP16 und 35,1 % schneller ist und die Einführung von AGI beschleunigt!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!