专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
OSC开源社区  ·  “四两拨千斤”——1.2MB数据如何吃掉10 ... ·  4 天前  
程序员的那些事  ·  赢麻了!软考重大政策,利好所有程序员! ·  6 天前  
OSC开源社区  ·  Linus::我略微出手修改几行内核代码就提 ... ·  1 周前  
51好读  ›  专栏  ›  程序猿

业界良心!腾讯高性能计算平台Angel开源啦!

程序猿  · 公众号  · 程序员  · 2017-06-22 16:42

正文

程序猿(ID:imkuqin)  猿妹 采编

参考:腾讯 Angel 官方 Github、腾讯开源、腾讯大数据


腾讯的高性能分布式计算平台Angel 1.0自去年公开宣布后,近日已经正式全面开源。

Angel是一个基于参数服务器(Parameter Server)理念开发的高性能分布式机器学习框架,基于 Java 和 Scala 开发,能在社区的 Yarn 上直接调度运行,并基于 PS Service ,支持 Spark on Angel ,未来将会支持图计算和深度学习框架集成。


Github : https://github.com/Tencent/angel(点击尾部阅读原文前往)




在去年公开消息至今,Angel 已经在腾讯视频推荐、广点通等精准推荐业务上实际应用。他们还在扩大腾讯内部的应用范围,未来目标是支持包括腾讯在内多家公司的大规模机器学习任务。


现在开源的Angel 1.0.0正式版也新增了许多机器学习算法的集成。用户可以方便地在最优化算法上层封装自己的模型。据腾讯数据平台部总经理、首席数据专家蒋杰的介绍,Angel 还可以支持运行 Caffe、TensorFlow、Torch 等深度学习框架,实现这些框架的多机多卡的应用场景。一起来看看 Angel 有哪些技术特点!


Angel主要技术特点


 1、整体架构



Client 作为 Angel 的客户端,它给应用程序提供了控制任务运行的功能。Worker 负责具体的模型训练或者结果预测;Master 则负责具体的任务分配、协调调度、资源申请。



Angel 采用的 Parameter Sever 架构相比其它类型的架构更适合解决巨大模型中的参数更新问题;Parameter Server 功能:

● 基于 Matrix/Vector 的模型自动切分和管理,兼顾稀疏和稠密两种格式

● 支持对 Model 进行 Push 和 Pull 操作,可以自定义复杂的 psFunc

● 提供多种同步控制机制(BSP/SSP/ASP)



针对不同维度的特征,对 Angel 与 Spark 每轮迭代时间和整体收敛时间做出比较通过数据可见,模型越大 Angel 对比 Spark 的优势就越明显。



2、系统框架



3、算法库及优化


现在开源的Angel 1.0.0正式版也新增了Logistic Regression、SVM、KMeans、LDA、MF、GBDT 等机器学习算法的集成:

● 集成 Logistic Regression,SVM,KMeans,LDA,MF,GBDT 等机器学习算法

● LDA 采用了 F+LDA 算法用于加速采样的速度,同时利用流式参数获取的方法减少网络参数获取的延迟

● GBDT 使用两阶段树分裂算法,将部分计算转移到PS,减少网络传输,提升速度

● 多种优化方法,包括 ADMM,OWLQN, LBFGS和GD

● 支持多种损失函数、评估指标,包含 L1、L2 正则项



4、网络优化

Angel的网络解决方案使用的是香港科技大学的 Chukonu。借助 Chukonu,Angel 可以通过网络流量再分配的方式,解决半同步的运算协调机制 SSP 中可能出现的快节点等待慢节点的问题,减少了窗口空闲等待时间。如图所示,在 1 亿维度、迭代 30 轮的效果评测中,Chukonu 使累积的空闲等待时间减少约 3.79 倍。


5、Angel 运行模式


Angel 支持以下两种运行模式:

● ANGEL_PS: PS Service 模式,在这种模式下,Angel 只启动 Master 和 PS,具体的计算交给其他计算平台(如 Spark,Tensorflow)负责,Angel 只负责提供 Parameter Server 的功能。

● ANGEL_PS_WORKER:启动 Master,PS 和 Worker,Angel 独立完成模型的训练。


围绕 Angel,腾讯还建立了一个小生态圈,可以支持 Spark 之上的 MLLib,支持上亿的维度的训练;也支持更复杂的图计算模型。同时依靠Angel,腾讯获得了 2016 年的 Sort benchmark 的排序的4项冠军,用 98.8 秒时间完成了 100T 数据的排序,刷新了四项世界纪录。2015 年的这项排序时间还高达 329 秒。


腾讯开源的Angel给大规模机器学习模型计算的业内人员提供了一个新选择。


Github : https://github.com/Tencent/angel (点击尾部阅读原文前往)



●本文编号2443,以后想阅读这篇文章直接输入2443即可。

●输入m获取文章目录

推荐↓↓↓
 

大数据技术

更多推荐18个技术类微信公众号

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。