Angel是腾讯第三代的计算平台,使用Java和Scala语言开发,面向机器学习的高性能分布式计算框架,它采用参数服务器架构,解决了上一代框架的扩展性问题,支持数据并行及模型并行的计算模式,能支持十亿级别维度的模型训练。
基本简介:
Angel 是一个基于参数服务器(Parameter Server)理念开发的高性能分布式机器学习平台,它基于腾讯内部的海量数据进行了反复的调优,并具有广泛的适用性和稳定性,模型维度越高,优势越明显。Angel 由腾讯和北京大学联合开发,兼顾了工业界的高可用性和学术界的创新性。
Angel 的核心设计理念围绕模型。它将高维度的大模型合理切分到多个参数服务器节点,并通过高效的模型更新接口和运算函数,以及灵活的同步协议,轻松实现各种高效的机器学习算法。
Angel 基于 Java 和 Scala 开发,能在社区的 Yarn 上直接调度运行,并基于 PS Service,支持 Spark on Angel,未来将会支持图计算和深度学习框架集成。
技术特点:
Angel还采用了多种业界最新技术和腾讯自主研发技术,如SSP(Stale synchronous Parallel)、异步分布式SGD、多线程参数共享模式HogWild、网络带宽流量调度算法、计算和网络请求流水化、参数更新索引和训练数据预处理方案等。这些技术使Angel性能大幅提高,达到常见开源系统Spark的数倍到数十倍,能在千万到十亿级的特征维度条件下运行。
在系统易用性上,Angel提供丰富的机器学习算法库及高度抽象的编程接口、数据计算和模型划分的自动方案及参数自适应配置,同时,用户能像使用MR、Spark一样在Angel上编程,我们还建设了拖拽式的一体化的开发运营门户,屏蔽底层系统细节,降低用户使用门槛。另外,Angel还支持深度学习,它支持Caffe、TensorFlow和Torch等业界主流的深度学习框架,为其提供计算加速。
版本特性:
Angel 1.0.0 新特性:
1.ParameterServer 功能
基于 Matrix/Vector 的模型自动切分和管理,兼顾稀疏和稠密两种格式
支持对 Model 进行 Push 和 Pull 操作,可以自定义复杂的 psFunc
提供多种同步控制机制(BSP/SSP/ASP)
2. 开发运行
语言支持:系统基于 Scala 和 Java 开发,用户也可以自由选择
部署方便:可以直接在 Yarn 社区版本中运行,也支持本地调试模式
数据切分: 自动切分读取训练数据,默认兼容了 Hadoop FS 接口
增量训练:训练过程中会自动 Checkpoint,而且支持加载模型后,增量训练
3.PS Service
只启动 PSServer 和 PSAngent,为其他分布式计算平台提供 PS 服务
基于 PS-Service,不需要修改 Spark 核心代码,直接开发 Spark-on-Angel 算法,该模式无缝支持 Breeze 数值运算库
4. 算法库
集成 Logistic Regression,SVM,KMeans,LDA,MF,GBDT 等机器学习算法
多种优化方法,包括 ADMM,OWLQN,LBFGS 和 GD
支持多种损失函数、评估指标,包含 L1、L2 正则项
5. 算法优化
LDA 采用了 F+LDA 算法用于加速采样的速度,同时利用流式参数获取的方法减少网络参数获取的延迟
GBDT 使用两阶段树分裂算法,将部分计算转移到 PS,减少网络传输,提升速度
- PC官方版
- 安卓官方手机版
- IOS官方手机版