Parallel Restarted SGD with Faster Convergence and Less Communication: Demystifying Why Model Averaging Works for Deep Learning
Hao Yu, Sen Yang, Shenghuo Zhu
Introduction
Consider the distributed training of deep neural networks over multiple workers (?), where all workers can access all or partial training data and aim to find a common model that yields the minimum training loss. Such a scenario can be modeled as the following distributed parallel non-convex optimization
One classical parallel method to solve problem (1) is to sample each worker’s local stochastic gradient in parallel, aggregate all gradients in a single server to obtain the average, and update each worker’s local solution using the averaged gradient in its SGD stepEquivalently, we can let the server update its solution using the averaged gradient and broadcast this solution to all local workers. Another equivalent implementation is to let each worker take a single SGD step using its own gradient and send the updated local solution to the server; let the server calculate the average of all workers’ updated solutions and refresh each worker’s local solution with the averaged version. (?) (?). Such a classical method, called parallel mini-batch SGD in this paper, is conceptually equivalent to a single node Stochastic Gradient Descent (SGD) with a batch size times large and achieves convergence with a linear speed-up with respect to (w.r.t.) the number of workers (?). Since every iteration of parallel mini-batch SGD requires exchanging of local gradient information among all workers, the corresponding communication cost is quite heavy and often becomes the performance bottleneck.
There have been many attempts to reduce communication overhead in parallel mini-batch SGD. One notable method called decentralized parallel SGD (D-PSGD) is studied in (?)(?) (?). Remarkably, D-PSGD can achieve the same convergence rate as parallel mini-batch SGD, i.e., the linear speed-up w.r.t. the number of workers is preserved, without requiring a single server to collect stochastic gradient information from local workers. However, since D-PSGD requires each worker to exchange their local solutions/gradients with its neighbors at every iteration, the total number of communication rounds in D-PSGD is the same as that in parallel mini-batch SGD. Another notable method to reduce communication overhead in parallel mini-batch SGD is to let each worker use compressed gradients rather than raw gradients for communication. For example, quantized SGD studied in (?)(?)(?) or sparsified SGD studied in (?)(?)(?) allow each worker to pass low bit quantized or sparsified gradients to the server at every iteration by sacrificing the convergence to a mild extent. Similarly to D-PSGD, such gradient compression based methods require message passing at every iteration and hence their total number of communication rounds is still the same as that in parallel mini-batch SGD.
Recall that parallel mini-batch SGD can be equivalently interpreted as a procedure where at each iteration each local worker first takes a single SGD step and then replaces its own solution by the average of individual solutions. With a motivation to reduce the number of inter-node communication rounds, a lot of works suggest to reduce the frequency of averaging individual solutions in parallel mini-batch SGD. Such a method is known as model averaging and has been widely used in practical training of deep neural networks. Model averaging can at least date back to (?) (?) where individual models are averaged only at the last iteration before which all workers simply run SGD in parallel. The method in (?) (?), referred to as one-shot averaging, uses only one single communication step at the end and is numerically shown to have good solution quality in many applications. However, it is unclear whether the one-shot averaging can preserve the linear speed-up w.r.t. the number of workers. In fact, (?) shows that one-shot averaging can yield inaccurate solutions for certain non-convex optimization. As a remedy, (?) suggests more frequent averaging should be used to improve the performance. However, the understanding on how averaging frequency can affect the performance of parallel SGD is quite limited in the current literature. Work (?) proves that by averaging local worker solutions only every iterations, parallel SGD has convergence rate for non-convex optimization.In this paper, we shall show that if is chosen as , parallel SGD for non-convex optimization does not lose any factor in its convergence rate. That is, the convergence slows down by a factor of by saving times inter-node communication. A recent exciting result reported in (?) proves that for strongly-convex minimization, model averaging can achieve a linear speed-up w.r.t. as long as the averaging (communication) step is performed once at least every iterations. Work (?) provides the first theoretical analysis that demonstrates the possibility of achieving the same linear speedup attained by parallel mini-batch SGD with strictly less communication for strongly-convex stochastic optimization. However, it remains as an open question in (?) whether it is possible to achieve convergence for non-convex optimization, which is the case of deep learning.
On the other hand, many experimental works (?) (?) (?) (?) (?) (?) observe that model averaging can achieve a superior performance for various deep learning applications. One may be curious whether these positive experimental results are merely coincidences for special case examples or can be attained universally. In this paper, we shall show that model averaging indeed can achieve convergence for non-convex optimization by averaging only every iterations. That is, the same convergence is preserved for non-convex optimization while communication overhead is saved by a factor of . To our knowledge, this paper is the firstAfter the preprint (?) of this paper is posted on ArXiv in July 2018, another work (?) subsequently analyzes the convergence rate of model averaging for non-convex optimization. Their independent analysis relaxes our bounded second moment assumption but further assumes all in formulation (1) are identical, i.e, all workers must access a common training set when training deep neural networks. to present provable convergence rate guarantees (with the linear speed-up w.r.t. number of workers and less communication) of model averaging for non-convex optimization such as deep learning and provide guidelines on how often averaging is needed without losing the linear speed-up.
Besides reducing the communication cost, the method of model averaging also has the advantage of reducing privacy and security risks in the federated learning scenario recently proposed by Google in (?). This is because model averaging only passes deep learning models, which are shown to preserve good differential privacy, and does not pass raw data or gradients owned by each individual worker.
Parallel Restarted SGD and Its Performance Analysis
Throughout this paper, we assume problem (1) satisfies the following assumption.
Smoothness: Each function is smooth with modulus .
Bounded variances and second moments: There exits constants and such that
Consider the simple parallel SGD described in Algorithm 1. If we divide iteration indices into epochs of length , then in each epochs all workers are running SGD in parallel with the same initial point that is the average of final individual solutions from the previous epoch. This is why we call Algorithm 1 “Parallel Restarted SGD”. The “model averaging” technique used as a common practice for training deep neural networks can be viewed as a special case since Algorithm 1 calculates the model average to obtain every iterations and performs local SGDs at each worker otherwise. Such an algorithm is different from elastic averaging SGD (EASGD) proposed in (?) which periodically drags each local solution towards their average using a controlled weight. Note that synchronization (of iterations) across workers is not necessary inside each epoch of Algorithm 1. Furthermore, inter-node communication is only needed to calculate the initial point at the beginning of each epoch and is longer needed inside each epoch. As a consequence, Algorithm 1 with reduces its number of communication rounds by a factor of when compared with the classical parallel mini-batch SGD. The linear speed-up property (w.r.t. number of workers) with is recently proven only for strongly convex optimization in (?). However, there is no theoretical guarantee on whether the linear speed-up with can be preserved for non-convex optimization, which is the case of deep neural networks.
as the average of local solution over all nodes. It is immediate that
where is defined in (4) and is the constant defined in Assumption 1.
Fix and . Note that Algorithm 1 calculates the node average every iterations. Consider the largest such that at iteration in Algorithm 1. (Note that such must exist and .) We further note, from the update equations (2) and (3) in Algorithm 1, that
where (a)-(c) follows by using the inequality for any vectors and any positive integer (using in (a), in (b) and in (c)); and (d) follows from Assumption 1. ∎
Consider problem (1) under Assumption 1. If in Algorithm 1, then for all , we have
where is the minimum value of problem (1).
Fix . By the smoothness of , we have
where (a) follows from (5); (b) follows because
where (b) follows from and (a) follows because
where the first inequality follows by using for any vectors ; the second inequality follows from the smoothness of each by Assumption 1; and the third inequality follows from Lemma 1.
Dividing (11) both sides by and rearranging terms yields
Summing over and dividing both sides by yields
where (a) follows because is the minimum value of problem (1). ∎
The next corollary follows by substituting suitable values into Theorem 1.
Consider problem (1) under Assumption 1. Let .
For non-convex optimization, it is generally impossible to develop a convergence rate for objective values. In Theorem 1 and Corollary 1, we follow the convention in literature (?) (?) (?) to use the (average) expected squared gradient norm to characterize the convergence rate. Note that the average can be attained in expectation by taking each with an equal probability .
From Theorem 1 and Corollary 1, we have the following important observations:
Linear Speedup: By part (1) of Corollary 1, Algorithm 1 with any fixed constant has convergence rate . If is large enough, i.e., , then the term is dominated by the term and hence Algorithm 1 has convergence rate . That is, our algorithm achieves a linear speed-up with respect to the number of workers. Such linear speedup for stochastic non-convex optimization was previously attained by decentralized-parallel stochastic gradient descent (D-PSGD) considered in (?) by requiring at least . See, e.g., Corollary 2 in (?).In fact, for a ring network considered in Theorem 3 in (?), D-PSGD requires a even larger satisfying since its implementation depends on the network topology. In contrast, the linear speedup of our algorithm is irrelevant to the network topology.
Communication Reduction: Note that Algorithm 1 requires inter-node communication only at the iterations that are multiples of . By Corollary 1, it suffices to choose any to ensure the convergence of our algorithm. That is, compared with parallel mini-batch SGD or the D-PSGD in (?), the number of communication rounds in our algorithm can be reduced by a factor . Although Algorithm 1 does not describe how the node average is obtained at each node, in practice, the simplest way is to introduce a parameter server that collects all local solutions and broadcasts their average as in parallel mini-batch SGD (?). Alternatively, we can perform an all-reduce operation on the local models(without introducing a server) such that all nodes obtain independently and simultaneously. (Using an all-reduce operation among all nodes to obtain gradients averages has been previously suggested in (?) for distributed training of deep learning.)
Extensions
Note that Corollary 1 assumes time horizon is known and uses a constant learning rate in Algorithm 1. In this subsection, we consider the scenario where the time horizon is not known beforehand and develop a variant of Algorithm 1 with time-varying rates to achieve the same computation and communication complexity. Compared with Algorithm 1, Algorithm 2 has the advantage that its accuracy is being improved automatically as it runs longer.
Although Algorithm 2 introduces the concept of epoch for the convenience of description, we note that it is nothing but a parallel restarted SGD where each worker restarts itself every epoch using the node average of the last epoch’s final solutions as the initial point. If we sequentially reindex as (note that all are ignored since ), then Algorithm 2 is mathematically equivalent to Algorithm 1 except that time-varying learning rates are used in different epochs. Similarly to (4), we can define via and have
Consider problem (1) under Assumption 1. If we choose and in Algorithm 2, then for all , we haveA logarithm factor is hidden in the notation .
Asynchronous Implementations in Heterogeneous Networks
Algorithm 1 requires all workers to compute the average of individual solutions every iterations and synchronization among local workers are not needed before averaging. However, the fastest worker still needs to wait until all the other workers finish iterations of SGD even if it finishes its own iteration SGD much earlier. (See Figure 1 for a worker example where one worker is significantly faster than the other. Note that orange “syn” rectangles represent the procedures to compute the node average.) As a consequence, the computation capability of faster workers is wasted. Such an issue can arise quite often in heterogeneous networks where nodes are equipped with different hardwares.
Intuitively, if one worker finishes its iteration local SGD earlier, to avoid wasting its computation capability, we might want to let this worker continue running its local SGD until all the other workers finish their iteration local SGD. However, such a method can drag the node average too far towards the local solution at the fastest worker. Note that if in (1) are significantly different from each other such that the minimizer of at the -th worker, which is the fastest one, deviates the true minimizer of problem (1) too much, then dragging the node average towards the fastest worker’s local solution is undesired. In this subsection, we further assume that problem (1) satisfies the following assumption:
Note that Assumption 2 is satisfied if all local workers can access a common training data set or each local training data set is obtained from uniform sampling from the global training set. Consider the restarted local SGD for heterogeneous networks described in Algorithm 3. Note that if for some fixed constant , then Algorithm 3 degrades to Algorithm 1.
In practice, if the hardware configurations or measurements (from previous experiments) of each local worker are known, we can predetermine the value of each , i.e., if worker is two times faster than worker , then . Alternatively, under a more practical implementation, we can set a fixed time duration for each epoch and let each local worker keep running its local SGD until the given time elapses. By doing so, within the same time duration, the faster a worker is, the more SGD iterations it runs. In contrast, if we apply Algorithm 1 in this setting, then all local workers have to run the same number of SGD iterations as that can be run by the slowest worker within the given time interval. This subsection shows that, under Assumption 2, Algorithm 3 can achieve a better performance than Algorithm 1 in heterogeneous networks where some workers are much faster than others.
Without loss of generality, this subsection always indexes local workers in a decreasing order of speed. That is, worker is the fastest while worker is the slowest. If we run Algorithm 3 by specifying a fixed wall clock time duration for each epoch, during which each local worker keeps running its local SGD, then we have . Fix epoch index , note that for , variables with is never used. However, for the convenience of analysis, we define
Conceptually, the above equation can be interpreted as assuming worker , which is slower than worker , runs extra iterations of SGD by using as an imaginary stochastic gradient (with no computation cost). See Figure 2 for a worker example where and . Using the definition , we have
Consider problem (1) under Assumptions 1 and 2. Suppose all workers are indexed in a decreasing order of their speed, i.e., worker is the fastest and worker is the slowest. If in Algorithm 3, then for all ,
where for each given is the largest integer in such that (That is, for each fixed , is the number of workers that are still using sampled true stochastic gradients to update their local solutions at iteration .); and is the minimum value of problem (1).
The next corollary shows that Algorithm 3 in heterogeneous networks can ensure the convergence and preserve the same convergence rate with the same communication reduction.
Consider problem (1) under Assumptions 1 and 2. Let . If we use such that , I_{i}=\Theta\big{(}\frac{T^{1/4}}{N^{3/4}}\big{)},\forall i and in Algorithm 3, then
where for each given is the largest integer in such that .
This simply follows by substituting values of into (16) in Theorem 3. ∎
Note that once values are known, then for any in Theorem 3 and Corollary 2 are also available by its definition. To appreciate the implication of Theorem 2, we recall that Algorithm 1 can be interpreted as a special case of Algorithm 3 with , i.e., all workers can only run the same number (determined by the slowest worker) of SGD iterations in each epoch. In this perspective, Theorem 1 (with ) implies that the performance of Algorithm 1 is given by
Note that the left sides of (16) and (17) (weighted average expressions) can be attained by taking each randomly with a probability equal to the normalized weight in the summation. The first error term in (16) is strictly smaller than that in (17) while the second error term in (16) is larger than that in (17). Note that the constant factor in the first error term in (17) is large when a poor initial point is chosen (and dominates the second error term if ). So the main message of Theorem 3 is that if a poor initial point is selected, Algorithm 2 can possibly converges faster than Algorithm 1 (at least for the first few epochs) in a heterogeneous network.
Experiment
The superior training speed-up performance of model averaging has been empirically observed in various deep learning scenarios, e.g., CNN for MNIST in (?)(?)(?); VGG for CIFAR10 in (?); DNN-GMM for speech recognition in (?) (?); and LSTM for language modeling in (?). A thorough empirical study of ResNet over CIFAR and ImageNet is also available in the recent work (?). In Figures 3 and 4, we compare model averaging, i.e., PR-SGD (Algorithm 1) with ) with the classical parallel mini-batch SGDThe classical parallel mini-batch SGD is equivalent to Algorithm 1 with . Our implementation with Horovod uses the more efficient “all-reduce“method rather than the “parameter server” method to synchronize information between workers. by training ResNet20 with CIFAR10 on a machine with P100 GPUs. Our implementation uses Horovod (?) for inter-worker communication and uses PyTorch 0.4 for algorithm implementations.
Conclusion
This paper studies parallel restarted SGD, which is a theoretical abstraction of the “model averaging” practice widely used in training deep neural networks. This paper shows that parallel restarted SGD can achieve convergence for non-convex optimization with a number of communication rounds reduced by a factor ) compared with that required by the classical parallel mini-batch SGD.
References
Supplement
where is the constant defined in Assumption 1.
This lemma trivially extends Lemma 1 by restricting our attentions to each particular epoch . ∎
Main Proof of Theorem 2: Fix and . Following the lines in the proof of Theorem 1 until (10) (by replacing with , respectively), we have
Note that when is sufficiently large, is eventually between . That is, for large , e.g., , we have
Recall that has stochastic gradients with bounded second order moments by Assumption 1. There exists a constant such that for , we have
Summing (19) over and (18) over (noting that and ) yields
where (a) follows because is the minimum value of problem (1).
Note that there exists constant such that
and there exits constant such that
and there exits constant such that
where (a) in the above three equations (21)-(23) follows by noting that if , then
Dividing both sides of (20) by and substituting (21)-(23) into it yields
Proof of Theorem 3
where is the constant defined in Assumption 1.
Fix and . Let , which is the common initial point of epoch . Note that
where (a) follows by using the inequality for any vectors and any positive integer ; and (b) follows by using the same inequality (noting that there are less than terms in the summation ) and applying Assumption 1. ∎
Main Proof of Theorem 3: Fix and . Recall that is the largest integer in such that . That is, at iteration in epoch , only the first workers are using true stochastic gradients to update and the other workers stop updating (since they are too slow and do not have the chance to perform the -th update in this epoch). Note that as increases to , decreases to . By the definition of , we have
where (a)-(c) follows by using the same arguments used in showing (9).
Substituting (25) and (26) into (24) yields
where (a) follows because (noting that ).
where (a) follows because are identical by Assumption 2; (b) follows by using the inequality for any vectors and any integer ; (c) follows from the smoothness of each by Assumption 1; and (d) follows from Lemma 3.
Dividing both sides by and rearranging terms yields
As a sanity check of our analysis, we note that if , then and (30) reduces to (11). (Recall that Algorithm 2 is identical to Algorithm 1 in this case.)
Summing (30) over , (noting that and ) and dividing both sides by yields
where (a) follows because is the minimum value of problem (1).