mirror of
https://github.com/openmlsys/openmlsys-zh.git
synced 2026-04-23 18:13:14 +08:00
* WIP: distributed. * Update the distributed section. * Fix line numbers. * Update. * Update collective.md
34 lines
1.8 KiB
Markdown
34 lines
1.8 KiB
Markdown
## 总结
|
||
|
||
- 大型机器学习模型的出现带来了对于算力和内存需求的快速增长,催生了分布式训练系统的出现。
|
||
|
||
- 分布式训练系统的设计往往遵循“分而治之”的设计思路。
|
||
|
||
- 利用分布式训练系统,人们可以显著提升训练性能,体现经济性,并且帮助防范硬件故障。
|
||
|
||
- 分布式训练系统可以通过数据并行增加设备来提升算力。
|
||
|
||
- 当单节点内存不足时,可以通过模型并行解决单设备内存不足。模型并行有两种实现方式:算子内并行和算子间并行。
|
||
|
||
- 大型模型并行系统容易出现设备使用气泡,而这种气泡可以通过流水线并行解决。
|
||
|
||
- 分布式训练系统往往运行在计算集群之中,集群网络无法提供充足的网络带宽来传输大量训练中生成的梯度。
|
||
|
||
- 为了提供海量的通信带宽,机器学习集群拥有异构的高性能网络,包括以太网、加速器高速互连技术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) |