DiLoCo : Entraînement distribué de modèles de langage à faible communication
DiLoCo: Distributed Low-Communication Training of Language Models
November 14, 2023
Auteurs: Arthur Douillard, Qixuan Feng, Andrei A. Rusu, Rachita Chhaparia, Yani Donchev, Adhiguna Kuncoro, Marc'Aurelio Ranzato, Arthur Szlam, Jiajun Shen
cs.AI
Résumé
Les grands modèles de langage (LLM) sont devenus un composant essentiel dans de nombreuses applications d'apprentissage automatique. Cependant, les approches standard pour entraîner les LLM nécessitent un grand nombre d'accélérateurs étroitement interconnectés, avec des échanges de gradients et d'autres états intermédiaires à chaque étape d'optimisation. Bien qu'il soit difficile de construire et de maintenir un seul cluster de calcul hébergeant de nombreux accélérateurs, il pourrait être plus facile de trouver plusieurs clusters de calcul, chacun hébergeant un nombre réduit de dispositifs. Dans ce travail, nous proposons un algorithme d'optimisation distribué, Distributed Low-Communication (DiLoCo), qui permet l'entraînement de modèles de langage sur des îlots de dispositifs faiblement connectés. Cette approche est une variante de la moyenne fédérée, où le nombre d'étapes internes est élevé, l'optimiseur interne est AdamW, et l'optimiseur externe est la méthode de Nesterov. Sur le jeu de données C4 largement utilisé, nous montrons que DiLoCo sur 8 travailleurs performe aussi bien qu'une optimisation entièrement synchrone tout en communiquant 500 fois moins. DiLoCo présente une grande robustesse à la distribution des données de chaque travailleur. Il est également robuste à l'indisponibilité des ressources au fil du temps, et inversement, il peut exploiter de manière transparente les ressources qui deviennent disponibles pendant l'entraînement.
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.