Skip to main content
QUICK REVIEW

[论文解读] A Data and Model-Parallel, Distributed and Scalable Framework for Training of Deep Networks in Apache Spark

Disha Shrivastava, Santanu Chaudhury|arXiv (Cornell University)|Aug 19, 2017
Advanced Neural Network Applications参考文献 10被引用 9
一句话总结

该论文提出了一种可扩展的、基于CPU的分布式深度学习框架,用于在Apache Spark中仅使用通用CPU训练深度神经网络。该框架引入了一种新颖的分布式反向传播算法,实现模型并行训练,具有已证明的收敛性,并通过在集群中高效分配大型模型和数据,实现了高达11倍的加速,且无需使用GPU或专用硬件。

ABSTRACT

Training deep networks is expensive and time-consuming with the training period increasing with data size and growth in model parameters. In this paper, we provide a framework for distributed training of deep networks over a cluster of CPUs in Apache Spark. The framework implements both Data Parallelism and Model Parallelism making it suitable to use for deep networks which require huge training data and model parameters which are too big to fit into the memory of a single machine. It can be scaled easily over a cluster of cheap commodity hardware to attain significant speedup and obtain better results making it quite economical as compared to farm of GPUs and supercomputers. We have proposed a new algorithm for training of deep networks for the case when the network is partitioned across the machines (Model Parallelism) along with detailed cost analysis and proof of convergence of the same. We have developed implementations for Fully-Connected Feedforward Networks, Convolutional Neural Networks, Recurrent Neural Networks and Long Short-Term Memory architectures. We present the results of extensive simulations demonstrating the speedup and accuracy obtained by our framework for different sizes of the data and model parameters with variation in the number of worker cores/partitions; thereby showing that our proposed framework can achieve significant speedup (upto 11X for CNN) and is also quite scalable.

研究动机与目标

  • 解决在单台机器上训练大型深度神经网络时面临的高计算成本和内存限制问题。
  • 通过仅使用通用CPU集群,实现深度神经网络的可扩展训练,避免对昂贵GPU或超级计算机的需求。
  • 在Apache Spark中构建统一框架,支持包括CNN、RNN和LSTM在内的多种网络架构的数据并行与模型并行。
  • 为模型并行设置下的分布式反向传播提供数学上严谨且收敛的算法,同时保持低通信开销。
  • 通过实验验证在不同数据规模、模型参数量和集群配置下的可扩展性与性能表现。

提出的方法

  • 该框架采用混合方法,结合数据并行(将训练数据分区到工作节点)与模型并行(将大型神经网络层分区到多台机器)。
  • 提出一种新颖的分布式反向传播算法用于模型并行训练,其中梯度在本地计算,并通过参数服务器架构异步更新。
  • 通过数学分析和成本建模确保算法收敛,考虑通信延迟和乱序更新的影响。
  • 系统基于Apache Spark实现,使用其弹性分布式数据集(RDDs),并支持多种深度学习架构,包括全连接网络、CNN、RNN和LSTM。
  • 优化采用小批量随机梯度下降结合RMSprop,RNN/LSTM中的可变长度序列通过填充和掩码处理。
  • 通过利用CNN中的局部连接性并实现高效的参数同步,设计以最小化通信开销。

实验结果

研究问题

  • RQ1基于Apache Spark构建的分布式深度学习框架是否能在不依赖GPU的情况下,为大规模模型实现显著加速?
  • RQ2所提出的模型并行反向传播算法在异步更新和通信延迟条件下是否能可靠收敛?
  • RQ3该框架在不同神经网络架构下,随着数据规模和模型复杂度的增加,其可扩展性如何?
  • RQ4模型分区方式和工作节点分区数量对训练性能与通信效率有何影响?
  • RQ5该框架在CPU集群上扩展时,能否在保持与非分布式训练相当的精度?

主要发现

  • 所提出的模型并行反向传播算法在数学上和实验中均收敛,误差随训练轮次减少,梯度趋近于零。
  • 在500万样本上训练CNN时,框架实现了最高达11倍的加速,表明在大规模数据上具有强大的可扩展性。
  • 对于全连接网络,在0.1百万样本下实现了7.2倍加速,使用仅五个CPU时,40亿参数模型也实现了5.6倍加速。
  • 加速效果随模型规模和数据规模增加而提升,性能增益的饱和点随模型增大而上移,表明对大规模问题具有更好的可扩展性。
  • RNN/LSTM的分布式实现显示出随着工作节点增加,速度提升保持一致,证实了对序列架构的可扩展性。
  • 该框架成功支持多种架构,包括CNN、RNN、LSTM和全连接网络,且无需专用硬件或软件。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。