成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
    此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
    人工智能學(xué)術(shù) 正文
    發(fā)私信給楊鯉萍
    發(fā)送

    0

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    本文作者: 楊鯉萍 2019-08-28 18:26
    導(dǎo)語(yǔ):共獲得星標(biāo)數(shù)超過(guò) 4200 的開(kāi)源平臺(tái)

    雷鋒網(wǎng) AI 開(kāi)發(fā)者按:近日,緊跟華為宣布新的 AI 框架即將開(kāi)源的消息,騰訊又帶來(lái)了全新的全棧機(jī)器學(xué)習(xí)平臺(tái) angel3.0。新版本功能特性覆蓋了機(jī)器學(xué)習(xí)的各個(gè)階段,包括:特征工程、模型訓(xùn)練、超參數(shù)調(diào)節(jié)和模型服務(wù)。自 2017 年 angel1.0 在 Github 上開(kāi)源以來(lái),angel 共獲得星標(biāo)數(shù)超過(guò) 4200、fork 數(shù)超 1000。騰訊發(fā)布了相關(guān)文章介紹了 angel3.0 更新細(xì)節(jié)等內(nèi)容,雷鋒網(wǎng) AI 開(kāi)發(fā)者將其整理編輯如下。

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    Angel 概述

    Angel 是基于參數(shù)服務(wù)器架構(gòu)的分布式計(jì)算平臺(tái),專注于稀疏數(shù)據(jù)高維模型訓(xùn)練以及大規(guī)模圖數(shù)據(jù)分析問(wèn)題,它由騰訊與北京大學(xué)聯(lián)合研發(fā),融合了業(yè)界的實(shí)用性和學(xué)術(shù)界的創(chuàng)新性。相比于 TensorFlow, PyTorch 和 Spark 等業(yè)界同類平臺(tái),Angel 有如下特點(diǎn):

    • Angel 是一個(gè)基于 Parameter Server(PS)理念開(kāi)發(fā)的高性能分布式機(jī)器學(xué)習(xí)平臺(tái),PS 架構(gòu)良好的橫向擴(kuò)展能力讓 Angel 能高效處理千億級(jí)別的模型。

    • Angel 具有專門為處理高維稀疏特征特別優(yōu)化的數(shù)學(xué)庫(kù),性能可達(dá) breeze 數(shù)學(xué)庫(kù)的 10 倍以上。

    • 相比之下,Angel 更擅長(zhǎng)于推薦模型和圖網(wǎng)絡(luò)模型相關(guān)領(lǐng)域(如圖 1 所示),與 Tensorflow 和 PyTouch 的性能形成互補(bǔ)。

     與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 1 Angel 與主流平臺(tái)的性能分布圖

    Angel 3.0 系統(tǒng)架構(gòu)

    Angel 自研的高性能數(shù)學(xué)庫(kù)是整個(gè)系統(tǒng)的基礎(chǔ),Angel 的 PS 功能和內(nèi)置的算法內(nèi)核均基于該數(shù)學(xué)庫(kù)實(shí)現(xiàn)。

    Angel PS 則提供參數(shù)存儲(chǔ)和交換服務(wù)。在 3.0 版本中,我們對(duì) Angel PS 功能進(jìn)行了擴(kuò)展,使得它可以存儲(chǔ)任意類型的對(duì)象,例如:在圖算法的實(shí)現(xiàn)過(guò)程中,我們使用 Angel PS 來(lái)存儲(chǔ)大量復(fù)雜的對(duì)象。ML core 則是 Angel 自研的一套算法內(nèi)核,它支持自動(dòng)求導(dǎo),可以使用 JSON 配置文件定義和運(yùn)行算法。

    除此之外,Angel 3.0 中還集成了 PyTorch 來(lái)作為計(jì)算引擎。目前它支持 3 種計(jì)算框架:原生的 Angel,Spark On Angel(SONA)和 PyTorch On Angel(PyTONA),這些計(jì)算框架可以使得 Spark 和 PyTorch 用戶能夠靈活切換到 Angel 平臺(tái)。最上層包括了兩個(gè)公共組件:AutoML 和模型服務(wù)。

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 2 Angel 3.0 架構(gòu)

    Angel 3.0 新特性

    • 自動(dòng)特征工程:新增特征選擇和組合方法,將特征合成、選擇和重新索引以 pipeline 的形式呈現(xiàn),用來(lái)迭代生成高階合成特征;

    • 新的計(jì)算引擎:SONA(加強(qiáng))——特征工程支持索引為 Long 類型的向量;所有的算法被封裝成 Spark 風(fēng)格的 APIs;SONA 上的算法可以作為 Spark 的補(bǔ)充;PyTONA(新)—— PyTONA 作為圖學(xué)習(xí)算法的引擎被引入,目前支持 GCN 和 GraphSage,同時(shí)也支持推薦領(lǐng)域的算法;

    • 自動(dòng)機(jī)器學(xué)習(xí):Angel3.0 引入了 3 種超參數(shù)調(diào)節(jié)算法,包括:網(wǎng)格搜索、隨機(jī)搜索和貝葉斯優(yōu)化;

    • Angel 模型服務(wù):Angel 提供一個(gè)跨平臺(tái)的模型服務(wù)框架,支持 Angel、PyTorch 和 Spark 的模型,性能上與 TensorFlow Serving 相當(dāng);

    • Kubernetes:Angel3.0 支持 Kubernetes,可以在云上運(yùn)行;

     與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 3 Angel 3.0 特性概覽(紅色的表示新增特性,白色的表示已有的但在持續(xù)改進(jìn)的特性)

    具體特性實(shí)現(xiàn)

    自動(dòng)特征工程

    特征工程,例如:特征交叉和選擇,對(duì)于工業(yè)界的機(jī)器學(xué)習(xí)應(yīng)用具有重要意義。雖然 Spark 提供了一些特征選擇算子,但仍有一些局限性,Angel 則基于 Spark 提供了更多的特征選擇算子:

    • 基于統(tǒng)計(jì)的運(yùn)算符,包括 VarianceSelector 和 FtestSelector

    • 基于模型的運(yùn)算符,包括 LassoSelector 和 RandomForestSelector

    大多數(shù)在線推薦系統(tǒng)經(jīng)常選擇線性算法,例如邏輯回歸作為機(jī)器學(xué)習(xí)模型,但邏輯回歸需要復(fù)雜的特征工程才能實(shí)現(xiàn)較高的精度,這使得自動(dòng)特征合成至關(guān)重要。但是,現(xiàn)有的自動(dòng)化的高階特征合成方法帶來(lái)了維度災(zāi)難。

    為了解決這個(gè)問(wèn)題,Angel 實(shí)現(xiàn)了一種迭代生成高階合成特征的方法,每次迭代由兩個(gè)階段組成,即擴(kuò)增階段——任意特征的笛卡爾積;縮約階段——特征選擇和特征重索引;具體迭代步驟為:

    • 首先任意的輸入特征之間通過(guò)笛卡爾積生成合成特征(該步驟后,特征數(shù)量將以二次方式增加);

    • 接下來(lái),從合成特征中選擇最重要的特征子集(使用例如 VarianceSelector 和 RandomForestSelector);

    • 然后,重新索引所選擇的特征以減少特征空間;

    • 最后,合成特征與原始特征拼接在一起。

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 4 自動(dòng)特征工程流程

    如圖 4 所示,這種特征合成方法線性地增加特征數(shù)量,避免了維度災(zāi)難。在 Higgs 數(shù)據(jù)集上的實(shí)驗(yàn)表明合成的特征能有效地提高模型精度(如表 1 所示)。

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    表 1 特征合成結(jié)果

    Spark On Angel (SONA)

    在 Angel 3.0 中,我們對(duì) Spark On Angel 做了大幅度的優(yōu)化,添加了新的特性:

    • Spark On Angel 中集成了特征工程。在集成的過(guò)程中并不是簡(jiǎn)單地借用 Spark 的特征工程,我們?yōu)樗械倪\(yùn)算支持了長(zhǎng)整型索引的向量使其能夠訓(xùn)練高維稀疏模型;

    • 與自動(dòng)調(diào)參無(wú)縫連接;

    • Spark 用戶能夠通過(guò) Spark-fashion API 將 Spark 轉(zhuǎn)換成 Angel;

    • 支持兩種新的數(shù)據(jù)格式,即 LibFFM 和 Dummy。

     與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 5 Spark On Angel 架構(gòu)

    除了這些大的特征,我們也在持續(xù)完善 Spark On Angel 的算法庫(kù),添加了一些新的算法,例如:Deep & Cross Network(DCN)和 Attention Factorization Machines(AFM)等;同時(shí),對(duì)已有的算法做了大量的優(yōu)化。圖 6 提供了一個(gè)基于 Spark On Angel 的分布式算法示例,主要包含以下步驟: 與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 6 Spark On Angel 算法示例

    • 在程序開(kāi)始時(shí)啟動(dòng)參數(shù)服務(wù)器,程序結(jié)束時(shí)關(guān)閉參數(shù)服務(wù)器;

    • 將訓(xùn)練集和測(cè)試集以 Spark DataFrame 形式加載;

    • 定義一個(gè) Angel 模型并以 Spark 的參數(shù)設(shè)置方式為其設(shè)置參數(shù)。在這個(gè)示例中,算法是一個(gè)通過(guò) JSON 定義的計(jì)算圖;

    • 使用「fit」方法來(lái)訓(xùn)練模型;

    • 使用「evaluate」方法來(lái)評(píng)估已訓(xùn)練的模型。

    在訓(xùn)練完成后,Spark On Angel 將會(huì)展示多種模型指標(biāo),如:準(zhǔn)確率, ROC 曲線, AUC 等。用戶可以保存訓(xùn)練好的模型以便下次使用。

    PyTorch On Angel(PyTONA)

    PyTorch On Angel 是 Angel 3.0 新增的特性,它主要是為了解決大規(guī)模圖表示學(xué)習(xí)和深度學(xué)習(xí)模型訓(xùn)練問(wèn)題。在過(guò)去幾年時(shí)間,圖卷積神經(jīng)網(wǎng)絡(luò)(GNN)快速發(fā)展,一系列的研究論文以及相關(guān)的算法問(wèn)世:例如 GCN,GraphSAGE 和 GAT 等,研究和測(cè)試結(jié)果表明,它們能夠比傳統(tǒng)圖表示學(xué)習(xí)更好的抽取圖特征。

    但大規(guī)模圖的表示學(xué)習(xí)面臨著兩個(gè)主要的挑戰(zhàn):第一個(gè)挑戰(zhàn)來(lái)自于超大規(guī)模圖結(jié)構(gòu)的存儲(chǔ)以及訪問(wèn),這要求系統(tǒng)不僅能存得下,還需要提供高效的訪問(wèn)接口;第二個(gè)挑戰(zhàn)來(lái)自于 GNN 計(jì)算過(guò)程,它需要有高效的自動(dòng)求導(dǎo)模塊。

    通過(guò)對(duì) Angel 自身狀況以及對(duì)業(yè)界已有系統(tǒng)的分析,我們發(fā)現(xiàn):

    • TensorFlow 和 PyTorch 擁有高效的自動(dòng)求導(dǎo)模塊,但是它們不擅長(zhǎng)處理高維度模型和稀疏數(shù)據(jù);

    • Angel 擅長(zhǎng)處理高維度模型和稀疏數(shù)據(jù),雖然 Angel 自研的計(jì)算圖框架(MLcore)也可以自動(dòng)求導(dǎo),但是在效率和功能完整性上卻不及 TensorFlow 和 PyTorch,無(wú)法滿足 GNN 的要求。

    為了將兩者的優(yōu)勢(shì)結(jié)合起來(lái),我們基于 Angel PS 開(kāi)發(fā)了 PyTorch On Angel 平臺(tái),希望通過(guò) Angel PS 來(lái)存儲(chǔ)大模型,同時(shí)使用 Spark 來(lái)作為 PyTorch 的分布式調(diào)度平臺(tái)。最終得到 PyTorch On Angel 的架構(gòu)如圖 7 所示:

     與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 7 PyTorch On Angel 系統(tǒng)架構(gòu)

    PyTorch On Angel 具有 3 個(gè)主要的組件:

    • Angel PS:存儲(chǔ)模型參數(shù),圖結(jié)構(gòu)信息和節(jié)點(diǎn)特征等,并且提供模型參數(shù)和圖相關(guān)數(shù)據(jù)結(jié)構(gòu)的訪問(wèn)接口,例如需要提供兩跳鄰接訪問(wèn)接口;

    • Spark Driver:中央控制節(jié)點(diǎn),負(fù)責(zé)計(jì)算任務(wù)的調(diào)度和一些全局的控制功能,例如發(fā)起創(chuàng)建矩陣、初始化模型、保存模型、寫(xiě) checkpoint 以及恢復(fù)模型命令;

    • Spark Worker:讀取計(jì)算數(shù)據(jù),同時(shí)從 PS 上拉取模型參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)等信息,然后將這些訓(xùn)練數(shù)據(jù)參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)傳給 PyTorch,PyTorch 負(fù)責(zé)具體的計(jì)算并且返回梯度,最后 Spark Worker 將梯度推送到 PS 更新模型。

    這些組件都已封裝完備,因此在 PyTorch On Angel 平臺(tái)上開(kāi)發(fā)新算法,只需關(guān)注算法邏輯即可。圖 8 展示了一個(gè)開(kāi)發(fā)案例,算法開(kāi)發(fā)完成后,將代碼保存為 pt 文件,然后將 pt 文件提交給 PyTorch On Angel 平臺(tái)就可以實(shí)現(xiàn)分布式訓(xùn)練了。

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 8 在 PyTorch On Angel 上實(shí)現(xiàn) GCN 的例子

    目前,我們已經(jīng)在 PyTorch On Angel 上實(shí)現(xiàn)了許多算法:包括推薦領(lǐng)域常見(jiàn)的算法(FM,DeepFM,Wide & Deep,xDeepFM,AttentionFM,DCN 和 PNN 等)和 GNN 算法(GCN 和 GraphSAGE)。在未來(lái),我們將進(jìn)一步豐富 PyTorch On Angel 的算法庫(kù)。

    結(jié)合了 PyTorch 和 Angel 的優(yōu)點(diǎn),PyTorch On Angel 在算法性能方面有很大的優(yōu)勢(shì):對(duì)于推薦領(lǐng)域常見(jiàn)的深度學(xué)習(xí)算法,性能可以大大超過(guò)了 TensorFlow 。下圖是在公開(kāi)的數(shù)據(jù)集 criteo kaggle2014(4500 萬(wàn)訓(xùn)練樣本,100w 特征)上做的對(duì)比測(cè)試: 與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 9 PyTorch On Angel 和 TensorFlow 性能對(duì)比測(cè)試

    除了性能方面的優(yōu)勢(shì),PyTorch On Angel 易用性也較好。PyTorch 運(yùn)行在 Spark 的 Executor 中,可以實(shí)現(xiàn) Spark 圖數(shù)據(jù)預(yù)處理和 PyTorch 模型訓(xùn)練的無(wú)縫對(duì)接,在一個(gè)程序中完成整個(gè)計(jì)算過(guò)程。

    自動(dòng)超參數(shù)調(diào)節(jié)

    傳統(tǒng)超參數(shù)調(diào)節(jié)的方式有兩種(如圖 10 所示):

    • 網(wǎng)格搜索:網(wǎng)格搜索將整個(gè)搜索空間切分為網(wǎng)格,假設(shè)超參數(shù)是同等重要的。這種方式雖然直觀,但有兩個(gè)明顯的缺點(diǎn)。第一個(gè)是計(jì)算代價(jià)隨參數(shù)數(shù)量的增長(zhǎng)而呈指數(shù)增長(zhǎng),其次是超參數(shù)的重要程度常常不同,網(wǎng)格搜索可能會(huì)花費(fèi)太多資源來(lái)優(yōu)化不太重要的超參數(shù);

    • 隨機(jī)搜索:隨機(jī)采樣超參數(shù)組合,并評(píng)估抽樣組合。雖然這種方法可能關(guān)注更重要的超參數(shù),但是無(wú)法保證找到最佳組合;

     與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 10 網(wǎng)格搜索和隨機(jī)搜索

    貝葉斯優(yōu)化與傳統(tǒng)的無(wú)模型方法不同,它使用計(jì)算成本較低的代理函數(shù)(surrogate function)來(lái)近似原始目標(biāo)函數(shù)。在貝葉斯優(yōu)化中,代理函數(shù)生成超參數(shù)組合的概率均值和方差。然后,效用函數(shù)(acquisition function)將評(píng)估超參數(shù)組合的預(yù)期損失或改進(jìn)。這樣的概率解釋方法使貝葉斯優(yōu)化能夠使用較少的成本找到目標(biāo)函數(shù)的較優(yōu)解。

    Angel 3.0 包括傳統(tǒng)的兩種方法和貝葉斯算法優(yōu)化。對(duì)貝葉斯優(yōu)化,Angel 實(shí)現(xiàn)了以下的功能:

    • 代理函數(shù)。除了常用的兩種模型(高斯過(guò)程和隨機(jī)森林),也實(shí)現(xiàn)了 EM + LBFGS 優(yōu)化高斯過(guò)程內(nèi)核函數(shù)中的超參數(shù);

    • 效用函數(shù):實(shí)現(xiàn)了 PI(Probability of improvement),EI(Expected Improvement)和 UCB(Upper Confidence Bound)。

    由于每次評(píng)估目標(biāo)函數(shù)的計(jì)算成本可能較大,如果觀察到候選超參數(shù)組合在開(kāi)始的若干輪迭代中表現(xiàn)不佳,可以提前停止這些候選超參數(shù)組合。Angel 3.0 版本中實(shí)現(xiàn)了該策略。表 2 展示了在邏輯回歸算法的實(shí)驗(yàn),調(diào)節(jié)的超參數(shù)是學(xué)習(xí)速度和學(xué)習(xí)速度衰減率,結(jié)果顯示貝葉斯優(yōu)化的性能優(yōu)于隨機(jī)搜索和網(wǎng)格搜索,而隨機(jī)搜索的結(jié)果略優(yōu)于網(wǎng)格搜索。

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    表 2 不同超參數(shù)自動(dòng)條件方法的效果對(duì)比

    Angel Serving

    為了滿足在生產(chǎn)環(huán)境中高效地進(jìn)行模型服務(wù)的需求,我們?cè)?Angel 3.0 中實(shí)現(xiàn)了 Angel Serving 子系統(tǒng),它是一個(gè)可拓展性強(qiáng)、高性能的機(jī)器學(xué)習(xí)模型服務(wù)系統(tǒng),是全棧式機(jī)器學(xué)習(xí)平臺(tái) Angel 的上層服務(wù)入口,使 Angel 生態(tài)能夠形成閉環(huán)。圖 11 展示了 Angel Serving 的架構(gòu)設(shè)計(jì)。 

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    圖 11 Angel Serving 架構(gòu)

    Angel Serving 主要特征包括:

    • 支持多種類型的 API 訪問(wèn)服務(wù),包括 gRPC 和 Restful 接口;

    • Angel Serving 是一個(gè)通用的機(jī)器學(xué)習(xí)服務(wù)框架。可插拔機(jī)制設(shè)計(jì)使得來(lái)自其他第三方機(jī)器學(xué)習(xí)平臺(tái)的模型可以與 Angel Serving 兼容,目前已經(jīng)支持三種平臺(tái)的模型:Angel,PyTorch 和支持 PMML 模型格式的平臺(tái)(Spark、XGBoost 等);

    • 受 TensorFlow Serving 的啟發(fā),Angel Serving 提供細(xì)粒度版本控制策略。包括使用模型的最早、最新以及指定版本進(jìn)行服務(wù);

    • Angel Serving 還提供豐富的模型服務(wù)監(jiān)控指標(biāo),包括:QPS(每秒請(qǐng)求數(shù))、總的請(qǐng)求數(shù)以及成功請(qǐng)求總數(shù)、請(qǐng)求的響應(yīng)時(shí)間分布以及平均響應(yīng)時(shí)間。

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    表 3 Angel Serving 和 Tensorflow Serving 性能對(duì)比

    表 3 展示了 Angel Serving 和 TensorFlow Serving 性能對(duì)比結(jié)果,我們使用具有 100 萬(wàn)個(gè)特征的 DeepFM 模型,向服務(wù)發(fā)送 100,000 個(gè)預(yù)測(cè)請(qǐng)求。Angel Serving 和 TensorFlow Serving 的總耗時(shí)分別為 56 秒和 59 秒。兩個(gè)服務(wù)系統(tǒng)的平均響應(yīng)時(shí)間都為 2 毫秒。Angel Serving 的 QPS 是 1,900,而 TensorFlow Serving 的 QPS 是 1,800。

    Angel 開(kāi)源地址:

    https://github.com/Angel-ML

    雷鋒網(wǎng) AI 開(kāi)發(fā)者 雷鋒網(wǎng)

    雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知

    與 TensorFlow 功能互補(bǔ)的騰訊 angel 發(fā)布 3.0 :高效處理千億級(jí)別模型

    分享:
    相關(guān)文章
    當(dāng)月熱門文章
    最新文章
    請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
    姓名
    電話
    郵箱
    微信號(hào)
    作品鏈接
    個(gè)人簡(jiǎn)介
    為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
    您的郵箱還未驗(yàn)證,完成可獲20積分喲!
    請(qǐng)驗(yàn)證您的郵箱
    立即驗(yàn)證
    完善賬號(hào)信息
    您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
    立即設(shè)置 以后再說(shuō)