Methods › General › Distributed Methods
Distributed Methods
The archive attaches this collection's text per method and the copies differ: 4 distinct texts across 31 of the 34 methods here. All are shown, most-carried first (a tie goes to the text carrying Papers with Code's collection boilerplate, then to the longer text); no vote is taken between them.
Text 1, carried by 27 of 34 methods:
This section contains a compilation of distributed methods for scaling deep learning to very large models. There are many different strategies for scaling training across multiple devices, including:
-
Data Parallel : for each node we use the same model parameters to do forward propagation, but we send a small batch of different data to each node, compute the gradient normally, and send it back to the main node. Once we have all the gradients, we calculate the weighted average and use this to update the model parameters.
-
Model Parallel : for each node we assign different layers to it. During forward propagation, we start in the node with the first layers, then move onto the next, and so on. Once forward propagation is done we calculate gradients for the last node, and update model parameters for that node. Then we backpropagate onto the penultimate node, update the parameters, and so on.
-
Additional methods including Hybrid Parallel, Auto Parallel, and Distributed Communication.
Image credit: Jordi Torres.
Text 2, carried by 2 of 34 methods:
Stochastic Optimization methods are used to optimize neural networks. We typically take a mini-batch of data, hence 'stochastic', and perform a type of gradient descent with this minibatch. Below you can find a continuously updating list of stochastic optimization algorithms.
Text 3, carried by 1 of 34 methods:
This section contains a compilation of distributed model parallel methods for scaling deep learning to very large models. For each node we assign different layers to it. During forward propagation, we start in the node with the first layers, then move onto the next, and so on. Once forward propagation is done we calculate gradients for the last node, and update model parameters for that node. Then we backpropagate onto the penultimate node, update the parameters, and so on.
Image credit: Jordi Torres.
Text 4, carried by 1 of 34 methods:
Policy Gradient Methods try to optimize the policy function directly in reinforcement learning. This contrasts with, for example, Q-Learning, where the policy manifests itself as maximizing a value function. Below you can find a continuously updating catalog of policy gradient methods.
Methods
All 34 methods in this collection, most-tagged first. Year is the archive's introduced_year; the archive stores 2000 when it has none, shown here as “–”. Papers counts distinct papers the archive tags with the method. Click a heading to sort.
| Local SGD | – | 69 |
| Gradient Sparsification | – | 38 |
| Tofu | – | 19 |
| Chimera | – | 16 |
| IMPALA | – | 16 |
| ZeRO | – | 9 |
| DistDGL | – | 7 |
| GPipe | – | 7 |
| GShard | – | 6 |
| PipeDream | 2019 | 5 |
| Accordion | – | 4 |
| ZeRO-Offload | – | 4 |
| PipeDream-2BW | – | 3 |
| PowerSGD | – | 3 |
| PyTorch DDP | – | 3 |
| Crossbow | – | 2 |
| Mesh-TensorFlow | – | 2 |
| SEED RL | – | 2 |
| TorchBeast | – | 2 |
| ZeRO-Infinity | – | 2 |
| AutoSync | – | 1 |
| BAGUA | – | 1 |
| Blink Communication | – | 1 |
| ByteScheduler | 2019 | 1 |
| DABMD Distributed Any-Batch Mirror Descent | 2020 | 1 |
| Dorylus | – | 1 |
| K-Maximal Word Allocation | – | 1 |
| KungFu | 2020 | 1 |
| PipeMare | – | 1 |
| Pipelined Backpropagation | – | 1 |
| SlowMo | – | 1 |
| FlexFlow | 2019 | 0 |
| HetPipe | 2020 | 0 |
| Wavelet Distributed Training | 2021 | 0 |