Angel

騰訊第三代高性能計算平台

Angel是騰訊第三代的計算平台,使用Java和Scala語言開發,面向機器學習的高性能分散式計算框架,由騰訊與香港科技大學、北京大學聯合研發。它採用參數伺服器架構,解決了上一代框架的擴展性問題,支持數據并行及模型并行的計算模式,能支持十億級別維度的模型訓練。

開發背景


面對騰訊快速增長的數據挖掘需求,我們希望開發一個面向機器學習的、能應對超大規模數據集的、高性能的計算框架,並且它要對用戶足夠友好,具有很低的使用門檻,就這樣,Angel平台應運而生。
預計於2017年一季度開放其源代碼,鼓勵業界工程師、學者和技術人員大規模學習使用,激發機器學習領域的更多創新應用與良好生態發展。

技術特點


Angel還採用了多種業界最新技術和騰訊自主研發技術,如SSP(Stale synchronous Parallel)、非同步分散式SGD、多線程參數共享模式HogWild、網路帶寬流量調度演演算法、計算和網路請求流水化、參數更新索引和訓練數據預處理方案等。這些技術使Angel性能大幅提高,達到常見開源系統Spark的數倍到數十倍,能在千萬到十億級的特徵維度條件下運行。
在系統易用性上,Angel提供豐富的機器學習演演算法庫及高度抽象的編程介面、數據計算和模型劃分的自動方案及參數自適應配置,同時,用戶能像使用MR、Spark一樣在Angel上編程,我們還建設了拖拽式的一體化的開發運營門戶,屏蔽底層系統細節,降低用戶使用門檻。另外,Angel還支持深度學習,它支持Caffe、TensorFlow和Torch等業界主流的深度學習框架,為其提供計算加速。

應用


自2016年初在騰訊內部上線以來,Angel已應用於騰訊視頻、騰訊社交廣告及用戶畫像挖掘等精準推薦業務。