Lokale Gradienten-Akkumulation beschleunigt das Training um das 1,7-fache

Die Trainingsgeschwindigkeit stößt oft aufgrund von Leerlaufzeiten in Pipelines an ihre Grenzen. Diese Leerlaufzeit wird als „Bubble“ bezeichnet.

Eine neue Methode namens PACI löst dieses Problem. Sie entfernt diese Bubbles und beschleunigt das Training um das 1,69-fache.

Die meisten Teams nutzen eine Strategie namens 1F1B-flush. Diese Methode hält die Gewichte konsistent, erzeugt aber Leerstellen, in denen das System auf Daten wartet. Diese Wartezeiten verlangsamen alles.

Andere asynchrone Methoden versuchen, dies zu beheben. Sie nutzen komplexe Tricks wie Weight Stashing oder Duplikate. Diese Tricks verbrauchen zu viel Speicher und machen das Training oft instabil.

PACI geht einen anderen Weg. Sie nutzt lokale Gradienten-Akkumulation. Dies hält die Pipeline beschäftigt, ohne dass eine globale Synchronisierung erforderlich ist.

Warum PACI wichtig ist:

  • Sie erreicht die Stabilität von Standardmethoden.
  • Sie verbraucht die gleiche Menge an Speicher.
  • Sie erreicht die Geschwindigkeit schnellerer, aber schwerfälligerer Konfigurationen.
  • Sie reduziert die Time-to-Accuracy um das 1,69-fache.

In Tests mit GPT-2 Medium erreichte PACI die Zielgenauigkeit wesentlich schneller. Es zeigt, dass man geringfügige Weight Drifts gegen massive Effizienzgewinne eintauschen kann.

Für Engineering-Teams bedeutet dies eine Reduzierung der Hardwarekosten um 40 %. Man erhält schnellere Ergebnisse, ohne mehr GPUs kaufen oder mehr Speicher hinzufügen zu müssen.

Die Forscher haben dies an einer 8-stufigen Pipeline mit Modellen im GPT-Stil getestet. Möglicherweise müssen Sie das Akkumulationsfenster anpassen, wenn Sie die Pipeline-Tiefe oder die Batch-Größe ändern.

Sie können dies selbst testen. Die Autoren stellen einen Local-Accumulation-Wrapper in ihrem Repository bereit. Ersetzen Sie Ihren aktuellen Flush-Synchronisierer durch diesen, um die Beschleunigung zu sehen.

Source: https://dev.to/olaughter/local-gradient-accumulation-speeds-training-17x-2mdk

Optional learning community: https://t.me/GyaanSetuAi