分布式深度学习培训控制提供10倍的性能提升

时间:2019-03-06 18:37:50 阅读:20次

  我的IBM Research AI团队和我最近完成了第一次关于在深度学习培训环境中与分散式分布式方法相关的收敛速度和通信复杂性的正式理论研究。经验证据证明,在特定配置中,分散式方法可以比集中式方法提高10倍的性能,而无需额外的复杂性。在NIPS 2017大会上,我们已经接受了一篇描述我们工作的论文,这是在为此选出的3240份提交文件中的40份之一。

  监督机器学习通常包括两个阶段:1)训练(建立模型)和2)推理(用模型进行预测)。训练阶段涉及为模型的参数找到最佳值,以使一组训练样本上的误差最小化,并且该模型推广到新数据。有几种算法可以找到模型参数的最佳值(训练成本与模型精度),但是,各种风格的梯度体面是最受欢迎的算法之一。

  在最简单的形式中,梯度下降是一种串行算法,它迭代地调整模型的参数,因此对于大型数据集来说过于昂贵。随机梯度下降(SGD)是一种计算简化,它以随机顺序循环训练样本以得到最佳参数值(收敛)。实际上,SGD是大多数深度学习框架模型训练中使用的事实上的优化方法。加速解决SGD有助于降低培训成本,改善整体用户体验,是深度学习领域的重要研究领域之一。

  并行随机梯度下降(PSGD)是一种通过使用多个梯度计算“工作者”来并行化SGD算法的方法.PSGD方法基于分布式计算范例,并且直到最近才在集中式配置中实现安排处理模型参数的一致读取和更新所涉及的挑战。在这样的配置中,概念上,存在负责同步读取和更新的单个集中“主”参数服务器。两种最常用的集中式PGSD方法是全减少和异步SGD(ASGD)。

  在过去三年中,我一直在研究和研究基于全减少的方法,并为ASGD设计和测试多种协议变体。这两种方法具有独特的优点和缺点。全减少方法具有可预测的收敛性,但是同步的方法很慢。基于ASGD的方法允许工作人员以不同的速度运行(没有同步)并且速度快,但具有不可预测的收敛行为。在实践中,根据所采用的方法,你要么祈祷没有计算设备打嗝,所以all-reduce运行时不是很糟糕;或者希望ASGD算法能够收敛,保持准确性与训练成本曲线的比较。

  与分散拓扑相比的集中式拓扑

  我花了大约两年半的时间才意识到两种方法基本相同 - 集中式配置。唯一的区别是,在all-reduce中,有一个版本的中央权重,在ASGD中,有多个版本。无论如何,不??幸的是,集中式参数服务器成为单点故障和两者的运行时瓶颈。

  那么显而易见的问题是,如果我们可以完全摆脱参数服务器并让每个工作者以点对点的方式运行并最终达成共识怎么办?如果它有效,它将极大地简化分布式深度学习系统设计 - 不仅可以摆脱单点故障,还可以降低培训成本。但是,没有人知道这种分散的分布式方法是否会为复杂的优化问题(如深度学习培训)产生正确的结果。

  令我们惊讶和高兴的是,我们发现我们的方法可以实现,并且可以达到与传统SGD类似的收敛速度。我们的解决方案已成功应用于跨不同类型工作负载(开源工作负载和专有IBM工作负载)的深度学习培训,并且易于集成到各种开源框架中(已经为Torch完成)。该技术在慢速网络配置中运行得非常好,因为它涉及少量的握手消息。

分布式深度学习培训控制提供10倍的性能提升所属专题:分布式 深度 《分布式深度学习培训控制提供10倍的性能提升》链接:http://www.zhouchuanxiong.net/813

分布式深度学习培训控制提供10倍的性能提升相关文章

  • 从研究论文中自动生成深度学习模型的代码
  • 攻丝机学习促进更多地利用仿生学进行创新
  • 深度学习培训时间显着减少
  • IBM Research的深度学习进展
  • IBM利用POWER9和NVIDIA GPU设置万亿级机器学习基准记录; PowerAI即将推出
  • 一种用于大规模图的可扩展深度学习方法
  • 在强化学习中发现特征选择的新算法
  • 加速机器学习算法的培训
  • 使用深度学习生成餐厅评论
  • 使用OpenCV和深度学习在视频中跟踪对象
  • 开发一个使用机器学习的基于Web的移动健康应用程序
  • 在Kubernetes上部署和使用多框架深度学习平台
  • 创建一个Web应用程序以与机器学习生成的图像标题进行交互
  • 创建一个Web应用程序,以便与使用机器学习检测到的对象进
  • 机器学习模型的性能评估
  • 构建机器学习推荐引擎,以鼓励基于过去购买行为的额外购买
  • 使用内部部署数据训练基于云的机器学习模型
  • 使用Watson Machine Learning和IBM Db2 Warehouse on Cloud持续学习
  • 部署深度学习驱动的“魔术裁剪工具”
  • 使用机器学习预测心脏病
  • 使用Watson OpenScale监控自定义机器学习引擎
  • 使用Watson OpenScale监控Sagemaker机器学习
  • 使用机器学习和高级分析分析物联网传感器数据
  • 使用Watson OpenScale监控Azure机器学习
  • 从计算机中学习大脑,反之亦然
  • 机器学习分支出来
  • 更好的机器学习
  • 通过玩游戏来学习语言
  • 更灵活的机器学习
  • 深度学习算法可以预测照片在“近人”级别的可记忆性