您好,欢迎访问三七文档
主讲人:Petuum技术主管于伟仁Petuum技术主管吴竑PetuumPoseidon高效的分布式深度学习平台PetuumPoseidon:高效的分布式深度学习平台主讲人:于伟仁,吴竑PetuumInc.Petuum,Inc.创始人:EricXing,卡内基梅隆大学(CMU)著名教授,人工智能学界权威愿景:PetuumInc.致力于打造新一代全方位的人工智能操作系统和机器学习软件解决方案,应用分布式计算和虚拟化,使得开发企业级AI解决方案更简化更便捷。通过使用标准化的构件和方法,Petuum产品让各公司团体机构,拥有创建高效、可扩展的AI/ML解决方案的能力。2017年1月:权威机构评选为全球最有前途的100家AI公司之一(CBInsightsAI100)2017年9月:长城会G-Summit全球科学创新峰会AIStartupTop10.3@Pittsburgh, PA, USA打造下一代人工智能平台三个产品:•PetuumOS,企业级分布式人工智能/机器学习操作系统,能够桥接目前业界所有数据类型、任何编程语言、各种硬件架构。•Poseidon,高效的分布式深度学习平台,允许用户使用尖端设计轻松构建新的ML和DL模型,运行为流行软件(TensorFlow,Caffe,scikit-learn等)编写的现有DL程序。•PetuumMed,医疗行业解决方案,从海量的EHR数据和医学影像数据挖掘出及时和可行的见解,帮助医生了解患者的临床状况以及医疗决策支持。4Poseidon平台•Poseidon:一个高效的分布式深度学习平台–增强现有深度学习引擎–兼容现有引擎编程接口•现有深度学习模型不需更改任何代码,就可以运行在Poseidon上Poseidon引擎&工具集平台深度学习Hao Zhang6训练数据集:带标签的图像数据EagleVultureAccipiterOsprey深度学习模型正确识别图像神经网络的结构•本质上,一个神经网络由很多“层”组成•每一层对应着复杂的计算:卷积层,全联通层•层之间每条链接的权重,是神经网络模型的参数(Parameter)•如何计算模型参数?ConvFC参数训练神经网络:前向传递•反向传播(backwardpropagation,BP)是训练神经网络的主要算法•反向传播定义了训练流程,数据会传递过神经网络两遍(前向,后向)–前向传递中,逐层通过神经网络,直到得到Lossℒ函数的值–后向传递中,逐层计算参数的梯度值(gradients),用以叠加更新参数–如此往复,直到收敛⋯前向传递𝑥训练神经网络:前向传递•反向传播(backwardpropagation,BP)是训练神经网络的主要算法•反向传播定义了训练流程,数据会传递过神经网络两遍(前向,后向)–前向传递中,逐层通过神经网络,直到得到Lossℒ函数的值–后向传递中,逐层计算参数的梯度值(gradients),用以叠加更新参数–如此往复,直到收敛⋯前向传递𝑥神经网络中的前向传递•反向传播(backwardpropagation,BP)是训练神经网络的主要算法•反向传播定义了训练流程,数据会传递过神经网络两遍(前向,后向)–前向传递中,逐层通过神经网络,直到得到Lossℒ函数的值–后向传递中,逐层计算参数的梯度值(gradients),用以叠加更新参数–如此往复,直到收敛⋯前向传递𝑥ℒ𝑓%𝑓&𝑓'神经网络中的后向传递•反向传播(backwardpropagation,BP)是训练神经网络的主要算法•反向传播定义了训练流程,数据会传递过神经网络两遍(前向,后向)–前向传递中,逐层通过神经网络,直到得到Lossℒ函数的值–后向传递中,逐层计算参数的梯度值(gradients),用以叠加更新参数–如此往复,直到收敛后向传递⋯ℒ神经网络中的后向传递•反向传播(backwardpropagation,BP)是训练神经网络的主要算法•反向传播定义了训练流程,数据会传递过神经网络两遍(前向,后向)–前向传递中,逐层通过神经网络,直到得到Lossℒ函数的值–后向传递中,逐层计算参数的梯度值(gradients),用以叠加更新参数–如此往复,直到收敛后向传递⋯ℒ神经网络中的后向传递•反向传播(backwardpropagation,BP)是训练神经网络的主要算法•反向传播定义了训练流程,数据会传递过神经网络两遍(前向,后向)–前向传递中,逐层通过神经网络,直到得到Lossℒ函数的值–后向传递中,逐层计算参数的梯度值(gradients),用以叠加更新参数–如此往复,直到收敛Hao Zhang后向传递⋯ℒ𝑏&𝑏%𝑏'⋯𝑓&𝑓'𝑓%⋯𝑏&𝑏'𝑏%随机梯度下降训练神经网络•将随机梯度下降算法(mini-batchSGD)应用到反向传播(BP)–随机梯度下降算法:定义了梯度值计算方法,以及同步流程。–1.前向:顺序执行𝑓%,𝑓',…,𝑓&操作–2.后向:顺序执行𝑏&,𝑏&+%,…,𝑏%操作–3.更新:将梯度值应用到现有的模型参数上去–如此往复更新参数小批量数据输入分布式深度学习前向传递和后向传递操作占据训练过程99%的计算量⋯𝑓&𝑓'𝑓%⋯𝑏&𝑏'𝑏%更新参数配备GPU的计算节点集群同步小批量数据输入•分布式深度学习:用多台计算机并行化深度学习模型训练.•即,将最繁重的任务分发到多台计算机上去并行执行分布式深度学习•基于随机梯度下降(mini-batchSGD)进行数据并行化–数据处理并行:分割为不同的分区–梯度值计算并行:分布到不同的计算节点–同步并行:利用参数服务器,对梯度值进行同步后叠加.–通信:节点发送梯度值,获取叠加后参数值,需要大量通信带宽!同步(one or more machines)Worker1Worker2Worker3Worker4DataDataDataData•训练AlexNet,梯度值产生速率240Mfloats/(s*GPU)–61.5M浮点数,0.25s/迭代,GeforceTitanX(batchsize=256)•使用参数服务器,在8个计算节点上并行计算.–为了加入更多计算节点,性能会线性提升,GPU计算不会阻塞–假设:每个计算节点上存储1/8的所有参数–每个节点需要带宽:240M*7/8*4=840Mfloats/s=26Gbps分布式深度学习:案例与瓶颈分析Figure from Krizhevskyet al. 2012分布式深度学习:案例与瓶颈分析•这是我们现在的硬件•不幸的是,这个问题比描述的更加严重–我们仅使用了8个计算节点(小集群).32,128甚至256个节点?–我们也未将其他因素纳入考量,比如,•网络会与其他应用共享,造成更低的有效带宽.•突发式的通信流量在GPU上非常常见(稍后解释).•正是通信问题,使得在分布式环境下,多机加速比受到了限制!Ethernetstandards实验室中最普遍的网络条件AWS上最贵的计算资源($18/小时?)专用硬件!并非常用硬件,非常昂贵Poseidon:分布式深度学习平台•Poseidon平台–增强现有深度学习引擎,兼容现有平台编程接口•Poseidon的通信技术–无等待的反向传播(WFBP):通过将通信与计算时间重叠来隐藏通信开销–混合通信模型(HybComm):(无损地)减少网络传输流量无等待的反向传播(WFBP)•利用流水线调度将计算与通信重叠–通信开销隐藏在计算开销之下,结果:在单位时间内进行更多的计算–解决突发性通信问题𝑇𝑡 𝐶0 𝑂0𝐼0𝐶03% 𝐼03%⋯𝑂03%𝑏&𝑏'𝑏%𝑜556%&𝑖556%&计算与通信顺序发生!⋯𝑓&𝑓'𝑓%更新参数计算参数发送参数获取参数计算与通信并发,隐藏通信开销!𝐶0𝑂0𝐼0𝐶03%𝑂03%𝐼03%𝐶03'𝑂03'𝐼03'𝐶038𝑂038𝐼038𝑇𝑡⋯𝑏&𝑏'𝑏%𝑜&𝑜8𝑜'𝑜%𝑖&𝑖8𝑖'𝑖%⋯𝑓&𝑓'𝑓%流水线调度•性能怎么样?–OnCaffe:–OnTensorFlowWFBP:无等待反向传播4x性能提升拯救你的TensorFlowJWFBP:无等待反向传播•这能解决所有的问题吗?–不能,当通信时间比计算还要长的时候(如下图).–Gap:理想情况与现实存在的差距𝐶0𝑂0𝐼0𝐶0SinglenodeDistributedGapPoseidon:分布式深度学习平台•Poseidon平台–增强现有深度学习引擎,兼容现有平台编程接口•Poseidon的通信技术–无等待的反向传播(WFBP):通过将通信与计算时间重叠来隐藏通信开销–混合通信模型(HybComm):(无损地)减少网络传输流量混合通信模型:充分参数广播(SFB)•模型参数矩阵•很多参数矩阵的数学性质–整个矩阵的参数更新ΔW分解为两个向量的外积𝑢𝑣;(𝑢,𝑣叫做充分参数)#classes=325KFeaturedim.=20K26GMulticlassLogisticRegressionNeuralNetwork(AlexNet)#neuronsinlayerfc6=4096#neuronsinlayerfc7=409616.7M)();(1min1WhbWafNNiiiiW+å=T(,)()iiiifWabWuvuvaWa¶D===¶•思路:发送轻量级的充分参数(u,v),而不是昂贵的全矩阵ΔW!•案例:AlexNetCNNmodel–全连通层参数大小:FC6=4096*4096矩阵(16.7M个参数)–使用SFB通信•分解为两个4096向量:u,v•发送两个向量•之后重建梯度值矩阵混合通信模型:充分参数广播(SFB)Figure from Krizhevskyet al. 2012混合通信模型:充分参数广播(SFB)•有时,充分参数广播并不划算•案例:AlexNetCNNmodel–卷积层参数大小,11*11矩阵(121parameters)–通信量减小不显著,且增加充分参数计算开销Figure from Krizhevskyet al. 2012混合通信模型•思路–使用SFB同步全连通层–使用Ps同步卷积层•有效性–在很多情况下直接减少通信量•SFB总是最优吗?–不,它的通信开销随机器数量进行平方式增长–正确的策略:在更高效的情况下使用Ps通信混合通信模式•如何选择?我们可以进行定量分析–层的类型:卷积层CONV还是全连通层FC?–层的大小:神经元数量M,N–批量大小:BatchsizeK–集群中计算节点的数量:𝑃%,𝑃'•性能怎么样?–OnCaffe:–OnTensorFlow:混合通信模式性能比WFBP更进一步性能比WFBP更进一步混合通信模式•更重要的是,即使在带宽有限的情况下,也达到了计算吞吐量的线性扩展!–使用常用硬件也可以进行快速深度学习模型训练–降低分布式机器学习部署成本总结:值得记住的几点•通信是基于GPU的分布式深度学习的瓶颈–GPU很快–Ethernet带宽很有限–突发式的通信特征•Poseidon解决通信瓶颈–无等待反向传播WFBP:将计算与通信流水线化–混合通信:动态选择更高效的通信方式–在多个数据集、模型大小、硬件条件下,达到性能的线性拓展Zhang,H.,Zheng,Z.,Xu,S.,Dai,W.,Ho,Q.,Liang,X.,Hu,Z.,Wei,J.,Xie,P.andXing,E.P.,2017.Poseidon:AnEfficientCommunicationArchitectureforDistributedDeepLearningonGPUClusters.USENIXATC2017•PetuumInc.–打造新一代企业级人工智能解决方案•PetuumPoseidon是一个平台–增强现有深度学习引擎–兼容现有引擎编程接口–Poseidon更快速可以运行现有模型代码•Poseidon-DyNet–下一代深度学习引擎,支持动态图–性能比同类平台快数十倍–https://
本文标题:T112017人本数据和智能分会场PetuumPoseidon高效的分布式深度学习平台32页
链接地址:https://www.777doc.com/doc-6792537 .html