Angel是騰訊第三代的計(jì)算平臺(tái),使用Java和Scala語言開發(fā),面向機(jī)器學(xué)習(xí)的高性能分布式計(jì)算框架,它采用參數(shù)服務(wù)器架構(gòu),解決了上一代框架的擴(kuò)展性問題,支持?jǐn)?shù)據(jù)并行及模型并行的計(jì)算模式,能支持十億級(jí)別維度的模型訓(xùn)練。
基本簡介:
Angel 是一個(gè)基于參數(shù)服務(wù)器(Parameter Server)理念開發(fā)的高性能分布式機(jī)器學(xué)習(xí)平臺(tái),它基于騰訊內(nèi)部的海量數(shù)據(jù)進(jìn)行了反復(fù)的調(diào)優(yōu),并具有廣泛的適用性和穩(wěn)定性,模型維度越高,優(yōu)勢越明顯。Angel 由騰訊和北京大學(xué)聯(lián)合開發(fā),兼顧了工業(yè)界的高可用性和學(xué)術(shù)界的創(chuàng)新性。
Angel 的核心設(shè)計(jì)理念圍繞模型。它將高維度的大模型合理切分到多個(gè)參數(shù)服務(wù)器節(jié)點(diǎn),并通過高效的模型更新接口和運(yùn)算函數(shù),以及靈活的同步協(xié)議,輕松實(shí)現(xiàn)各種高效的機(jī)器學(xué)習(xí)算法。
Angel 基于 Java 和 Scala 開發(fā),能在社區(qū)的 Yarn 上直接調(diào)度運(yùn)行,并基于 PS Service,支持 Spark on Angel,未來將會(huì)支持圖計(jì)算和深度學(xué)習(xí)框架集成。
技術(shù)特點(diǎn):
Angel還采用了多種業(yè)界最新技術(shù)和騰訊自主研發(fā)技術(shù),如SSP(Stale synchronous Parallel)、異步分布式SGD、多線程參數(shù)共享模式HogWild、網(wǎng)絡(luò)帶寬流量調(diào)度算法、計(jì)算和網(wǎng)絡(luò)請(qǐng)求流水化、參數(shù)更新索引和訓(xùn)練數(shù)據(jù)預(yù)處理方案等。這些技術(shù)使Angel性能大幅提高,達(dá)到常見開源系統(tǒng)Spark的數(shù)倍到數(shù)十倍,能在千萬到十億級(jí)的特征維度條件下運(yùn)行。
在系統(tǒng)易用性上,Angel提供豐富的機(jī)器學(xué)習(xí)算法庫及高度抽象的編程接口、數(shù)據(jù)計(jì)算和模型劃分的自動(dòng)方案及參數(shù)自適應(yīng)配置,同時(shí),用戶能像使用MR、Spark一樣在Angel上編程,我們還建設(shè)了拖拽式的一體化的開發(fā)運(yùn)營門戶,屏蔽底層系統(tǒng)細(xì)節(jié),降低用戶使用門檻。另外,Angel還支持深度學(xué)習(xí),它支持Caffe、TensorFlow和Torch等業(yè)界主流的深度學(xué)習(xí)框架,為其提供計(jì)算加速。
版本特性:
Angel 1.0.0 新特性:
1.ParameterServer 功能
基于 Matrix/Vector 的模型自動(dòng)切分和管理,兼顧稀疏和稠密兩種格式
支持對(duì) Model 進(jìn)行 Push 和 Pull 操作,可以自定義復(fù)雜的 psFunc
提供多種同步控制機(jī)制(BSP/SSP/ASP)
2. 開發(fā)運(yùn)行
語言支持:系統(tǒng)基于 Scala 和 Java 開發(fā),用戶也可以自由選擇
部署方便:可以直接在 Yarn 社區(qū)版本中運(yùn)行,也支持本地調(diào)試模式
數(shù)據(jù)切分: 自動(dòng)切分讀取訓(xùn)練數(shù)據(jù),默認(rèn)兼容了 Hadoop FS 接口
增量訓(xùn)練:訓(xùn)練過程中會(huì)自動(dòng) Checkpoint,而且支持加載模型后,增量訓(xùn)練
3.PS Service
只啟動(dòng) PSServer 和 PSAngent,為其他分布式計(jì)算平臺(tái)提供 PS 服務(wù)
基于 PS-Service,不需要修改 Spark 核心代碼,直接開發(fā) Spark-on-Angel 算法,該模式無縫支持 Breeze 數(shù)值運(yùn)算庫
4. 算法庫
集成 Logistic Regression,SVM,KMeans,LDA,MF,GBDT 等機(jī)器學(xué)習(xí)算法
多種優(yōu)化方法,包括 ADMM,OWLQN,LBFGS 和 GD
支持多種損失函數(shù)、評(píng)估指標(biāo),包含 L1、L2 正則項(xiàng)
5. 算法優(yōu)化
LDA 采用了 F+LDA 算法用于加速采樣的速度,同時(shí)利用流式參數(shù)獲取的方法減少網(wǎng)絡(luò)參數(shù)獲取的延遲
GBDT 使用兩階段樹分裂算法,將部分計(jì)算轉(zhuǎn)移到 PS,減少網(wǎng)絡(luò)傳輸,提升速度
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版