Angel是腾讯大数据部门发布的第三代计算平台,该工具支持数据并行及模型并行的计算模式,能支持十亿级别维度的模型训练。是腾讯大数据的第三代计算平台。专门用于Java 和 Scala 语言开发的面向机器学习的高性能分布式计算框架。腾讯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,减少网络传输,提升速度
软件特色
Angel还采用了SSP(Stale synchronous Parallel)、异步分布式SGD、多线程参数共享模式HogWild、网络带宽流量调度算法、计算和网络请求流水化、参数更新索引和训练数据预处理方案等新技术。
这些技术使Angel性能大幅提高,达到常见开源系统Spark的数倍到数十倍,能在千万到十亿级的特征维度条件下运行。
Angel自去年初在腾讯内部上线以来,已应用于腾讯视频、腾讯社交广告及用户画像挖掘等精准推荐业务。
并且腾讯大数据平台荣获2016年的Sort benchmark全球排序竞赛冠军,98.8秒完成了100T数据排序,刷新了四项世界纪录。2015年的这项排序时间还高达329秒。
Angel已经支持了SGD、ADMM优化算法,同时提供了一些常用的机器学习模型,现在开源的新增集成Logistic Regression,SVM,KMeans,LDA,MF,GBDT等机器学习算法。
使用说明
应用基本指标
终端设备数据
任一终端类型提供新增用户(10301)、活跃用户(10302)、启动次数(10303)指标多维分析,记录数Top100
用户行为数据
开发支持数据
任一终端类型提供错误次数(10503)、错误覆盖人数(10504)指标多维分析
常见问题
可以知道用户下载和卸载应用的情况吗?
由于只有用户触发sdk时才会生成统计数据上报,所以可以统计下载并激活的数量,但不能统计单纯的下载和卸载情况。
为什么有的渠道活跃用户不为0,而累积用户,安装用户却为0?
用户之前通过非"a" 渠道安装了应用,后面又通过"a" 渠道升级了应用,就会出现"a" 渠道累积用户为0,安装用户为0,但是活跃用户不为0的情况;
如果用户升级了应用程序的版本,会算成新用户吗?
不会的。只有首次安装且使用的用户在使用当天才会被统计成"新用户"。App升级的用户在当天会被统计为"升级用户"。两者同时也属于"活跃用户"。
为什么有时前几天的新增用户/启动用户等数据会有变化?
首先数据是以客户端时间为准,其次数据上报可能存在延迟(与发送策略和网络密切相关);腾讯移动分析基于终端数据计算,每天会计算最近7天的数据,7天前的数据最接近实际数据; 因此前几天的数据变化是正常现象
版本特性
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,减少网络传输,提升速度