业界 | 腾讯正式开源高性能分布式计算平台Angel1.0,追赶同行脚步

AI 科技评论消息,腾讯的高性能分布式计算平台Angel 1.0自去年公开宣布后,今天已经正式开源。发布地址为 https://github.com/Tencent/angel,感兴趣的开发者可以下载或者贡献源码。

用于支持大规模机器学习模型运算

据 AI 科技评论了解,腾讯Angel 1.0是腾讯数据平台部与香港科技大学合作、北京大学参与共同开发的分布式计算框架,它的主要设计目标是为了支持超大维度的机器学习模型运算。

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的优化算法在面临在每轮迭代上亿个参数更新的场景中,需要参数分布式缓存来拓展性能。

如这个系统框图,Client作为客户端可以发送启动或停止、加载或存储模型命令,可以获取运行状态;具体的任务分配、协调调度、资源申请由Master完成;Parameter Sever复杂存储和更新参数,一个Angel计算任务中可以包含多个ParameterSever实例,随着任务启动而生成,随着任务结束而销毁;Work实例负责具体的模型训练或者结果推理,每个Worker可以包含一个或者多个Task,这样的Task可以更方便地共享Worker的公共资源。

机器模型运算中需要反复迭代更新参数。Angel采用的Parameter Sever架构相比其它类型的架构更适合解决巨大模型中的参数更新问题;实际运行中相比参数更新方面有单点瓶颈的Spark平台,Angel能够取得成倍的性能优势,而且模型越大优势越明显。

Angel与Spark做了如下比较:在有5000万条训练样本的数据集上,采用SGD解的逻辑回归模型,使用10个工作节点(Worker),针对不同维度的特征逐一进行了每轮迭代时间和整体收敛时间的比较(这里Angel使用的是BSP模式)。

通过数据可见,模型越大Angel对比Spark的优势就越明显。

- 网络优化

Angel的网络解决方案使用的是香港科技大学的Chukonu。借助Chukonu,Angel可以通过网络流量再分配的方式,解决半同步的运算协调机制SSP中可能出现的快节点等待慢节点的问题,减少了窗口空闲等待时间。

如下图所示,在1亿维度、迭代30轮的效果评测中,可以看到Chukonu使得累积的空闲等待时间大幅度减少,达3.79倍。

以及,Chukonu配合参数服务器,可以让慢的节点有更大的可能获得最新的参数,因此对比原始的SSP计算模型,算法的收敛性得到了提升。下图所示,同样是针对五千万维度的模型在SSP下的效果评测,原生的Angel任务在30轮迭代后(276秒)loss达到了0.0697,而开启了Chukonu后,在第19轮迭代(145秒)就已达到更低的loss。

快速发展的腾讯计算平台

AI 科技评论了解到,去年Angel发布时,腾讯平台部总经理、首席数据专家蒋杰对腾讯计算平台的发展历程做过介绍。2009到2011年的第一代平台主要目标是规模化,形成了TDW(腾讯分布式数据仓库)这样的架构;2012到2014年第二代平台主要是实时化,把大规模计算搬到平台上,支持了实时性强、规模大的业务需求,但是基于Spark的数据训练就遇到了超大维度时出现瓶颈的问题。

这样,腾讯开始建设新的高性能计算框架,要能支持超大规模数据集,能完成十亿级别维度的训练。这就是腾讯的第三台计算平台Angel。围绕Angel,腾讯还建立了一个小生态圈,可以支持Spark之上的MLLib,支持上亿的维度的训练;也支持更复杂的图计算模型。

也就是依靠Angel,腾讯获得了2016年的Sort benchmark的排序的4项冠军,用98.8秒时间完成了100T数据的排序,刷新了四项世界纪录。2015年的这项排序时间还高达329秒。

腾讯开源的Angel给头疼于大规模机器学习模型计算的业内人员提供了一个新选择。发展自己技术、扩大自己的平台的同时,腾讯也承诺未来的开源力度只会越来越大。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-06-17

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

在统一的分析平台上构建复杂的数据管道

在Quora上,大数据从业者经常会提出以下重复的问题:什么是数据工程(Data Engineering)? 如何成为一名数据科学家(Data Scientist...

2028
来自专栏杨建荣的学习笔记

我打算这么做巡检方向的事情

巡检的工作其实是比较枯燥和乏味的,在某种程度上,他的工作和监控是有很多交集的,其实在很多公司里面,巡检方向的落地情况其实不容乐观,采用脚本和被动触发的方...

913
来自专栏BVS智能视频分析-安全帽识别技术

BVS 安全帽识别系统(安全帽佩戴检测)

现如今国家越来越重视安全生产,各个企业也都采取各种措施保障员工的安全生产从而保障了企业的利益。在各各行都存在着在岗工人不佩戴安全帽和做相关安全措施危险作业,由于...

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

分布式机器学习的故事

从毕业加入Google开始做分布式机器学习,到后来转战腾讯广告业务,至今已经七年了。我想说说我见到的故事和我自己的实践经历。这段经历给我的感觉是:虽然在验证一个...

3626
来自专栏大数据文摘

吴甘沙清华讲:大数据的10个技术前沿(中)

1313
来自专栏州的先生

Python快速搭建会学习的微信聊天机器人

1131
来自专栏企鹅号快讯

2018,如何从小白升级到大牛程序员呢?

关键时刻,第一时间送达! KS Knowledge Sharing 知识分享 现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与...

18910
来自专栏斑斓

剖析大数据平台的数据分析

无论是采集数据,还是存储数据,都不是大数据平台的最终目标。失去数据处理环节,即使珍贵如金矿一般的数据也不过是一堆废铁而已。数据处理是大数据产业的核心路径,然后再...

3106
来自专栏IT技术精选文摘

使用Kafka在生产环境中构建和部署可扩展的机器学习

1357
来自专栏互联网研发闲思录

个性化推荐系统(八)--- 机器学习深度学习召回集扩量

个性化推荐系统评价有两个重要指标,一个是召回率一个是准确率。召回率就是:召回率=提取正确信息条数/样本中信息条数。准确率就是:准确率=提取出正确信息条数/提取信...

2285

扫码关注云+社区