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

引言:深度学习是近年机器学习领域的重大突破,有着广泛的应用前景。随着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加速性能上已达到国际先进水平,并提交了两项并行加速的专利。目前,腾讯深度学习平台已在微信语音识别、微信图像识别中得到深入应用,有效支持了产品,此外,在广告推荐及个性化推荐等领域,也正在积极探索和实验中。

更多大数据资讯,欢迎关注“腾讯大数据”。

原文发布于微信公众号 - 腾讯大数据(tencentbigdata)

原文发表时间:2014-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

谷歌:计算机视觉模型可在无监督情况下跟踪对象并对视频着色

视频的对象跟踪是计算机视觉的一个基本问题,对于诸如活动识别,对象交互或视频风格化等应用至关重要。然而,教会一台机器以直观地跟踪物体充满挑战性,部分原因在于它需要...

922
来自专栏鸿的学习笔记

深度神经网络的实践效果分析

由于深度神经网络(DNN)作为计算机视觉领域的突出技术的出现,ImageNet分类在推进最新技术方面发挥了重要作用。 虽然准确度在稳定增加,但获胜模型的资源利用...

791
来自专栏ATYUN订阅号

机器学习初学者常犯的六大错误总结

在机器学习中,有很多方法来构建产品或解决方案,而且每种方法都有不同的假设。很多时候,如何识别哪些假设是合理的并不是件容易的事情。在最初的操作中,机器学习新手总会...

3017
来自专栏机器之心

学界 | 商汤联合提出基于FPGA的快速Winograd算法:实现FPGA之上最优的CNN表现与能耗

41810
来自专栏目标检测和深度学习

Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络

? ---- 新智元报道 来源:arXiv 编译:肖琴、克雷格 【新智元导读】深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hint...

4409
来自专栏数据派THU

手把手教你从零搭建深度学习项目(附链接)

本文共1万+字,建议阅读10+分钟。 本文将会从第一步开始,教你解决项目开发中会遇到的各类问题。

843
来自专栏PPV课数据科学社区

写给大家看的机器学习书(第二篇)

作者:徐晗曦 来源:https://zhuanlan.zhihu.com/p/25439997 在《写给大家看的机器学习书》的第一篇,我们了解了机器学习的基本...

3717
来自专栏企鹅号快讯

机器学习初学者常犯的六大错误总结

AiTechYun 编辑:yining 在机器学习中,有很多方法来构建产品或解决方案,而且每种方法都有不同的假设。很多时候,如何识别哪些假设是合理的并不是件容易...

2068
来自专栏华章科技

如何从零开始构建深度学习项目?这里有一份详细的教程

导读:在学习了有关深度学习的理论之后,很多人都会有兴趣尝试构建一个属于自己的项目。本文将会从第一步开始,告诉你如何解决项目开发中会遇到的各类问题。

1164
来自专栏大数据

协同过滤的R语言实现及改进

协同过滤算法(CF)是构建推荐系统时最常用的技术之一。它可以基于收集到的其他用户的偏好信息(协同)来自动地预测当前用户的兴趣点。协同过滤算法主要分为两种:基于记...

3976

扫码关注云+社区

领取腾讯云代金券