Asynchrone Local-SGD-Training für Sprachmodellierung
Asynchronous Local-SGD Training for Language Modeling
January 17, 2024
Autoren: Bo Liu, Rachita Chhaparia, Arthur Douillard, Satyen Kale, Andrei A. Rusu, Jiajun Shen, Arthur Szlam, Marc'Aurelio Ranzato
cs.AI
Zusammenfassung
Lokaler stochastischer Gradientenabstieg (Local-SGD), auch bekannt als federiertes Durchschnittsverfahren, ist ein Ansatz zur verteilten Optimierung, bei dem jedes Gerät mehr als einen SGD-Update-Schritt pro Kommunikation durchführt. Diese Arbeit präsentiert eine empirische Studie zu {\it asynchronem} Local-SGD für das Training von Sprachmodellen; das heißt, jeder Worker aktualisiert die globalen Parameter, sobald er seine SGD-Schritte abgeschlossen hat. Wir führen eine umfassende Untersuchung durch, indem wir analysieren, wie die Heterogenität der Worker-Hardware, die Modellgröße, die Anzahl der Worker und der Optimierer die Lernleistung beeinflussen können. Wir stellen fest, dass bei naiven Implementierungen asynchrones Local-SGD trotz häufigerer Aktualisierung der (globalen) Modellparameter mehr Iterationen benötigt, um zu konvergieren, als sein synchrones Gegenstück. Wir identifizieren die Momentum-Beschleunigung bei den globalen Parametern, wenn die Worker-Gradienten veraltet sind, als eine zentrale Herausforderung. Wir schlagen eine neuartige Methode vor, die ein verzögertes Nesterov-Momentum-Update nutzt und die lokalen Trainingsschritte der Worker basierend auf ihrer Rechengeschwindigkeit anpasst. Dieser Ansatz, der mit Modellen bis zu 150M Parametern auf dem C4-Datensatz evaluiert wurde, erreicht die Leistung von synchronem Local-SGD in Bezug auf die Perplexität pro Update-Schritt und übertrifft es signifikant in Bezug auf die Echtzeit.
English
Local stochastic gradient descent (Local-SGD), also referred to as federated
averaging, is an approach to distributed optimization where each device
performs more than one SGD update per communication. This work presents an
empirical study of {\it asynchronous} Local-SGD for training language models;
that is, each worker updates the global parameters as soon as it has finished
its SGD steps. We conduct a comprehensive investigation by examining how worker
hardware heterogeneity, model size, number of workers, and optimizer could
impact the learning performance. We find that with naive implementations,
asynchronous Local-SGD takes more iterations to converge than its synchronous
counterpart despite updating the (global) model parameters more frequently. We
identify momentum acceleration on the global parameters when worker gradients
are stale as a key challenge. We propose a novel method that utilizes a delayed
Nesterov momentum update and adjusts the workers' local training steps based on
their computation speed. This approach, evaluated with models up to 150M
parameters on the C4 dataset, matches the performance of synchronous Local-SGD
in terms of perplexity per update step, and significantly surpasses it in terms
of wall clock time.