中国领先的IT技术网站
|
|

Angel:一种新型分布式机器学习系统

Angel是一个基于参数服务器(Parameter Server)理念的分布式机器学习框架,它能让机器学习算法轻松运行于高维度模型之上。Angel围绕模型共享的核心理念,将高维度的大模型合理地切分到多个参数服务器节点,并通过高效的模型更新接口和运算函数以及多变的同步协议,实现各种高效的机器学习算法。

作者:佚名来源:学术帮|2017-12-05 14:55

开发者大赛路演 | 12月16日,技术创新,北京不见不散


Angel是一个基于参数服务器(Parameter Server)理念的分布式机器学习框架,它能让机器学习算法轻松运行于高维度模型之上。Angel围绕模型共享的核心理念,将高维度的大模型合理地切分到多个参数服务器节点,并通过高效的模型更新接口和运算函数以及多变的同步协议,实现各种高效的机器学习算法。得益于其良好的设计,Angel既能独立运行、高效执行多种机器学习算法,亦能作为PS服务,支持Spark和现有的深度学习框架,为其加速。它基于工业界的海量数据进行了反复的实践和调优,具有广泛的适用性和稳定性,模型维度越高,优势越明显。

现有的机器学习系统都是针对不同类型的机器学习任务而搭建的。数据流系统Hadoop和Spark适合通用的数据处理任务和构建机器学习流水线,但缺乏参数共享机制,存在单点瓶颈性能问题;图计算系统GraphLab、GraphX和Tux2等将机器学习计算抽象成图结构,可以利用图结构的特性进行加速,但只适合具有稀疏图结构的算法;深度学习系统TensorFlow、MXNet和Caffe2等利用Parameter Server或者Allreduce方法进行分布式神经网络的训练,其特点是能够利用GPU对神经网络的计算进行加速,但缺乏对稀疏图结构的优化和支持。

Angel在设计中对分布式机器学习的共性进行了抽象和提炼。文章认为分布式机器学习的核心部分在于参数共享,如果可以提供高效的参数共享机制,则能够为各类机器学习任务进行扩展和加速。因此,Angel提供了PS服务的能力,支持两种运行模式。其中一种模式称为PS Service模式,Angel只启动Master和Parameter Server,具体的计算任务交由其他计算平台(如Spark、TensorFlow等)完成,这种模式下Angel只负责提供Parameter Server的功能;在另外一种模式中,Angel还会启动Worker,由Angel负责完成模型的训练。Angel提供PS服务的能力,使其能处理多种类型的机器学习任务,提供更方便的机器学习开发体验。

此外,Angel还能提供:(1)多种参数同步协议,用于在不同的集群环境中进行加速;(2)易用且丰富的接口,用于方便算法的开发;(3)数据并行与模型并行的能力,提高算法的扩展性;(4)高效的容错机制,为任务在复杂环境中的运行提供保障。经过在真实数据集上的对比,Angel在多种机器学习算法上的性能优于XGBoost、Spark、Petuum、TensorFlow等常用机器学习系统。目前Angel已经被应用于腾讯视频点击预测和广告推荐等实际业务中。

Angel的开源系统由北京大学-腾讯协同创新实验室开发,兼顾了工业界的高可用性和学术界的创新性,已经在GitHub全面开源,集成和优化了Logistic Regression、SVM、KMeans、LDA、MF、GBDT 等多种机器学习算法。Angel目前基于Java和Scala开发,未来还会加入Python等多种语言接口,方便使用。将来,Angel的PS Service能力会得到进一步利用,支持图计算和深度学习框架。

【编辑推荐】

  1. HPE Apollo系统启用ARM与Skylake角逐
  2. Linux为何能成为超算界的操作系统大佬?
  3. UPS供电系统的蓄电池监控与管理
  4. 戴尔全新解决方案将机器学习和深度学习引入主流企业
  5. 数据中心机柜系统成功部署的关键要素分析
【责任编辑:武晓燕 TEL:(010)68476606】


点赞 0
分享:
大家都在看
猜你喜欢

视频课程+更多

热门职位+更多

读 书 +更多

3D游戏开发大全(高级篇)

在我的第一本书——《3D游戏开发大全》中,我们曾经对3D游戏开发完成了一次犹如探索原始丛林般的旅程:首先,我们对3D游戏产业进行了初步了...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊