首页 > > 读书 > 正文

50万行代码量,腾讯开源框架Angel3.0发布,迈向全栈机器学习平台

机器之心报道

机器之心编辑部

近年来,随着深度学习技术的发展,越来越多的科技巨头开发自己的机器学习平台。昨日,华为宣布将与明年第一季度开源自家的 AI 框架 MindSpore,引起极大关注。

除了华为,国内的科技巨头腾讯也于近日正式发布开源平台 Angel 3.0,试图打造全栈机器学习平台,功能特性涵盖机器学习的各个阶段:特征工程,模型训练,超参数调节和模型服务。

Angel 平台是腾讯数据平台部于 2016 年底推出的面向机器学习的「第三代高性能计算平台」,并于 2017 年开放了其源代码。

项目链接:https://github.com/Angel-ML

Angel 3.0 新特性

据腾讯介绍,Angel 是基于参数服务器架构的分布式计算平台,致力于解决稀疏数据大模型训练以及大规模图数据分析问题。

Angel 3.0 的整体系统架构如下图所示:

Angel 自研的高性能数学库是整个系统的基础,Angel 的 PS 功能和内置的算法内核均是在这个数学库基础之上实现的。

Angel PS 提供了高效,稳定和灵活的参数存储和交换服务。在 3.0 版本中,腾讯对 Angel PS 功能进行了扩展,使得它可以存储任意类型的对象,例如在图算法的实现过程中,用户可以使用 Angel PS 来存储了大量复杂的对象。

上图中 MLcore 是 Angel 自研的一套算法内核,它支持自动求导,可以使用 JSON 配置文件定义和运行算法。

除此之外,在 3.0 版本中,Angel 还集成了 PyTorch 作为计算引擎。在计算引擎层之上是计算框架,它们可以看作计算引擎的容器,目前支持 3 种计算框架:原生的 Angel,Spark On Angel(SONA)和 PyTorch On Angel(PyTONA),这些计算框架可以使得 Spark 和 PyTorch 用户可以无缝切换到 Angel 平台。

其中,Spark On Angel 使用的是 Angel 内置的算法核心,主要负责常见推荐领域的机器学习算法和基础图算法。PyToch On Angel 使用 PyTorch 作为计算核心,主要负责推荐领域深度学习算法和图深度学习算法。

最上层是两个公共组件:AutoML 和模型服务。

据腾讯介绍,Angel 3.0 的发布意在打造一个全栈的机器学习平台,它的功能特性涵盖了机器学习的各个阶段:特征工程,模型训练,超参数调节和模型服务。下图总结了 Angel 3.0 的新特性,红色的表示新增特性,白色的表示已有的但在持续改进的特性。

Angel 的特征工程模块基于 Spark 开发,增强了 Spark 的特征选择功能,同时使用特征交叉和重索引实现了自动特征生成,这些组件可以无缝地整合进 Spark 的流水线。

为了让整个系统更加的智能,Angel 3.0 新增了超参数调节的功能,目前支持 3 种算法:随机搜索、网格搜索和贝叶斯优化。

在模型服务方面,Angel 3.0 提供了一个跨平台的组件 Angel Serving,Angel Serving 不仅可以满足 Angel 自身的需求,还可以为其他平台提供模型服务。

对比 TensorFlow、PyTorch

当前,TensorFlow、PyTorch 已经成为机器学习社区最主流的框架。腾讯表示,相比于 TensorFlow, PyTorch、Spark 等业界同类平台,它有如下特点:

Angel 是一个基于 Parameter Server(PS)理念开发的高性能分布式机器学习平台,它具有灵活的可定制函数 PS Function(PSF),可以将部分计算下推至 PS 端。PS 架构良好的横向扩展能力让 Angel 能高效处理千亿级别的模型。

Angel 具有专门为处理高维稀疏特征特别优化的数学库,性能可达 breeze 数学库的 10 倍以上。Angel 的 PS 和内置的算法内核均构建在该数学库之上。

Angel 擅长推荐模型和图网络模型相关领域(如社交网络分析)。下图是 Angel 和几个业界主流平台在稀疏数据、模型维度、性能表现、深度模型和生态建设几个维度的对比。Tensorflow 和 PyTouch 在深度学习领域和生态建设方面优势明显,但在稀疏数据和高维模型方面的处理能力相对不足,而 Angel 正好与它们形成互补,3.0 版本推出的 PyTorch On Angel 尝试将 PyTorch 和 Angel 的优势结合在一起。

自 2016 年年初在腾讯内部上线以来,Angel 已应用于微信支付、QQ、腾讯视频、腾讯社交广告及用户画像挖掘等业务。2017 年 6 月,Angel 在 Github 上正式开源。2018 年 9 月,Angel 2.0 版本发布,支持千亿级模型维度训练,同时算法库也更加丰富,首次引入了深度学习算法和图算法。截至目前,Angel 在 GitHub 上 Star 数已超过 4200,Fork 数超过 1000,代码量也超过了 50 万行。



如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

文明长沙网 版权所有 Copyright © 2015-2020

本站提供内容仅供参考,使用前务请仔细阅读