北京時間8月27日,全球資料庫三大頂級會議之一——VLDB(Very Large Data Bases Conferences)在巴西里約熱內盧召開。騰訊AI開源專案Angel受邀參會,以workshop和展區的形式,向全球頂尖資料專家展示騰訊在大資料探勘和資料庫管理的研究成果。
同時,Angel正式宣佈加入LF深度學習基金會,並將釋出達萬億級維度特性計算的Angel 2.0。結合基金會成熟的運營,全面升級的Angel 2.0將與國際開源社群繼續深入互動,致力於讓機器學習技術更易於上手研究及應用落地的目標。
來自TEG資料平臺部的Angel首席開發工程師肖品提到:“Angel作為一個分散式機器學習平臺,能夠在萬億級的特徵維度條件下執行多種機器學習演算法,這是開源系統在面對高維度的模型訓練時效能表現不佳現狀的一個的重大的突破,很高興Angel能以其在推薦領域的成熟表現,獲得Linux深度學習基金會的青睞。”
Angel(https://github.com/Angel-ML/angel)是騰訊首個AI開源專案,由TEG資料平臺部自主研發,正式開源於2017年6月。它是一個基於引數伺服器(ParameterServer)理念的高效能分散式機器學習平臺,在騰訊內部廣泛應用於騰訊視訊推薦、微信內容推薦、廣點通點選率預估等業務場景。它採取將高維度大模型合理切分到多個引數伺服器節點的核心設計,結合高效的模型更新介面、運算函式及靈活的同步協議,輕鬆實現機器學習演算法的效率提升。Angel具有廣泛的適用性和穩定性,模型維度越高時,平臺便有越明顯的優勢。進入Angel2.0,憑藉引數伺服器的支援,Angel可以輕鬆擴充套件到千億級維度特性。同時,通過全面優化的演算法,Angel 2.0將pulling/pushing子模型引入高維模型,在支援以高維度模型為代表的高效能數學庫上,展現出優異的效能。
在相容方面,Angel基於 Java 和 Scala開發,通過Yarn進行排程執行,提供了豐富的優化方法和機器學習演算法實現。配套PS Service,Angel支援Spark 或其它圖計算、深度學習框架。而Angel 2.0在深度學習的支援上也做出重要優化,如對DeepFM,PNN,Wide&Deep,NFM等常見深度學習框架的全面相容,以及支援使用者通過Json定義的網路。
目前Angel在GitHub上擁有3500的Star數,超過900的Fork數及1000多Commits,在國內外開源社群一直處於活躍水平。來自小米、華為、新浪微博的工程師都曾參與Angel的開發,貢獻了高質量的程式碼,還有海外人士志願參與Angel英文文件建設,助力專案走向國際化。
加入LF深度學習基金會後,Angel將更加註重貢獻者的成長和社群的建設,在最新發布的Angel的技術憲章(Technical Charter)中,對專案的社群化管理作了明確的說明,未來該專案將由專案指導委員會 (TSC)規劃技術方向,並通過投票做出特性發布、工作流程、貢獻者晉升等重要決策。目前TSC成員由專案原始開發人員組成,參與重大優化或特性開發的貢獻者也有望成為專案的TSC成員。
對於此次Angel正式加入LF深度學習基金會,Linux深度學習基金TAC委員、騰訊開源辦公室代表朱曉龍表示:“Angel和Linux深度學習基金會的目標是一致的:讓機器學習及深度學習變得更易於實施和使用。加入Linux深度學習基金會運作後之後,Angel會更加註重社群互動,不斷積累使用者案例、擴充使用場景、積極探索與其它公司的合作,提供更為一致性、連續性的操作體驗,降低進入深度學習應用程式部署和發展的門檻。”
Angel是騰訊AI技術與國際AI研究的聯結器。通過Angel,騰訊將建設一個能讓使用者快速、輕鬆建立有大規模計算能力的機器學習平臺,賦予國際AI社群更大的活力,助力中國,乃至世界AI技術的迭代與發展。
Angel 2.0 特性介紹
1. 萬億級維度特性計算
a)基於引數伺服器,Angel可以輕鬆擴充套件到萬億級維度的模型
b)針對稀疏大模型的場景, Angel對底層數數學庫進行了做了優化
c)Angel上的演算法通過pulling/pushing子模型, 輕鬆訓練萬億級維度的模型
2.高效能數學庫
a)無泛型設計, 採用Java基礎資料型別來加速計算
b)使用快速雜湊方法,加速稀疏向量/矩陣運算
c)Long-Key索引和Compoent量向量/矩陣的引入, 使Angel支援超大模型
d)Execotor-Expression架構使其基礎運算高效且易於擴充套件
3.計算圖支援
a)基於層的輕量計算圖
b)自動計算梯度
c)易於新增層以擴充套件系統
d)開箱即用的特徵交叉層,有利於推薦系統演算法開發
e)Angel和Spark on Angel共享統一的計算圖
4.深度學習支援
a)推薦系統中常見的深度學習演算法,如Deep And Wide, DeepFM,PNN,PNN,NFM都已支援
b)使用者可以通過Json定義的網路