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!

文章来源于腾讯云开发者社区,点击查看原文