Einheitsskalierung in Deep Learning-Modellen
Die Rolle der Einheitenskala für Gleitkommaformate im Deep Learning erkunden.
― 10 min Lesedauer
Inhaltsverzeichnis
- Vorgeschlagene FP8-Formate
- Ist die Einheitliche Standardabweichung das richtige Kriterium?
- Einheitliche Skalierung und aufkommende Ausreisser
- Theoretische Ergebnisse
- Kompendium der einheitlich skalierten Operationen
- Einheitliche Skalierung mit bestehenden Modellen in Einklang bringen
- Beispiel: BERT angleichen
- Rechenaufwand
- Fusing von Skalierungsfaktoren
- Zusätzliche experimentelle Details und Ergebnisse
- Zusätzliche Ergebnisse
- Originalquelle
- Referenz Links
Beim Thema Deep Learning sind Fliesskommaformate mega wichtig. Diese Formate bestimmen, wie Zahlen in Computern gespeichert und verarbeitet werden. Jedes Format hat ein spezifisches Layout, das Teile wie Exponentenbits und Mantissabits enthält. Der Exponent hilft uns, den Massstab der Zahl zu verstehen, während die Mantisse die Präzision anzeigt.
Hier ein schneller Überblick über gängige Fliesskommaformate, die im Deep Learning verwendet werden:
| Format | Exponentenbits | Mantissabits | Max Exponent | Min Exponent |
|---|---|---|---|---|
| FP32 | 8 | 23 | 127 | -126 |
| TF32 | 8 | 10 | 127 | -126 |
| BFLOAT16 | 8 | 7 | 127 | -126 |
| FP16 | 5 | 10 | 15 | -14 |
| FP8 E5 (a) | 5 | 2 | 15 | -15 |
| FP8 E5 (b) | 5 | 2 | 15 | -14 |
| FP8 E4 (a) | 4 | 3 | 7 | -7 |
| FP8 E4 (b) | 4 | 3 | 8 | -6 |
Vorgeschlagene FP8-Formate
Kürzlich wurden neue 8-Bit-Fliesskommaformate für das Deep Learning vorgeschlagen. Diese Formate beinhalten zwei Varianten: eine mit 4 Exponentenbits, genannt E4, und eine andere mit 5 Exponentenbits, E5. Diese Designs passen die Anzahl der Spezialwerte an, indem sie im Vergleich zum traditionellen IEEE 754-Standard verringert werden. Dieser Wechsel bietet leicht unterschiedliche Maximal- und Minimalwerte zur Darstellung.
Ein wichtiger Begriff bei der Analyse dieser Formate ist der Bias-Wert. Der Bias wird vom Exponenten subtrahiert, ähnlich wie im IEEE 754-Format. Das bedeutet, dass das Skalieren der Zahlen den Bereich der darstellbaren Werte steuern kann. Man könnte eher zu einem Skalierungsansatz tendieren, da er besser mit den Softwarepraktiken übereinstimmt, während der Exponenten-Bias-Ansatz relevanter für die Hardware ist.
Insgesamt sind die neuen FP8-Formate ziemlich ähnlich zu den etablierten 8-Bit-Formaten.
Ist die Einheitliche Standardabweichung das richtige Kriterium?
Wir meinen, dass es logisch ist, normalverteilte Tensoren mit einer einheitlichen Standardabweichung zu initialisieren. Ziel ist es, die Absolutwerte der Fliesskomma-Tensoren innerhalb spezifischer Grenzen zu halten, die durch das verwendete Format definiert sind.
Wenn wir betrachten, wie sich Absolutwerte aus einer Normalverteilung verhalten, berücksichtigen wir eine Variante, die als gefaltete Normalverteilung bezeichnet wird. Der Grossteil der Wahrscheinlichkeit in dieser Verteilung konzentriert sich um einen bestimmten Punkt.
Bei traditionellen Fliesskommaformaten können Werte typischerweise innerhalb eines definierten Intervalls liegen, mit einem Mittelpunkt, der ungefähr mit dem Zentrum des Zahlenbereichs übereinstimmt. Um Fehler zu vermeiden, ist es wichtig, die Werte auf diesen Mittelpunkt zu skalieren.
Letztendlich kommen wir zu dem Schluss, dass das Streben nach einer einheitlichen Standardabweichung die meisten Werte nah am Zentrum des Zahlenbereichs halten wird. Ob diese Zentralität jedoch der beste Massstab für normalverteilte Tensoren während des Trainings von Deep-Learning-Modellen ist, wird diskutiert.
Die Idee, unter dem Zentrum zu skalieren, wird durch die Auffassung unterstützt, dass diese subnormalen Werte zusätzlichen Spielraum bieten, auch wenn die Präzision geringer ist. Ausserdem tritt Underflow im Deep-Learning-Training seltener auf als Overflow.
Andererseits basiert der Fokus auf Skalierung über dem Zentrum auf dem Glauben, dass die Werte, insbesondere die Gradienten, während des Trainings abnehmen können. Daher könnte Skalierung helfen, diesen erwarteten Rückgang auszugleichen.
Angesichts dieser Perspektiven scheint das Streben nach einer einheitlichen Skalierung ein vernünftiger Mittelweg zu sein. Wenn das Ziel ist, die Verteilung perfekt mit dem Mittelpunkt abzugleichen, könnte eine etwas grössere Skalierung nötig sein. Diese Differenz ist jedoch minimal, was eine einheitliche Skalierung zu einer starken Option und konsistent mit verschiedenen etablierten Techniken macht.
Einheitliche Skalierung und aufkommende Ausreisser
Kürzliche Studien zur Quantisierung für grosse Sprachmodelle haben Techniken zur Handhabung von Ausreissern gezeigt. Diese Ausreisser sind grosse Werte, die in bestimmten Teilen der Daten auftreten, insbesondere wenn die Modellgrössen wachsen.
Eine Herausforderung mit Ausreissern ist, dass ein einzelner Ausreisser die gesamte Quantisierungsgenauigkeit anderer Werte negativ beeinflussen kann. Ausreisser haben sich als reduzierend für die INT8-Quantisierungsgenauigkeit grosser Modelle erwiesen, was zu Forschungen über den Einfluss von Ausreissern auf die einheitliche Skalierung geführt hat.
Wir erwarten nicht, dass die einheitliche Skalierung die Grösse der Ausreisser signifikant verändert. Das liegt daran, dass Ausreisserwerte häufig in Aktivierungstensoren zu finden sind, die aufgrund vorhandener Normalisierungsschichten, die die Skalierung steuern, tendenziell konsistente Skalen über einheitliche und nicht-einheitliche Modelle hinweg beibehalten.
Dennoch wird erwartet, dass die einheitliche Skalierung stabiler im Angesicht von Ausreissern ist im Vergleich zu Methoden, die in der bestehenden Literatur dokumentiert sind. Das liegt hauptsächlich daran, dass die einheitliche Skalierung mit Fliesskommaformaten arbeitet, während die vorhandene Forschung sich auf die Integer-Quantisierung konzentriert hat, die nicht über einen angemessenen dynamischen Bereich verfügt.
Daher glauben wir, dass die Nutzung von FP8-Formaten anstelle von INT8 die Komplikationen im Zusammenhang mit Ausreissern verringern wird. Ein Vergleich der Signal-Rausch-Verhältnisse über die Formate hinweg unterstützt diese Erwartung weiter.
Um das zu veranschaulichen, betrachten wir ein Szenario, in dem das Vorhandensein von Ausreissern die Quantisierungsverteilung verzerrt, was dazu führt, dass die meisten Quantisierungsbins leer sind. Im Gegensatz dazu bieten Fliesskommaformate eine bessere Verteilung, die eine kleine Anzahl grösserer Werte, geeignet für Ausreisser, beherbergt, während viele kleinere Werte für Nicht-Ausreisser vorhanden sind.
Wenn wir diese Ergebnisse analysieren, wird deutlich, dass die einheitliche Skalierung vielversprechend sein kann, wenn es darum geht, mit Ausreissern umzugehen, obwohl weiterhin Herausforderungen auftreten können.
Theoretische Ergebnisse
Beispiel - Skalierungsanalyse
Nehmen wir ein Beispiel mit einem multilayer Perzeptron (MLP). Das kann man sich so vorstellen, dass Eingaben in Ausgaben transformiert werden, wobei eine spezifische Operation durchgeführt wird, bei der eine elementweise Aktivierungsfunktion angewendet wird.
In dieser Analyse konzentrieren wir uns darauf, die Untersuchung einer einzelnen Schicht in zwei verschiedene Teile zu teilen. Das Verfahren folgt einem bestimmten Algorithmus, um zu beschreiben, wie Ausgaben eine Varianz basierend auf unabhängigen Eingaben erzeugen.
In diesem Gedankengang, während wir die Gradienten berechnen, erkennen wir bestimmte Annahmen über die Korrelation zwischen Eingaben und Aktivierungen an. Obwohl einige dieser Annahmen problematisch sein können, tragen sie zu einer einfacheren Analyse für unsere Zwecke bei.
Beweise zur Unterstützung der Proposition
Wir tauchen in die Trainingsdynamik von zwei gängigen Optimierern ein: Stochastic Gradient Descent (SGD) und Adam. Die Trainingsdynamik eines nicht skalierten Modells spiegelt die eines einheitlich skalierten Modells wider.
Ein Trainingsverlauf zeigt, wie sich Parameter in einem Modell während des Trainings entwickeln. Bei der Verwendung von SGD können wir diese Verläufe basierend auf spezifischen Konstanten und Gradienten skizzieren.
Wenn die Verläufe eines skalierten Modells eine konsistente Beziehung zu denen des nicht skalierten Modells aufrechterhalten, können wir schliessen, dass sie effektiv ähnliche Trainingsdynamiken teilen.
Für Adam ist das Verhalten gegenüber diagonaler Skalierung etwas invariant. Diese Eigenschaft versichert, dass skalierte und nicht skalierte Modelle mit gleichen Trainingsverläufen übereinstimmen können.
Beispiel - Ein skaliertes Berechnungsdiagramm
Lass uns eine nicht skalierte Operation mit Werten in einem bestimmten Vektorraums betrachten. Wenn wir ein skaliertes Berechnungsdiagramm definieren, muss es dieselbe Operation widerspiegeln. Indem wir eine konsistente Methode für sowohl Vorwärts- als auch Rückwärtswerte etablieren, können wir validieren, dass ein nicht skaliertes Diagramm korrekt einen Op darstellt.
Letztendlich zeigen wir, dass das skalierte Diagramm auch eine skalierte Operation korrekt darstellen kann, um sicherzustellen, dass die Darstellung genau ist.
Einschränkungs-scalierte Berechnungsdiagramme für andere Strategien
Wenn wir andere Skalierungsstrategien vergleichen, können wir sehen, wie sie in das Framework der einschränkungs-skalierten Berechnungsdiagramme passen.
Zum Beispiel, wenn wir die Glorot-Initialisierung anwenden, berücksichtigen wir spezifische Skalen und verwenden sie, um Werte zu kombinieren, um sicherzustellen, dass während der Laufzeit keine übermässige Multiplikation erforderlich ist.
Bei der Verlustskalierung führen wir eine skalierte Identitätsoperation ein, die es ermöglicht, die Gradienten synchron zu halten, während wir eine einzelne Skalierung über diese Gradienten hinweg teilen. Solche Strategien müssen sorgfältig ausgewählt werden.
Kompendium der einheitlich skalierten Operationen
Einheitliche Skalierung erfordert eine sorgfältige Auswahl der Skalierungsfaktoren für jede Operation. Diese Faktoren stammen von einer Analyse des Verhaltens verschiedener Operationen und Gradoperationen.
Um Praktikern zu helfen, haben wir eine Referenztabelle zusammengestellt, die skalierte Versionen gängiger Operationen und deren jeweilige Skalierungsfaktoren zeigt.
Softmax und andere Operationen
Wenn wir Operationen wie Softmax untersuchen, sehen wir, wie sie sich unterscheiden, wenn sie von einer Matrixmultiplikation gefolgt werden. Ein sorgfältiger Ansatz ist erforderlich, um Softmax richtig zu skalieren, damit konsistente Werte durch nachfolgende Prozesse propagiert werden.
Ähnlich verfahren wir bei der Betrachtung von Softmax in Kombination mit Kreuzentropie, indem wir es als eine einzige Operation behandeln. Indem wir uns auf Rückwärtsoperationen konzentrieren, können wir notwendige Skalierungsfaktoren ableiten, die die Bewegungen im Blick halten, während das Training stabil bleibt.
Einheitliche Skalierung mit bestehenden Modellen in Einklang bringen
Ein Modell zu entwerfen, das mit einheitlicher Skalierung im Hinterkopf arbeitet, kann sich von der Anpassung eines bestehenden Modells unterscheiden. In solchen Fällen gibt es zusätzliche Überlegungen, um sicherzustellen, dass das einheitlich skalierte Modell vergleichbare Leistungen wie das Basismodell erbringt.
Aktivierungsfunktionen und ihre Bedeutung
Aktivierungsfunktionen spielen eine bedeutende Rolle für die Leistung des Modells, da ihr Verhalten je nach Eingabeskala variiert. Bei der Umstellung auf eine einheitliche Skalierung müssen wir Skalierungsfaktoren vor und nach den Aktivierungsfunktionen einführen, um sicherzustellen, dass die Eingaben konsistent bleiben.
Geteilte Parameter und Gewicht-Gradienten
Geteilte Parameter, die häufig über Operationen hinweg verwendet werden, müssen den Skalierungsverhältnissen der Einheiten im Modell entsprechen. Anpassungen müssen entsprechend vorgenommen werden, um sicherzustellen, dass das einheitlich skalierte Modell mit der Leistung des Basismodells übereinstimmt.
Beispiel: BERT angleichen
In unseren Experimenten, die sich auf die Angleichung der einheitlichen Skalierung mit BERT-Modellen konzentrierten, haben wir sorgfältige Schritte unternommen, um sicherzustellen, dass die Leistungsniveaus mit denen traditioneller Modelle übereinstimmten.
Embedding-Schichten
BERT arbeitet mit mehreren Embeddings, einschliesslich Wort-, Segment- und Positions-Embeddings, die zusammengeführt werden. Für die einheitliche Skalierung setzen wir dies mit konsistenten Gewichtseinstellungen über die Embeddings hinweg um.
Multi-Head Self-Attention
Im Prozess der Multi-Head Self-Attention wenden wir notwendige Anpassungen für Softmax-Operationen an, um sicherzustellen, dass wir die Integrität der Leistung des Modells durch die richtigen Skalierungsanpassungen aufrechterhalten.
Überlegungen zur Sequenzlänge
Beim Skalieren von Modellen, die auf Sequenzen basieren, ist es wichtig, die Auswirkungen der Sequenzlänge zu berücksichtigen. Daher passen wir Berechnungen basierend auf der durchschnittlichen Anzahl von Non-Padding-Tokens während des Trainings an.
Rechenaufwand
Die Implementierung von einheitlicher Skalierung bringt typischerweise minimalen Rechenaufwand mit sich, hauptsächlich manifestiert sich das als zusätzliche Funktionsaufrufe während des Modells. Bei der Analyse von Fliesskommaoperationen bleibt der Aufwand im Vergleich zu anderen Prozessen gering.
Fusing von Skalierungsfaktoren
Die Integration von festen Skalierungsfaktoren in vorhergehende Operationen kann die Effizienz steigern. Diese Methode reduziert die Kommunikationszeiten, indem sie zusätzliche Speicherzugriffe verringert und möglicherweise niedrigere Präzisionsausgaben zulässt.
Zusätzliche experimentelle Details und Ergebnisse
Zeichen-Sprachmodellierung
Wir haben Experimente mit einem Rohdatensatz von Wikipedia durchgeführt, ohne Vorverarbeitung. Die Ergebnisse wurden durch systematische Anpassungen der Lernrate gesammelt und die Leistung maximiert.
Gemischtes Präzistraining
In unserem FP16-Training wurden alle Komponenten konsistent in ihren jeweiligen Formaten gespeichert, um Stabilität bei maximaler Leistungseffizienz zu gewährleisten.
Zusätzliche Ergebnisse
Die Ergebnisse zeigen, dass einheitlich skalierte Modelle die Leistung im Verhältnis zu ihren nicht skalierten Gegenstücken aufrechterhalten, was die Wirksamkeit der in Trainingsszenarien untersuchten Techniken bestätigt.
Fazit
Die einheitliche Skalierung bietet einen praktischen Ansatz innerhalb von Deep-Learning-Modellen, insbesondere im Kontext grosser Sprachmodelle. Die Erkenntnisse aus der Analyse verschiedener Fliesskommaformate, ihrer Darstellung und Leistung heben die fortlaufende Entwicklung von Trainingsstrategien in diesem schnelllebigen Bereich hervor.
Titel: Unit Scaling: Out-of-the-Box Low-Precision Training
Zusammenfassung: We present unit scaling, a paradigm for designing deep learning models that simplifies the use of low-precision number formats. Training in FP16 or the recently proposed FP8 formats offers substantial efficiency gains, but can lack sufficient range for out-of-the-box training. Unit scaling addresses this by introducing a principled approach to model numerics: seeking unit variance of all weights, activations and gradients at initialisation. Unlike alternative methods, this approach neither requires multiple training runs to find a suitable scale nor has significant computational overhead. We demonstrate the efficacy of unit scaling across a range of models and optimisers. We further show that existing models can be adapted to be unit-scaled, training BERT-Large in FP16 and then FP8 with no degradation in accuracy.
Autoren: Charlie Blake, Douglas Orr, Carlo Luschi
Letzte Aktualisierung: 2023-05-30 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2303.11257
Quell-PDF: https://arxiv.org/pdf/2303.11257
Lizenz: https://creativecommons.org/licenses/by-sa/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.