機(jī)器之心報(bào)道
機(jī)器之心編輯部
近年來,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,越來越多的科技巨頭開發(fā)自己的機(jī)器學(xué)習(xí)平臺(tái)。昨日,華為宣布將與明年第一季度開源自家的 AI 框架 MindSpore,引起極大關(guān)注。
除了華為,國內(nèi)的科技巨頭騰訊也于近日正式發(fā)布開源平臺(tái) Angel 3.0,試圖打造全棧機(jī)器學(xué)習(xí)平臺(tái),功能特性涵蓋機(jī)器學(xué)習(xí)的各個(gè)階段:特征工程,模型訓(xùn)練,超參數(shù)調(diào)節(jié)和模型服務(wù)。
Angel 平臺(tái)是騰訊數(shù)據(jù)平臺(tái)部于 2016 年底推出的面向機(jī)器學(xué)習(xí)的「第三代高性能計(jì)算平臺(tái)」,并于 2017 年開放了其源代碼。
項(xiàng)目鏈接:https://GitHub.com/Angel-ML
Angel 3.0 新特性
據(jù)騰訊介紹,Angel 是基于參數(shù)服務(wù)器架構(gòu)的分布式計(jì)算平臺(tái),致力于解決稀疏數(shù)據(jù)大模型訓(xùn)練以及大規(guī)模圖數(shù)據(jù)分析問題。
Angel 3.0 的整體系統(tǒng)架構(gòu)如下圖所示:
Angel 自研的高性能數(shù)學(xué)庫是整個(gè)系統(tǒng)的基礎(chǔ),Angel 的 PS 功能和內(nèi)置的算法內(nèi)核均是在這個(gè)數(shù)學(xué)庫基礎(chǔ)之上實(shí)現(xiàn)的。
Angel PS 提供了高效,穩(wěn)定和靈活的參數(shù)存儲(chǔ)和交換服務(wù)。在 3.0 版本中,騰訊對(duì) Angel PS 功能進(jìn)行了擴(kuò)展,使得它可以存儲(chǔ)任意類型的對(duì)象,例如在圖算法的實(shí)現(xiàn)過程中,用戶可以使用 Angel PS 來存儲(chǔ)了大量復(fù)雜的對(duì)象。
上圖中 MLcore 是 Angel 自研的一套算法內(nèi)核,它支持自動(dòng)求導(dǎo),可以使用 JSON 配置文件定義和運(yùn)行算法。
除此之外,在 3.0 版本中,Angel 還集成了 PyTorch 作為計(jì)算引擎。在計(jì)算引擎層之上是計(jì)算框架,它們可以看作計(jì)算引擎的容器,目前支持 3 種計(jì)算框架:原生的 Angel,Spark On Angel(SONA)和 PyTorch On Angel(PyTONA),這些計(jì)算框架可以使得 Spark 和 PyTorch 用戶可以無縫切換到 Angel 平臺(tái)。
其中,Spark On Angel 使用的是 Angel 內(nèi)置的算法核心,主要負(fù)責(zé)常見推薦領(lǐng)域的機(jī)器學(xué)習(xí)算法和基礎(chǔ)圖算法。PyToch On Angel 使用 PyTorch 作為計(jì)算核心,主要負(fù)責(zé)推薦領(lǐng)域深度學(xué)習(xí)算法和圖深度學(xué)習(xí)算法。
最上層是兩個(gè)公共組件:AutoML 和模型服務(wù)。
據(jù)騰訊介紹,Angel 3.0 的發(fā)布意在打造一個(gè)全棧的機(jī)器學(xué)習(xí)平臺(tái),它的功能特性涵蓋了機(jī)器學(xué)習(xí)的各個(gè)階段:特征工程,模型訓(xùn)練,超參數(shù)調(diào)節(jié)和模型服務(wù)。下圖總結(jié)了 Angel 3.0 的新特性,紅色的表示新增特性,白色的表示已有的但在持續(xù)改進(jìn)的特性。
Angel 的特征工程模塊基于 Spark 開發(fā),增強(qiáng)了 Spark 的特征選擇功能,同時(shí)使用特征交叉和重索引實(shí)現(xiàn)了自動(dòng)特征生成,這些組件可以無縫地整合進(jìn) Spark 的流水線。
為了讓整個(gè)系統(tǒng)更加的智能,Angel 3.0 新增了超參數(shù)調(diào)節(jié)的功能,目前支持 3 種算法:隨機(jī)搜索、網(wǎng)格搜索和貝葉斯優(yōu)化。
在模型服務(wù)方面,Angel 3.0 提供了一個(gè)跨平臺(tái)的組件 Angel Serving,Angel Serving 不僅可以滿足 Angel 自身的需求,還可以為其他平臺(tái)提供模型服務(wù)。
對(duì)比 TensorFlow、PyTorch
當(dāng)前,TensorFlow、PyTorch 已經(jīng)成為機(jī)器學(xué)習(xí)社區(qū)最主流的框架。騰訊表示,相比于 TensorFlow, PyTorch、Spark 等業(yè)界同類平臺(tái),它有如下特點(diǎn):
- Angel 是一個(gè)基于 Parameter Server(PS)理念開發(fā)的高性能分布式機(jī)器學(xué)習(xí)平臺(tái),它具有靈活的可定制函數(shù) PS Function(PSF),可以將部分計(jì)算下推至 PS 端。PS 架構(gòu)良好的橫向擴(kuò)展能力讓 Angel 能高效處理千億級(jí)別的模型。
- Angel 具有專門為處理高維稀疏特征特別優(yōu)化的數(shù)學(xué)庫,性能可達(dá) breeze 數(shù)學(xué)庫的 10 倍以上。Angel 的 PS 和內(nèi)置的算法內(nèi)核均構(gòu)建在該數(shù)學(xué)庫之上。
- Angel 擅長推薦模型和圖網(wǎng)絡(luò)模型相關(guān)領(lǐng)域(如社交網(wǎng)絡(luò)分析)。下圖是 Angel 和幾個(gè)業(yè)界主流平臺(tái)在稀疏數(shù)據(jù)、模型維度、性能表現(xiàn)、深度模型和生態(tài)建設(shè)幾個(gè)維度的對(duì)比。Tensorflow 和 PyTouch 在深度學(xué)習(xí)領(lǐng)域和生態(tài)建設(shè)方面優(yōu)勢(shì)明顯,但在稀疏數(shù)據(jù)和高維模型方面的處理能力相對(duì)不足,而 Angel 正好與它們形成互補(bǔ),3.0 版本推出的 PyTorch On Angel 嘗試將 PyTorch 和 Angel 的優(yōu)勢(shì)結(jié)合在一起。
自 2016 年年初在騰訊內(nèi)部上線以來,Angel 已應(yīng)用于微信支付、QQ、騰訊視頻、騰訊社交廣告及用戶畫像挖掘等業(yè)務(wù)。2017 年 6 月,Angel 在 Github 上正式開源。2018 年 9 月,Angel 2.0 版本發(fā)布,支持千億級(jí)模型維度訓(xùn)練,同時(shí)算法庫也更加豐富,首次引入了深度學(xué)習(xí)算法和圖算法。截至目前,Angel 在 GitHub 上 Star 數(shù)已超過 4200,F(xiàn)ork 數(shù)超過 1000,代碼量也超過了 50 萬行。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。