Files
openmlsys-zh/chapter_distributed_training/summary.md
Luo Mai 4541da5d58 Update the distributed training chapter. (#436)
* WIP: distributed.

* Update the distributed section.

* Fix line numbers.

* Update.

* Update collective.md
2023-03-29 17:26:29 +01:00

34 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 总结
- 大型机器学习模型的出现带来了对于算力和内存需求的快速增长,催生了分布式训练系统的出现。
- 分布式训练系统的设计往往遵循“分而治之”的设计思路。
- 利用分布式训练系统,人们可以显著提升训练性能,体现经济性,并且帮助防范硬件故障。
- 分布式训练系统可以通过数据并行增加设备来提升算力。
- 当单节点内存不足时,可以通过模型并行解决单设备内存不足。模型并行有两种实现方式:算子内并行和算子间并行。
- 大型模型并行系统容易出现设备使用气泡,而这种气泡可以通过流水线并行解决。
- 分布式训练系统往往运行在计算集群之中,集群网络无法提供充足的网络带宽来传输大量训练中生成的梯度。
- 为了提供海量的通信带宽机器学习集群拥有异构的高性能网络包括以太网、加速器高速互连技术NVLink和高带宽网络InfiniBand。
- 为了解决单节点瓶颈可以使用AllReduce算法来分摊梯度聚合过程中产生的计算和通信操作同时实现负载均衡。
- 参数服务器可以帮助实现灵活的梯度同步和异步训练,从而防范集群中可能出现的落后者服务器。
- 参数服务器常用数据副本技术解决数据热点问题和防范硬件故障。
## 拓展阅读
- [分布式机器学习系统综述](https://dl.acm.org/doi/abs/10.1145/3377454)
- [利用集合通信支持并行训练的实践Horovod](https://arxiv.org/abs/1802.05799)
- [流水线并行的实践gPipe](https://arxiv.org/abs/1811.06965)
- [利用数据并行在大型数据集上高效训练深度学习模型](https://arxiv.org/abs/1706.02677)