Core Concepts
Zyklische Datenparallelität (CDP) ist ein neues Paradigma, das die Ausführung von Micro-Batches von gleichzeitig zu sequenziell verschiebt, um den Kommunikationsaufwand und den Gesamtspeicherverbrauch während des Trainings zu reduzieren.
Abstract
Der Artikel stellt ein neues Paradigma namens "Zyklische Datenparallelität" (CDP) vor, das die Ausführung von Micro-Batches in Datenparallelität (DP) von gleichzeitig zu sequenziell verschiebt. Dadurch werden der Kommunikationsaufwand und der Gesamtspeicherverbrauch während des Trainings reduziert.
In DP wird das zu trainierende Modell auf mehrere Arbeiter repliziert. Während jedes Trainingsschritts wird ein Mini-Batch der Daten gleichmäßig auf die Arbeiter in sogenannte Micro-Batches aufgeteilt. Jeder Arbeiter führt dann eine Vorwärts- und Rückwärtspropagation für jeden Micro-Batch durch, und die lokal berechneten Gradienten werden anschließend über alle Arbeiter gemittelt, um den Gradienten für den gesamten Mini-Batch zu erhalten.
DP hat jedoch große Nachteile: Der Kommunikationsschritt zwischen den Arbeitern ist synchron, da alle Arbeiter ihre Gradientenberechnungen abschließen müssen, bevor kommuniziert wird, was zu untätigen Arbeitern führt. Außerdem müssen die Gradienten global mit einer All-Reduce-Operation kommuniziert werden, was bei steigender Anzahl von Arbeitern eine Herausforderung darstellt. Schließlich wächst der Gesamtspeicher, der von allen Arbeitern verwendet wird, linear mit der Anzahl der Arbeiter, da das Modell auf jedem Arbeiter vollständig repliziert wird.
CDP adressiert diese Probleme, indem es die Ausführungszeit der Arbeiter in DP von gleichzeitig zu sequenziell verschiebt. Jeder Arbeiter führt entweder einen Vorwärts- oder einen Rückwärtsschritt für einen einzelnen und eindeutigen Micro-Batch durch. Dadurch wird der Kommunikationsaufwand für Gradienten von einer kollektiven Kommunikation am Ende des Trainingsschritts zu punktuellen Kommunikationen über den gesamten Trainingsschritt verteilt. Außerdem wird der Gesamtspeicher, der von allen Arbeitern verwendet wird, ausgeglichen, was jedoch zu einer leichten Verzögerung der Gradienten führt.
CDP kann mit Standard-Parallelisierungsimplementierungen wie Modellparallelität (MP) und Zero Redundancy Optimizer powered DP (ZeRO-DP) kombiniert werden, um weitere Verbesserungen zu erzielen. Die empirischen Ergebnisse zeigen, dass die Gradientenverzögerung von CDP zu einer gleichwertigen Ausbildung von tiefen neuronalen Netzwerken im Vergleich zu DP auf großen CIFAR-10- und ImageNet-Datensätzen führt.
Stats
Die Aktivierungsspeichernutzung variiert während des Trainings mit CDP deutlich weniger als mit DP, da der Spitzenwert des Aktivierungsspeichers bei CDP etwa 30% niedriger ist als bei DP für ein ResNet-50-Modell und 42% niedriger für ein ViT-B/16-Modell.
Quotes
"Zyklische Datenparallelität (CDP) ist ein neues Paradigma, das die Ausführung von Micro-Batches von gleichzeitig zu sequenziell verschiebt, um den Kommunikationsaufwand und den Gesamtspeicherverbrauch während des Trainings zu reduzieren."
"CDP kann mit Standard-Parallelisierungsimplementierungen wie Modellparallelität (MP) und Zero Redundancy Optimizer powered DP (ZeRO-DP) kombiniert werden, um weitere Verbesserungen zu erzielen."