侵权投诉
订阅
纠错
加入自媒体

腾讯高性能分布式计算平台Angel 1.0发布

2017-06-20 08:44
瑾年Invader
关注

腾讯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的优势就越明显。

1  2  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号