北京时间8月27日,全球数据库三大顶级会议之一——VLDB(Very Large Data Bases Conferences)在巴西里约热内卢召开。腾讯AI开源项目Angel受邀参会,以workshop和展区的形式,向全球顶尖数据专家展示腾讯在大数据挖掘和数据库管理的研究成果。
同时,Angel正式宣布加入LF深度学习基金会,并将发布达万亿级维度特性计算的Angel 2.0。结合基金会成熟的运营,全面升级的Angel 2.0将与国际开源社区继续深入互动,致力于让机器学习技术更易于上手研究及应用落地的目标。
来自TEG数据平台部的Angel首席开发工程师肖品提到:“Angel作为一个分布式机器学习平台,能够在万亿级的特征维度条件下运行多种机器学习算法,这是开源系统在面对高维度的模型训练时性能表现不佳现状的一个的重大的突破,很高兴Angel能以其在推荐领域的成熟表现,获得Linux深度学习基金会的青睐。”
Angel项目网址:https://github.com/Angel-ML/angel
是腾讯首个AI开源项目,由TEG数据平台部自主研发,正式开源于2017年6月。
它是一个基于参数服务器(ParameterServer)理念的高性能分布式机器学习平台,在腾讯内部广泛应用于腾讯视频推荐、微信内容推荐、广点通点击率预估等业务场景。
它采取将高维度大模型合理切分到多个参数服务器节点的核心设计,结合高效的模型更新接口、运算函数及灵活的同步协议,轻松实现机器学习算法的效率提升。Angel具有广泛的适用性和稳定性,模型维度越高时,平台便有越明显的优势。进入Angel2.0,凭借参数服务器的支持,Angel可以轻松扩展到千亿级维度特性。同时,通过全面优化的算法,Angel 2.0将pull/push子模型引入高维模型,在支持以高维度模型为代表的高性能数学库上,展现出优异的性能。
在兼容方面,Angel基于 Java 和 Scala开发,通过Yarn进行调度运行,提供了丰富的优化方法和机器学习算法实现。配套PS Service,Angel支持Spark 或其它图计算、深度学习框架。
而Angel 2.0在深度学习的支持上也做出重要优化,如对DeepFM,PNN,Wide&Deep,NFM等常见深度学习框架的全面兼容,以及支持用户通过Json定义的网络。
目前Angel在GitHub上拥有3500的Star数,超过900的Fork数及1000多Commits,在国内外开源社区一直处于活跃水平。来自小米、华为、新浪微博的工程师都曾参与Angel的开发,贡献了高质量的代码,还有海外人士志愿参与Angel英文文档建设,助力项目走向国际化。
加入LF深度学习基金会后,Angel将更加注重贡献者的成长和社区的建设,在最新发布的Angel的技术宪章(Technical Charter)中,对项目的社区化管理作了明确的说明,未来该项目将由项目指导委员会 (TSC)规划技术方向,并通过投票做出特性发布、工作流程、贡献者晋升等重要决策。目前TSC成员由项目原始开发人员组成,参与重大优化或特性开发的贡献者也有望成为项目的TSC成员。
对于此次Angel正式加入LF深度学习基金会,Linux深度学习基金TAC委员、腾讯开源办公室代表朱晓龙表示:“Angel和Linux深度学习基金会的目标是一致的:让机器学习及深度学习变得更易于实施和使用。加入Linux深度学习基金会运作后之后,Angel会更加注重社区互动,不断积累用户案例、扩充使用场景、积极探索与其它公司的合作,提供更为一致性、连续性的操作体验,降低进入深度学习应用程序部署和发展的门槛。”
Angel是腾讯AI技术与国际AI研究的连接器。通过Angel,腾讯将建设一个能让用户快速、轻松建立有大规模计算能力的机器学习平台,赋予国际AI社区更大的活力,助力中国,乃至世界AI技术的迭代与发展。
Angel 2.0 特性介绍:
1. 万亿级维度特性计算
a)基于参数服务器,Angel可以轻松扩展到万亿级维度的模型
b)针对稀疏大模型的场景, Angel对底层数数学库进行了做了优化
c)Angel上的算法通过pull/push子模型, 轻松训练万亿级维度的模型
2.高性能数学库
a)无泛型设计, 采用Java基础数据类型来加速计算
b)使用快速哈希方法,加速稀疏向量/矩阵运算
c)Long-Key索引和Compoent量向量/矩阵的引入, 使Angel支持超大模型
d)Execotor-Expression架构使其基础运算高效且易于扩展
3.计算图支持
a)基于层的轻量计算图
b)自动计算梯度
c)易于添加层以扩展系统
d)开箱即用的特征交叉层,有利于推荐系统算法开发
e)Angel和Spark on Angel共享统一的计算图
4.深度学习支持
a)推荐系统中常见的深度学习算法,如Deep And Wide, DeepFM,PNN,PNN,NFM都已支持
b)用户可以通过Json定义的网络
腾讯开源管理办公室职责说明:
腾讯开源办公室负责制订腾讯开源相关政策,培训开发人员,确保合法合规,促进和建立开源治理规范,提供有关公司内外所有开源资源的宣传和沟通,保障腾讯开源活动符合公司利益,以及国家、行业相关法律法规的要求,具体包括:
1. 制订和完善腾讯开源治理的策略和规范;
2. 清楚地传达公司内外的开源策略,在组织内培养开源文化;
3. 维护开源许可、开源专利、知识产权等合规审查和监督;
4. 促进商业产品和服务中开源的有效使用;
5. 确保代码向开源社区的高质量和一定频率发布;
6. 与国内外开源社区合作,促进公司有效地回馈其他项目;
7. 开展“腾讯开源”品牌建设和媒体传播。