最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

腾讯深度学习平台亮相机器学习顶级会议ICML2014

[复制链接]
跳转到指定楼层
楼主
发表于 2014-7-2 16:16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
摘要: 引言:深度学习是近年机器学习领域的重大突破,有着广泛的应用前景。随着Google公开Google Brain计划,业界对深度学习的热情高涨。百度成立深度学习研究院,腾讯也启动了深度学习的研究。腾讯在深度学习领域持续投入 ...



引言:深度学习是近年机器学习领域的重大突破,有着广泛的应用前景。随着Google公开Google Brain计划,业界对深度学习的热情高涨。百度成立深度学习研究院,腾讯也启动了深度学习的研究。腾讯在深度学习领域持续投入,获得了实际落地的产出。本文是腾讯深度学习系列文章的第一篇。我们准备了四篇文章,阐述深度学习的原理和在腾讯的实践。

2014年6月22日,腾讯深度学习平台(Tencent Deep Learning Platform)于国际机器学习领域顶级会议ICML2014上首次公开亮相,揭秘了腾讯深度学习平台的目标和技术路线,及其微信语音识别、微信图像识别、广点通广告推荐等应用场景。

腾讯深度学习平台包括深度神经网络(Deep Neural Networks,DNN)的GPU数据并行框架,深度卷积神经网络(Deep Convolutional Neural Networks,CNN)的GPU数据并行和模型并行框架,以及DNN CPU集群框架。上述框架实现了深度学习的共性需求,减少新算法开发量。框架通过并行加速,加速深度学习训练。

腾讯深度学习平台的DNN GPU数据并行框架,在单机6 GPU卡配置下获得相比单卡4.6倍的加速,可在数日内完成40亿左右高维度训练样本的DNN模型训练。同时通过算法优化,在模型训练提速的同时,提升了模型的分类准确度10%以上。基于此DNN框架,微信语音识别业务得到进一步完善,已于2014年初全量上线微信语音输入和语音开放平台。深度学习平台的CNN模型并行和数据并行框架,在单机4 GPU卡配置下,获得了相比单卡2.52倍的加速,这一指标处于国际领先水平。基于CNN并行框架中的模型并行,图像业务能够支持更大规模图像分类模型,在ImageNet 2012数据集中获得了87%的top5准确率,处于国际先进水平。此外,腾讯深度学习平台提供了DNN CPU集群框架,支持超大规模深度神经网络训练。
图1:腾讯深度学习平台在ICML2014的展区
深度学习是近年来机器学习领域最令人瞩目的方向。自2006年深度学习界泰斗Geoffrey Hinton在Science杂志上发表Deep Belief Networks的论文后,重新激活了神经网络的研究,开启了深度神经网络的新时代。学术界和工业界对深度学习热情高涨,并逐渐在语音识别、图像识别、自然语言处理等领域获得突破性进展。深度学习在语音识别领域获得相对20%到30%的准确率提升,突破了近十年的瓶颈。2012年图像识别领域在ImageNet图像分类竞赛中取得了85%的top5准确率,相比前一年74%的准确率有里程碑式的提升,并进一步在2013年获得89%的准确率。目前Google、Facebook、Microsoft、IBM等国际巨头,以及国内百度、阿里巴巴等互联网巨头争相布局深度学习。

深度学习通过构建深层神经网络,来模拟人类大脑的工作原理。如图2所示,深层神经网络由一个输入层,数个隐层,以及一个输出层构成。每层有若干个神经元,神经元之间有连接权重。每个神经元模拟人类的神经细胞,而结点之间的连接模拟神经细胞之间的连接。
但是,深度神经网络面临巨大的挑战。

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

其次,深度神经网络训练收敛难,需要反复多次实验。深度神经网络是非线性模型,其代价函数是非凸函数,容易收敛到局部最优解。同时,深度神经网络的模型结构、输入数据处理方式、权重初始化方案、参数配置、激活函数选择、权重优化方法等均可能对最终效果有较大影响。另外,深度神经网络的数学基础研究稍显不足。虽然可以通过限制性波尔兹曼机(Restricted Boltzmann Machines,RBMs)等减少陷入局部最优的风险,但仍然不是彻底的解决方案,仍然需要在实际使用深度神经网络解决问题的时候,合理的利用海量数据,合理的选择优化方式。上述原因导致需要技巧、经验,基于大量实验来训练出一个效果好的模型。

面对机遇和挑战,腾讯在2013年初,由WXG微信技术架构部联合TEG数据平台部启动了深度学习的合作研究。微信技术架构部完成了DNN的单机多GPU模型并行训练框架,数据平台部着力打造DNN的CPU集群训练框架。2013年5月,基于DNN训练的语音业务正式上线。随后以数据平台部为主,融合双方优势,开发出升级版的DNN GPU数据并行框架,以及全新的CNN GPU模型并行和数据并行训练框架,打造了统一的腾讯深度学习平台。2014年初开始,全面应用于语音识别、图像识别、广告推荐等应用领域。腾讯深度学习平台致力于通过并行技术加速训练,并提供并行框架和算法以简化算法工程师的工作。

腾讯深度学习平台以GPU服务器为主,每台服务器配置4或者6块Nvidia Telsa系列高端科学计算用GPU卡。利用每块GPU卡2000多个流处理器的强大计算能力,并实现多GPU卡并行以加速训练。

腾讯深度学习平台重点研究多GPU卡的并行化技术,完成DNN的数据并行框架,以及CNN的模型并行和数据并行框架。数据并行和模型并行是Google分布式大神Jeff Dean和深度学习大佬Andrew Ng在2012年NIPS会议上发表的DistBelief 论文中针对深度学习的CPU集群框架提出的定义。数据并行指将训练数据划分为多份,每份数据有一个模型实例进行训练,再将多个模型实例产生的梯度合并后更新模型。模型并行指将模型划分为多个分片,每个分片在一台服务器,全部分片协同对一份训练数据进行训练。我们学习并借鉴了这两种并行方式,并成功应用于单机多GPU卡的并行。

DNN的数据并行框架通过同步随机梯度下降进行训练。数据并行训练中,每个GPU卡各自训练,并各自产生一份梯度值,然后进行参数交换。图3. 展示了参数交换过程。每台GPU服务器配置6块GPU卡,其中四块通过树状的PCIe连接,并与另外两块GPU卡通过IOH连接。参数交换过程从逻辑上看,梯度收集阶段将全部梯度值累加起来,然后应用到当前模型以更新参数得到新模型,最后在模型分发阶段将新模型下发给全部GPU卡。采用数据并行后,相对于单卡训练过程,关键的问题是参数交换过程引入额外时间消耗,拖累了并行性能,使得加速比很难提高。我们通过一个精心设计的拓扑完成参数交换,提升整体性能。此外,我们采用近似的自适应学习率算法,使得支持自适应学习率所需交换的数据量降低了一个数量级。
图3:DNN GPU框架数据并行的参数交换过程

DNN的数据并行框架在微信语音识别中得到应用。微信中语音识别功能的入口是语音输入法、语音开放平台以及长按语音消息转文本等。对微信语音识别任务,通过腾讯深度学习平台,识别准确率获得了极大的提升,目前识别能力已经跻身业界一流水平。同时可以满足语音业务海量的训练样本需求,通过缩短模型更新周期,使得微信语音业务可以及时满足各种新业务需求。

卷积神经网络CNN的模型并行和数据并行框架的结构如下图所示:
图4:CNN GPU框架的模型并行和数据并行架构

CNN模型并行和数据并行框架对GPU卡分组,组内两个GPU卡做模型并行,组间做数据并行。如上图所示,4个GPU卡分成Worker Group 0和1。组内两卡各持有CNN模型的一部分,称为partition,协作完成单个模型的训练。模型并行中,卡间数据传输通过引入Transfer Layer透明的完成。组间数据并行按同步随机梯度下降进行训练,并采用精巧的拓扑完成参数交换,但注意只有各组内属于同一个partition的数据各自交换,即图中GPU0和GPU2、GPU1和GPU3分别进行参数交换。引入数据并行和模型并行后,从磁盘读取训练数据,训练数据预处理,CNN训练分别占用磁盘、CPU、GPU资源,且均耗时较大。因此,我们引入流水线,使得磁盘、CPU、GPU资源可以同时得到利用,提升整体性能。

CNN数据并行和模型并行框架已在图像识别应用中初见成效。针对Hinton在2012年获得ImageNet竞赛冠军用的网络,我们取得了两卡模型并行1.71倍加速比,4 GPU卡数据并行加模型并行时比单卡2.52倍的加速比,处于国际领先水平。通过CNN并行框架的模型并行,单个GPU上CNN网络占用的GPU显存从3.99 GB减少到2.15 GB,使得可以训练更大规模的图像分类模型。通过模型并行获得ImageNet 2012数据集87%的top5准确率,处于国际先进水平。CNN并行训练框架在微信图像业务中得到应用,图像识别,图像检索,人脸识别,OCR识别等,都已尝试接入本框架。同时数据平台部支持的广点通广告推荐也开始应用探索。
图5:CNN GPU框架对Hinton的网络在ImageNet 2012的并行加速性能

DNN CPU集群框架实现基于CPU集群的数据并行和模型并行,其总体架构如下图所示:
图6:DNN CPU集群框架总体架构

DNN CPU集群框架提供Vertex+Message的API,实现Bulk Synchronous Parallel(BSP)模式。每次DNN训练作业作为一个DNN Job,其执行包含多个迭代,用户通过Client工具提交DNN Job。DNN Master负责任务调度,将训练数据分发到不同的Worker Group进行训练,并完成任务的failover等,以支持数据并行。Master将DNN Job的状态变化通过LogStore系统同步到数据库,便于从WebUI展示全部作业状态。此外,Master负责Counter的收集,并在WebUI上可视化展示。每个Worker Group中有1个Coordinator协调全部Worker完成模型并行,而Worker完成具体训练任务。模型通过参数服务器Parameter Server划分,并可靠存储在分布式文件系统中。在微信语音业务中,证明DNN CPU集群可取得与GPU相当的训练结果,而且CPU集群训练和GPU训练框架有互补性。

经过一年多的沉淀,深度学习在腾讯产生了落地的成果。腾讯深度学习平台逐步成型,形成了包括DNN GPU数据并行框架,CNN GPU模型并行和数据并行框架,以及DNN CPU集群模型并行和数据并行框架。上述框架实现了深度学习的共性需求,大幅节约算法开发时间。框架通过数据并行和模型并行,解决了深度学习耗时冗长的问题,成为深度学习研究的有效助力。腾讯深度学习平台在GPU加速性能上已达到国际先进水平,并提交了两项并行加速的专利。目前,腾讯深度学习平台已在微信语音识别、微信图像识别中得到深入应用,有效支持了产品,此外,在广告推荐及个性化推荐等领域,也正在积极探索和实验中。


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

沙发
发表于 2014-7-12 23:06:53 | 只看该作者
我是来刷分的,嘿嘿
板凳
发表于 2014-7-20 21:46:59 | 只看该作者
支持一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-2 11:11

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表