深度学习平台讲解

上传人:我** 文档编号:115676502 上传时间:2019-11-14 格式:DOCX 页数:82 大小:2.42MB
返回 下载 相关 举报
深度学习平台讲解_第1页
第1页 / 共82页
深度学习平台讲解_第2页
第2页 / 共82页
深度学习平台讲解_第3页
第3页 / 共82页
深度学习平台讲解_第4页
第4页 / 共82页
深度学习平台讲解_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《深度学习平台讲解》由会员分享,可在线阅读,更多相关《深度学习平台讲解(82页珍藏版)》请在金锄头文库上搜索。

1、【深度学习系列1】 深度学习在腾讯的平台化和应用实践mary发表于 2014.8.41072浏览0讨论引言:深度学习是近年机器学习领域的重大突破,有着广泛的应用前景。随着Google公开Google Brain计划,业界对深度学习的热情高涨。腾讯在深度学习领域持续投入,获得了实际落地的产出。我们准备了四篇文章,阐述深度学习的原理和在腾讯的实践,介绍腾讯深度学习平台Mariana,本文为第一篇。深度学习(Deep Learning)是近年来机器学习领域的热点,在语音识别、图像识别等领域均取得了突破性进展。腾讯提供广泛的互联网服务,在2014年第一季度,即拥有3.96亿月活跃用户的微信,8.48亿

2、月活跃用户的QQ,以及6.44亿月活跃用户的Qzone等平台,拥有海量数据和众多应用,深度学习在腾讯有广泛的潜在应用场景。深度学习是近年来机器学习领域最令人瞩目的方向。自2006年深度学习界泰斗Geoffrey Hinton在Science杂志上发表Deep Belief Networks 1的论文后,重新激活了神经网络的研究,开启了深度神经网络的新时代。学术界和工业界对深度学习热情高涨,并逐渐在语音识别、图像识别、自然语言处理等领域获得突破性进展。深度学习在语音识别领域获得相对20%到30%的准确率提升,突破了近十年的瓶颈。2012年图像识别领域在ImageNet图像分类竞赛中取得了85%的

3、top5准确率 2,相比前一年74%的准确率有里程碑式的提升,并进一步在2013年获得89%的准确率。目前Google、Facebook、Microsoft、IBM等国际巨头,以及国内百度、阿里巴巴等互联网巨头争相布局深度学习。深度学习通过构建深层神经网络,来模拟人类大脑的工作原理。如图1所示,深层神经网络由一个输入层,数个隐层,以及一个输出层构成。每层有若干个神经元,神经元之间有连接权重。每个神经元模拟人类的神经细胞,而结点之间的连接模拟神经细胞之间的连接。 图1:深度神经网络的结构然而,深度学习要在腾讯落地,面临巨大的挑战。首先,深度神经网络模型复杂,训练数据多,计算量大。一方面,DNN需

4、要模拟人脑的计算能力,而人脑包含100多亿个神经细胞,这要求DNN中神经元多,神经元间连接数量也相当惊人。从数学的角度看,DNN中每个神经元都包含数学计算(如Sigmoid、ReLU或者Softmax函数),需要估计的参数量也极大。语音识别和图像识别应用中,神经元达数万个,参数数千万,模型复杂导致计算量大。另一方面,DNN需要大量数据才能训练出高准确率的模型。DNN参数量大,模型复杂,为了避免过拟合,需要海量训练数据。两方面因素叠加,导致训练一个模型耗时惊人。以语音识别为例,目前业界通常使用样本量达数十亿,以CPU单机需要数年才能完成一次训练,用流行的GPU卡也需要数周才能完成训练。其次,深度

5、神经网络需要支持大模型。以图像识别为例,已有工作证明通过增加卷积层的filter数量,加大模型深度等,可以获得更好的模型质量,但模型参数也随之增加。然而,以ImageNet 2012竞赛冠军的网络为例,其占用3.99 GB的显存,已接近主流GPU的显存容量,试图增大模型则会超过GPU显存范围。因此,如何支持更大模型是一个大的挑战。再次,深度神经网络训练收敛难,需要反复多次实验。深度神经网络是非线性模型,其代价函数是非凸函数,容易收敛到局部最优解。同时,深度神经网络的模型结构、输入数据处理方式、权重初始化方案、参数配置、激活函数选择、权重优化方法等均可能对最终效果有较大影响。另外,深度神经网络的

6、数学基础研究稍显不足。虽然可以通过限制性波尔兹曼机(Restricted Boltzmann Machines,RBMs),或者(DenoisingAutoencoder,DAEs)等产生式建模方法初始化网络模型,以达到减少陷入局部最优的风险,但仍然不是彻底的解决方案,仍然需要在实际使用深度神经网络解决问题的时候,合理的利用海量数据,合理的选择优化方式。上述原因导致需要技巧、经验,基于大量实验来训练出一个效果好的模型。因此,深度学习成为一个效果很好但门槛极高的方向,如何落地产生实际应用效果成为关注的焦点。面对机遇和挑战,我们打造了腾讯深度学习平台Mariana。Mariana包括三个框架:深度

7、神经网络(Deep Neural Networks,DNN)的GPU数据并行框架,深度卷积神经网络(Deep ConvolutionalNeural Networks,CNN)的GPU数据并行和模型并行框架,以及DNN CPU集群框架。Mariana通过此三个框架完成并行加速,针对多种应用场景,以解决深度学习训练极慢的问题;Mariana通过模型并行,支持大模型;Mariana提供默认算法的并行实现以减少新算法开发量,简化实验过程。Mariana面向语音识别、图像识别、广告推荐等众多应用领域。腾讯深度学习平台Mariana以GPU服务器为主,每台服务器配置4或者6块Nvidia Tesla系列

8、高端科学计算用GPU卡。利用每块GPU卡2000多个流处理器的强大计算能力,并实现多GPU卡并行以加速训练。腾讯深度学习平台Mariana重点研究多GPU卡的并行化技术,完成DNN的数据并行框架,以及CNN的模型并行和数据并行框架。数据并行和模型并行是Google分布式大神Jeff Dean和深度学习大佬Andrew Ng在2012年NIPS会议上发表的DistBelief3论文中针对深度学习的CPU集群框架提出的定义。数据并行指将训练数据划分为多份,每份数据有一个模型实例进行训练,再将多个模型实例产生的梯度合并后更新模型。模型并行指将模型划分为多个分片,每个分片在一台服务器,全部分片协同对一

9、份训练数据进行训练。我们学习并借鉴了这两种并行方式,并成功应用于单机多GPU卡的并行。DNN的数据并行框架通过同步随机梯度下降进行训练。数据并行训练中,每个GPU卡各自训练,并各自产生一份梯度值,然后进行参数交换。图2.展示了参数交换过程。每台GPU服务器配置6块GPU卡,其中四块通过树状的PCIe连接,并与另外两块GPU卡通过IOH连接。参数交换过程从逻辑上看,梯度收集阶段将全部梯度值累加起来,然后应用到当前模型以更新参数得到新模型,最后在模型分发阶段将新模型下发给全部GPU卡。采用数据并行后,相对于单卡训练过程,关键的问题是参数交换过程引入额外时间消耗,拖累了并行性能,使得加速比很难提高。

10、我们通过一个精心设计的拓扑完成参数交换,提升整体性能。此外,我们采用近似的自适应学习率算法,使得支持自适应学习率所需交换的数据量降低了一个数量级。 图2:DNN GPU框架数据并行的参数交换过程DNN的数据并行框架在微信语音识别中得到应用。微信中语音识别功能的入口是语音输入法、语音开放平台以及长按语音消息转文本等。对微信语音识别任务,通过Mariana,识别准确率获得了极大的提升,目前识别能力已经跻身业界一流水平。同时可以满足语音业务海量的训练样本需求,通过缩短模型更新周期,使得微信语音业务可以及时满足各种新业务需求。卷积神经网络CNN的模型并行和数据并行框架的结构如下图所示: 图3:CNN

11、GPU框架的模型并行和数据并行架构CNN模型并行和数据并行框架对GPU卡分组,组内两个GPU卡做模型并行,组间做数据并行。如上图所示,4个GPU卡分成Worker Group 0和1。组内两卡各持有CNN模型的一部分,称为partition,协作完成单个模型的训练。模型并行中,卡间数据传输通过引入Transfer Layer透明的完成。组间数据并行按同步随机梯度下降进行训练,并采用精巧的拓扑完成参数交换,但注意只有各组内属于同一个partition的数据各自交换,即图中GPU0和GPU2、GPU1和GPU3分别进行参数交换。引入数据并行和模型并行后,从磁盘读取训练数据,训练数据预处理,CNN训

12、练分别占用磁盘、CPU、GPU资源,且均耗时较大。因此,我们引入流水线,使得磁盘、CPU、GPU资源可以同时得到利用,提升整体性能。CNN数据并行和模型并行框架已在图像识别应用中初见成效。针对Hinton在2012年获得ImageNet竞赛冠军用的网络 2,我们取得了两卡模型并行1.71倍加速比,4 GPU卡数据并行加模型并行时比单卡2.52倍的加速比。通过CNN并行框架的模型并行,单个GPU上CNN网络占用的GPU显存从3.99 GB减少到2.15 GB,使得可以训练更大规模的图像分类模型。通过模型并行获得ImageNet 2012数据集87%的top5准确率。CNN并行训练框架在微信图像业

13、务中有众多潜在应用都已尝试接入本框架。同时在广点通广告推荐也开始应用探索。 图4:CNN GPU框架对Hinton的网络2在ImageNet 2012的并行加速性能DNN CPU集群框架实现基于CPU集群的数据并行和模型并行,其总体架构如下图所示: 图5:DNN CPU集群框架总体架构DNN CPU集群框架提供Vertex+Message的API,实现BulkSynchronous Parallel(BSP)模式。每次DNN训练作业作为一个DNN Job,其执行包含多个迭代,用户通过Client工具提交DNN Job。DNN Master负责任务调度,将训练数据分发到不同的Worker Gro

14、up进行训练,并完成任务的failover等,以支持数据并行。Master将DNN Job的状态变化通过LogStore系统同步到数据库,便于从WebUI展示全部作业状态。此外,Master负责Counter的收集,并在WebUI上可视化展示。每个Worker Group中有1个Coordinator协调全部Worker完成模型并行,而Worker完成具体训练任务。模型通过参数服务器Parameter Server划分,并可靠存储在分布式文件系统中。在微信语音业务中,证明DNN CPU集群可取得与GPU相当的训练结果,而且CPU集群训练和GPU训练框架有互补性。经过一年多的沉淀,深度学习在腾讯

15、产生了落地的成果。腾讯深度学习平台Mariana逐步成型,形成了3个框架,包括:DNN GPU数据并行框架,CNN GPU模型并行和数据并行框架,以及DNN CPU集群模型并行和数据并行框架。Mariana通过数据并行和模型并行,解决了深度学习耗时冗长的问题,成为深度学习研究的有效助力。Mariana通过模型并行,有效支持了大模型。Mariana完成众多工作增强易用性,简化深度学习实验,大幅节约算法开发时间。Mariana的DNN GPU数据并行框架,针对微信语音识别应用,在单机6 GPU卡配置下获得相比单卡4.6倍的加速,可在数日内完成数十亿高维度训练样本的DNN模型训练,同时模型字错率降低10%以上。Mariana的CNN模型并行和数据并行框架,针对ImageNet图像分类问题,在单机4 GPU卡配置下,获得了相比单卡2.52倍的加速,并支持更大模型,在ImageNet 2012数据集中获得了87%的top5准确率。目前,腾讯深度学习平台Mariana已支持了微信语音识别的语音输入法、语音开放平台、长按语音消息转文本等产品,在微信图像识别中开始应用。此外,在广告推荐及个性化推荐等领域,也正在积

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号