騰訊angel平臺是一款騰訊大數據部門發(fā)布的第三代計算平臺,它采用 Java 和 Scala 語言開發(fā),面向機器學習的高性能分布式計算框架。
騰訊Angel平臺采用了參數服務器架構,解決了上一代框架的擴展性問題,支持數據并行及模型并行的計算模式,能支持十億級別維度的模型訓練。
【功能特色】
1、ParameterServer 功能
基于 Matrix/Vector 的模型自動切分和管理,兼顧稀疏和稠密兩種格式
支持對 Model 進行 Push 和 Pull 操作,可以自定義復雜的 psFunc
提供多種同步控制機制(BSP/SSP/ASP)
2、開發(fā)運行
語言支持:系統基于 Scala 和 Java 開發(fā),用戶也可以自由選擇
部署方便:可以直接在 Yarn 社區(qū)版本中運行,也支持本地調試模式
數據切分: 自動切分讀取訓練數據,默認兼容了 Hadoop FS 接口
增量訓練:訓練過程中會自動 Checkpoint,而且支持加載模型后,增量訓練
3、PS Service
只啟動 PSServer 和 PSAngent,為其他分布式計算平臺提供 PS 服務
基于 PS-Service,不需要修改 Spark 核心代碼,直接開發(fā) Spark-on-Angel 算法,該模式無縫支持 Breeze 數值運算庫
4、算法庫
集成 Logistic Regression,SVM,KMeans,LDA,MF,GBDT 等機器學習算法
多種優(yōu)化方法,包括 ADMM,OWLQN,LBFGS 和 GD
支持多種損失函數、評估指標,包含 L1、L2 正則項
5、算法優(yōu)化
LDA 采用了 F+LDA 算法用于加速采樣的速度,同時利用流式參數獲取的方法減少網絡參數獲取的延遲
GBDT 使用兩階段樹分裂算法,將部分計算轉移到 PS,減少網絡傳輸,提升速度