蒲城头条新闻网

时间:2019-06-12 04:57??编辑:admin
据雷锋网 AI 科技谈论相识,腾讯Angel 1.0是腾讯数据平台部与香港科技大学互助、北京大学到场配合开发的漫衍式盘算框架,它的主要设计目的是为了支持超大维度的机械学习模子运算。
雷锋网AI 科技谈论消息,腾讯的高性能漫衍式盘算平台Angel 1.0自去年公然宣布后,今天已经正式开源。公布地址为 https://github.com/Tencent/angel,感兴趣的开发者可以下载或者孝敬源码。
c4b1f6aab27651780555da9e32ea9367.jpg
用于支持大规模机械学习模子运算
Angel的焦点设计理念围绕模子。它将高维度的大模子切分到多个参数服务器节点,并通过高效的模子更新接口和运算函数,以及天真的同步协议,实现机械学习算法的高效运行。
在去年公然消息时,Angel已经支持了SGD、ADMM优化算法,同时提供了一些常用的机械学习模子,现在开源的Angel 1.0.0正式版也新增了Logistic Regression、SVM、KMeans、LDA、MF、GBDT 等机械学习算法的集成。用户可以利便地在最优化算法上层封装自己的模子。
凭据腾讯数据平台部总司理、首席数据专家蒋杰的先容,Angel还可以支持运行Caffe、TensorFlow、Torch等深度学习框架,实现这些框架的多机多卡的应用场景。
Angel基于Java和Scala开发,能在社区的Yarn上直接调理运行,并基于PS Service,支持Spark on Angel,未来将会支持图盘算和深度学习框架集成。
凭据腾讯大数据部的说法,Angel自去年以来已经在万万级到亿级的特征纬度条件下运行SGD用于现实的生产使命,已经在腾讯视频推荐、广点通等精准推荐营业上现实应用。他们还在扩大腾讯内部的应用规模,未来目的是支持包罗腾讯在内多家公司的大规模机械学习使命。
Angel主要手艺特点
- 整体架构
Angel的整体架构参考了谷歌的DistBelief,这是一种最初为了深度学习而设计、使用了参数服务器来解决庞大模子在训练时更新问题的架构。参数服务器同样可用于机械学习中非深度学习的模子,如SGD、ADMM、LBFGS的优化算法在面临在每轮迭代上亿个参数更新的场景中,需要参数漫衍式缓存来拓展性能。
4fdfbd93985471e64bc1b97f9b37ba56.jpg
如这个系统框图,Client作为客户端可以发送启动或制止、加载或存储模子下令,可以获取运行状态;详细的使命分配、协调调理、资源申请由Master完成;Parameter Sever庞大存储和更新参数,一个Angel盘算使命中可以包罗多个ParameterSever实例,随着使命启动而天生,随着使命竣事而销毁;Work实例卖力详细的模子训练或者效果推理,每个Worker可以包罗一个或者多个Task,这样的Task可以更利便地共享Worker的公共资源。
机械模子运算中需要重复迭代更新参数。Angel接纳的Parameter Sever架构相比其它类型的架构更适合解决庞大模子中的参数更新问题;现实运行中相比参数更新方面有单点瓶颈的Spark平台,Angel能够取得成倍的性能优势,而且模子越大优势越显着。
Angel与Spark做了如下比力:在有5000万条训练样本的数据集上,接纳SGD解的逻辑回归模子,使用10个事情节点(Worker),针对差别维度的特征逐一举行了每轮迭代时间和整体收敛时间的比力(这里Angel使用的是BSP模式)。
728fdc8f01deb8b3acf011aa3eb680a5.jpg
通过数据可见,模子越大Angel对比Spark的优势就越显着。
- 网络优化
Angel的网络解决方案使用的是香港科技大学的Chukonu。借助Chukonu,Angel可以通过网络流量再分配的方式,解决半同步的运算协调机制SSP中可能泛起的快节点等候慢节点的问题,淘汰了窗口空闲等候时间。
如下图所示,在1亿维度、迭代30轮的效果评测中,可以看到Chukonu使得累积的空闲等候时间大幅度淘汰,达3.79倍。
287ec3a1fe7bcbe67a4b20b6b81b44f1.jpg
以及,Chukonu配合参数服务器,可以让慢的节点有更大的可能获得最新的参数,因此对比原始的SSP盘算模子,算法的收敛性获得了提升。下图所示,同样是针对五万万维度的模子在SSP下的效果评测,原生的Angel使命在30轮迭代后(276秒)loss到达了0.0697,而开启了Chukonu后,在第19轮迭代(145秒)就已到达更低的loss。
92317ecabc6851e73d6c77a449b92c94.jpg
快速生长的腾讯盘算平台
雷锋网 AI 科技谈论相识到,去年Angel公布时,腾讯平台部总司理、首席数据专家蒋杰对腾讯盘算平台的生长历程做过先容。2009到2011年的第一代平台主要目的是规模化,形成了TDW(腾讯漫衍式数据堆栈)这样的架构;2012到2014年第二代平台主要是实时化,把大规模盘算搬到平台上,支持了实时性强、规模大的营业需求,可是基于Spark的数据训练就遇到了超大维度时泛起瓶颈的问题。
这样,腾讯最先建设新的高性能盘算框架,要能支持超大规模数据集,能完成十亿级别维度的训练。这就是腾讯的第三台盘算平台Angel。围绕Angel,腾讯还建设了一个小生态圈,可以支持Spark之上的MLLib,支持上亿的维度的训练;也支持更庞大的图盘算模子。
也就是依赖Angel,腾讯获得了2016年的Sort benchmark的排序的4项冠军,用98.8秒时间完成了100T数据的排序,刷新了四项天下纪录。2015年的这项排序时间还高达329秒。
腾讯开源的Angel给头疼于大规模机械学习模子盘算的业内职员提供了一个新选择。生长自己手艺、扩大自己的平台的同时,腾讯也答应未来的开源力度只会越来越大。
标签: 模子??
广告位

热门标签