如何扩展分布式深度学习?
机器学习
2016-11-15 v1
摘要
在深度学习的许多重要应用中,如自动驾驶辅助系统(ADAS)中的目标分类与检测,大规模数据集上深度神经网络的训练时间是主要的工作流瓶颈。为了最小化训练时间,深度神经网络的训练必须通过分布式优化方法扩展到单机之外尽可能多的机器上。虽然已提出了多种分布式随机梯度下降(SGD)方法,但目前同步分布式 SGD 方法在大规模下表现出最佳性能。同步扩展 SGD 需要在每个梯度步同步所有处理器,且在面对故障或滞后处理器时不具备弹性。在使用参数服务器的异步方法中,训练因对参数服务器的争用而变慢。本文比较了同步和异步 SGD 在 ImageNet 分类问题上训练现代 ResNet 网络架构时的收敛性。我们还提出了一种异步方法——Gossiping SGD,旨在通过用 Gossip 聚合算法替代同步训练的全归约集体操作,保留两种系统的优点。我们发现,或许与直觉相反,异步 SGD(包括弹性平均和 Gossiping)在较少节点(最多约 32 个节点)时收敛更快,而同步 SGD 在更多节点(最多约 100 个节点)时扩展性更好。
引用
@article{arxiv.1611.04581,
title = {How to scale distributed deep learning?},
author = {Peter H. Jin and Qiaochu Yuan and Forrest Iandola and Kurt Keutzer},
journal= {arXiv preprint arXiv:1611.04581},
year = {2016}
}
备注
Extended version of paper accepted at ML Sys 2016 (at NIPS 2016)