在去年 12 月 18 日的腾讯大数据技术峰会暨 KDD China 技术峰会上,腾讯大数据宣布推出了面向机器学习的「第三代高性能计算平台」——Angel,并表示将于 2017 年开放其源代码。现在,2017 年已经大约过去了一半, Angel 1.0 正式版发布了。
![](https://raw.githubusercontent.com/Tencent/angel/master/assets/angel_logo.png)
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,减少网络传输,提升速度
开源地址:https://github.com/Tencent/angel
有疑问加站长微信联系(非本文作者)