Angel是騰訊第三代的計算平臺,使用Java和Scala語言開發,面向機器學習的高性能分布式計算框架,它采用參數服務器架構,解決了上一代框架的擴展性問題,支持數據并行及模型并行的計算模式,能支持十億級別維度的模型訓練。
基本簡介:
Angel 是一個基于參數服務器(Parameter Server)理念開發的高性能分布式機器學習平臺,它基于騰訊內部的海量數據進行了反復的調優,并具有廣泛的適用性和穩定性,模型維度越高,優勢越明顯。Angel 由騰訊和北京大學聯合開發,兼顧了工業界的高可用性和學術界的創新性。
Angel 的核心設計理念圍繞模型。它將高維度的大模型合理切分到多個參數服務器節點,并通過高效的模型更新接口和運算函數,以及靈活的同步協議,輕松實現各種高效的機器學習算法。
Angel 基于 Java 和 Scala 開發,能在社區的 Yarn 上直接調度運行,并基于 PS Service,支持 Spark on Angel,未來將會支持圖計算和深度學習框架集成。
技術特點:
Angel還采用了多種業界最新技術和騰訊自主研發技術,如SSP(Stale synchronous Parallel)、異步分布式SGD、多線程參數共享模式HogWild、網絡帶寬流量調度算法、計算和網絡請求流水化、參數更新索引和訓練數據預處理方案等。這些技術使Angel性能大幅提高,達到常見開源系統Spark的數倍到數十倍,能在千萬到十億級的特征維度條件下運行。
在系統易用性上,Angel提供豐富的機器學習算法庫及高度抽象的編程接口、數據計算和模型劃分的自動方案及參數自適應配置,同時,用戶能像使用MR、Spark一樣在Angel上編程,我們還建設了拖拽式的一體化的開發運營門戶,屏蔽底層系統細節,降低用戶使用門檻。另外,Angel還支持深度學習,它支持Caffe、TensorFlow和Torch等業界主流的深度學習框架,為其提供計算加速。
版本特性:
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,減少網絡傳輸,提升速度
- PC官方版
- 安卓官方手機版
- IOS官方手機版