Streaming DiLoCo with overlapping communication: Towards a Distributed Free Lunch
Arthur Douillard, Yanislav Donchev, Keith Rush, Satyen Kale, Zachary Charles, Zachary Garrett, Gabriel Teston, Dave Lacey, Ross McIlroy, Jiajun Shen, Alexandre Ramé, Arthur Szlam, Marc'Aurelio Ranzato, Paul Barham
TL;DR
Streaming DiLoCo introduces streaming partial outer-gradient synchronization, overlap between communication and computation, and 4-bit quantization to enable bandwidth-efficient, scalable distributed training of billion-parameter LLMs. By partitioning outer-gradient exchanges into fragments and overlapping them with inner optimization, the method maintains learning quality while reducing peak bandwidth by orders of magnitude and enabling communication latency to be hidden within computation. Ablations show the approach is robust to fragment choices and asynchronous slack, while experiments on Chinchilla-scale models and Dolma demonstrate competitive performance with dramatically less data movement. This work advances toward a distributed free lunch for large-scale training across co-located and heterogeneous hardware.
Abstract
Training of large language models (LLMs) is typically distributed across a large number of accelerators to reduce training time. Since internal states and parameter gradients need to be exchanged at each and every single gradient step, all devices need to be co-located using low-latency high-bandwidth communication links to support the required high volume of exchanged bits. Recently, distributed algorithms like DiLoCo have relaxed such co-location constraint: accelerators can be grouped into ``workers'', where synchronizations between workers only occur infrequently. This in turn means that workers can afford being connected by lower bandwidth communication links without affecting learning quality. However, in these methods, communication across workers still requires the same peak bandwidth as before, as the synchronizations require all parameters to be exchanged across all workers. In this paper, we improve DiLoCo in three ways. First, we synchronize only subsets of parameters in sequence, rather than all at once, which greatly reduces peak bandwidth. Second, we allow workers to continue training while synchronizing, which decreases wall clock time. Third, we quantize the data exchanged by workers, which further reduces bandwidth across workers. By properly combining these modifications, we show experimentally that we can distribute training of billion-scale parameters and reach similar quality as before, but reducing required bandwidth by two orders of magnitude.
