Angel 项目简介
Angel是一个基于参数服务器(Parameter Server)理念开发的高性能分布式机器学习框架,在其之上,用户能轻松开发适用于高维度模型的机器学习算法,并使用基于PS Service的Spark on Angel,轻松进行十亿级别维度模型的训练。未来Angel将进一步支持图计算和深度学习框架集成。
Angel由腾讯和北京大学联合开发,兼顾工业界的高可用性和学术界的创新性。欢迎对机器学习有兴趣的同仁一起贡献代码,提交Issues或者Pull Requests。
Release Notes (V1.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,减少网络传输,提升速度
官方开源地址:
https://github.com/Tencent/angel
喜欢它别忘了去github上给它一个star!