DiLoCo: Verteiltes Training von Sprachmodellen mit geringer Kommunikation
DiLoCo: Distributed Low-Communication Training of Language Models
November 14, 2023
Autoren: Arthur Douillard, Qixuan Feng, Andrei A. Rusu, Rachita Chhaparia, Yani Donchev, Adhiguna Kuncoro, Marc'Aurelio Ranzato, Arthur Szlam, Jiajun Shen
cs.AI
Zusammenfassung
Große Sprachmodelle (LLMs) sind zu einem entscheidenden Bestandteil in vielen Anwendungen des maschinellen Lernens geworden. Standardansätze zum Training von LLMs erfordern jedoch eine große Anzahl eng vernetzter Beschleuniger, bei denen die Geräte in jedem Optimierungsschritt Gradienten und andere Zwischenzustände austauschen. Während es schwierig ist, einen einzigen Rechencluster zu erstellen und zu betreiben, der viele Beschleuniger hostet, könnte es einfacher sein, mehrere Rechencluster zu finden, die jeweils eine kleinere Anzahl von Geräten hosten. In dieser Arbeit schlagen wir einen verteilten Optimierungsalgorithmus vor, Distributed Low-Communication (DiLoCo), der das Training von Sprachmodellen auf Inseln von schlecht verbundenen Geräten ermöglicht. Der Ansatz ist eine Variante des federated averaging, bei der die Anzahl der inneren Schritte groß ist, der innere Optimierer AdamW ist und der äußere Optimierer Nesterov-Momentum ist. Auf dem weit verbreiteten C4-Datensatz zeigen wir, dass DiLoCo mit 8 Workern genauso gut abschneidet wie vollständig synchrone Optimierung, während 500-mal weniger kommuniziert wird. DiLoCo zeigt eine große Robustheit gegenüber der Datenverteilung jedes Workers. Es ist auch robust gegenüber Ressourcen, die im Laufe der Zeit nicht mehr verfügbar sind, und umgekehrt kann es nahtlos Ressourcen nutzen, die während des Trainings verfügbar werden.
English
Large language models (LLM) have become a critical component in many
applications of machine learning. However, standard approaches to training LLM
require a large number of tightly interconnected accelerators, with devices
exchanging gradients and other intermediate states at each optimization step.
While it is difficult to build and maintain a single computing cluster hosting
many accelerators, it might be easier to find several computing clusters each
hosting a smaller number of devices. In this work, we propose a distributed
optimization algorithm, Distributed Low-Communication (DiLoCo), that enables
training of language models on islands of devices that are poorly connected.
The approach is a variant of federated averaging, where the number of inner
steps is large, the inner optimizer is AdamW, and the outer optimizer is
Nesterov momentum. On the widely used C4 dataset, we show that DiLoCo on 8
workers performs as well as fully synchronous optimization while communicating
500 times less. DiLoCo exhibits great robustness to the data distribution of
each worker. It is also robust to resources becoming unavailable over time, and
vice versa, it can seamlessly leverage resources that become available during
training.