腾讯Angel平台是腾讯大数据的第三代计算平台。腾讯Angel平台使用Java和Scala语言开发,面向机器学习的高性能分布式计算框架,采用参数服务器架构,解决了上一代框架的扩展性问题,支持数据并行及模型并行的计算模式,能支持十亿级别维度的模型训练。
腾讯Angel平台简介:
Angel还采用了多种业界最新技术和腾讯大数据自主研发技术,如SSP(Stale synchronous Parallel)、异步分布式SGD、多线程参数共享模式HogWild、网络带宽流量调度算法、计算和网络请求流水化、参数更新索引和训练数据预处理方案等。这些技术使Angel性能大幅提高,达到常见开源系统Spark的数倍到数十倍,能在千万到十亿级的特征维度条件下运行。
腾讯Angel平台特色介绍:
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,减少网络传输,提升速度