<label id="qqrfm"><meter id="qqrfm"></meter></label>
      <span id="qqrfm"></span><label id="qqrfm"><meter id="qqrfm"></meter></label>

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

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

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

        Angel 概述

        Angel 是基于參數(shù)服務器架構的分布式計算平臺,專注于稀疏數(shù)據(jù)高維模型訓練以及大規(guī)模圖數(shù)據(jù)分析問題,它由騰訊與北京大學聯(lián)合研發(fā),融合了業(yè)界的實用性和學術界的創(chuàng)新性。相比于 TensorFlow, PyTorch 和 Spark 等業(yè)界同類平臺,Angel 有如下特點:
        • Angel 是一個基于 Parameter Server(PS)理念開發(fā)的高性能分布式機器學習平臺,PS 架構良好的橫向擴展能力讓 Angel 能高效處理千億級別的模型。
        • Angel 具有專門為處理高維稀疏特征特別優(yōu)化的數(shù)學庫,性能可達 breeze 數(shù)學庫的 10 倍以上。
        • 相比之下,Angel 更擅長于推薦模型和圖網(wǎng)絡模型相關領域(如圖 1 所示),與 Tensorflow 和 PyTouch 的性能形成互補。
         與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型

        圖 1 Angel 與主流平臺的性能分布圖

        Angel 3.0 系統(tǒng)架構

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

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

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

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

        圖 2 Angel 3.0 架構
         
        Angel 3.0 新特性
        • 自動特征工程:新增特征選擇和組合方法,將特征合成、選擇和重新索引以 pipeline 的形式呈現(xiàn),用來迭代生成高階合成特征;
        • 新的計算引擎:SONA(加強)——特征工程支持索引為 Long 類型的向量;所有的算法被封裝成 Spark 風格的 APIs;SONA 上的算法可以作為 Spark 的補充;PyTONA(新)—— PyTONA 作為圖學習算法的引擎被引入,目前支持 GCN 和 GraphSage,同時也支持推薦領域的算法;
        • 自動機器學習:Angel3.0 引入了 3 種超參數(shù)調(diào)節(jié)算法,包括:網(wǎng)格搜索、隨機搜索和貝葉斯優(yōu)化;
        • Angel 模型服務:Angel 提供一個跨平臺的模型服務框架,支持 Angel、PyTorch 和 Spark 的模型,性能上與 TensorFlow Serving 相當;
        • Kubernetes:Angel3.0 支持 Kubernetes,可以在云上運行;
         與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型

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

        具體特性實現(xiàn)

        自動特征工程
        特征工程,例如:特征交叉和選擇,對于工業(yè)界的機器學習應用具有重要意義。雖然 Spark 提供了一些特征選擇算子,但仍有一些局限性,Angel 則基于 Spark 提供了更多的特征選擇算子:
        • 基于統(tǒng)計的運算符,包括 VarianceSelector 和 FtestSelector
        • 基于模型的運算符,包括 LassoSelector 和 RandomForestSelector
        大多數(shù)在線推薦系統(tǒng)經(jīng)常選擇線性算法,例如邏輯回歸作為機器學習模型,但邏輯回歸需要復雜的特征工程才能實現(xiàn)較高的精度,這使得自動特征合成至關重要。但是,現(xiàn)有的自動化的高階特征合成方法帶來了維度災難。

        為了解決這個問題,Angel 實現(xiàn)了一種迭代生成高階合成特征的方法,每次迭代由兩個階段組成,即擴增階段——任意特征的笛卡爾積;縮約階段——特征選擇和特征重索引;具體迭代步驟為:
        • 首先任意的輸入特征之間通過笛卡爾積生成合成特征(該步驟后,特征數(shù)量將以二次方式增加);
        • 接下來,從合成特征中選擇最重要的特征子集(使用例如 VarianceSelector 和 RandomForestSelector);
        • 然后,重新索引所選擇的特征以減少特征空間;
        • 最后,合成特征與原始特征拼接在一起。
        與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型

        圖 4 自動特征工程流程
         
        如圖 4 所示,這種特征合成方法線性地增加特征數(shù)量,避免了維度災難。在 Higgs 數(shù)據(jù)集上的實驗表明合成的特征能有效地提高模型精度(如表 1 所示)。
        與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型
        表 1 特征合成結(jié)果
         
        Spark On Angel (SONA)

        在 Angel 3.0 中,我們對 Spark On Angel 做了大幅度的優(yōu)化,添加了新的特性:
        • Spark On Angel 中集成了特征工程。在集成的過程中并不是簡單地借用 Spark 的特征工程,我們?yōu)樗械倪\算支持了長整型索引的向量使其能夠訓練高維稀疏模型;
        • 與自動調(diào)參無縫連接;
        • Spark 用戶能夠通過 Spark-fashion API 將 Spark 轉(zhuǎn)換成 Angel;
        • 支持兩種新的數(shù)據(jù)格式,即 LibFFM 和 Dummy。
         與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型
        圖 5 Spark On Angel 架構
         
        除了這些大的特征,我們也在持續(xù)完善 Spark On Angel 的算法庫,添加了一些新的算法,例如:Deep & Cross Network(DCN)和 Attention Factorization Machines(AFM)等;同時,對已有的算法做了大量的優(yōu)化。圖 6 提供了一個基于 Spark On Angel 的分布式算法示例,主要包含以下步驟: 與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型
        圖 6 Spark On Angel 算法示例
        • 在程序開始時啟動參數(shù)服務器,程序結(jié)束時關閉參數(shù)服務器;
        • 將訓練集和測試集以 Spark DataFrame 形式加載;
        • 定義一個 Angel 模型并以 Spark 的參數(shù)設置方式為其設置參數(shù)。在這個示例中,算法是一個通過 JSON 定義的計算圖;
        • 使用「fit」方法來訓練模型;
        • 使用「evaluate」方法來評估已訓練的模型。
        在訓練完成后,Spark On Angel 將會展示多種模型指標,如:準確率, ROC 曲線, AUC 等。用戶可以保存訓練好的模型以便下次使用。

        PyTorch On Angel(PyTONA)

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

        但大規(guī)模圖的表示學習面臨著兩個主要的挑戰(zhàn):第一個挑戰(zhàn)來自于超大規(guī)模圖結(jié)構的存儲以及訪問,這要求系統(tǒng)不僅能存得下,還需要提供高效的訪問接口;第二個挑戰(zhàn)來自于 GNN 計算過程,它需要有高效的自動求導模塊。
        通過對 Angel 自身狀況以及對業(yè)界已有系統(tǒng)的分析,我們發(fā)現(xiàn):
        • TensorFlow 和 PyTorch 擁有高效的自動求導模塊,但是它們不擅長處理高維度模型和稀疏數(shù)據(jù);
        • Angel 擅長處理高維度模型和稀疏數(shù)據(jù),雖然 Angel 自研的計算圖框架(MLcore)也可以自動求導,但是在效率和功能完整性上卻不及 TensorFlow 和 PyTorch,無法滿足 GNN 的要求。
        為了將兩者的優(yōu)勢結(jié)合起來,我們基于 Angel PS 開發(fā)了 PyTorch On Angel 平臺,希望通過 Angel PS 來存儲大模型,同時使用 Spark 來作為 PyTorch 的分布式調(diào)度平臺。最終得到 PyTorch On Angel 的架構如圖 7 所示:
         與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型
        圖 7 PyTorch On Angel 系統(tǒng)架構

        PyTorch On Angel 具有 3 個主要的組件:
        • Angel PS:存儲模型參數(shù),圖結(jié)構信息和節(jié)點特征等,并且提供模型參數(shù)和圖相關數(shù)據(jù)結(jié)構的訪問接口,例如需要提供兩跳鄰接訪問接口;
        • Spark Driver:中央控制節(jié)點,負責計算任務的調(diào)度和一些全局的控制功能,例如發(fā)起創(chuàng)建矩陣、初始化模型、保存模型、寫 checkpoint 以及恢復模型命令;
        • Spark Worker:讀取計算數(shù)據(jù),同時從 PS 上拉取模型參數(shù)和網(wǎng)絡結(jié)構等信息,然后將這些訓練數(shù)據(jù)參數(shù)和網(wǎng)絡結(jié)構傳給 PyTorch,PyTorch 負責具體的計算并且返回梯度,最后 Spark Worker 將梯度推送到 PS 更新模型。
        這些組件都已封裝完備,因此在 PyTorch On Angel 平臺上開發(fā)新算法,只需關注算法邏輯即可。圖 8 展示了一個開發(fā)案例,算法開發(fā)完成后,將代碼保存為 pt 文件,然后將 pt 文件提交給 PyTorch On Angel 平臺就可以實現(xiàn)分布式訓練了。

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

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

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

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

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

        傳統(tǒng)超參數(shù)調(diào)節(jié)的方式有兩種(如圖 10 所示):
        • 網(wǎng)格搜索:網(wǎng)格搜索將整個搜索空間切分為網(wǎng)格,假設超參數(shù)是同等重要的。這種方式雖然直觀,但有兩個明顯的缺點。第一個是計算代價隨參數(shù)數(shù)量的增長而呈指數(shù)增長,其次是超參數(shù)的重要程度常常不同,網(wǎng)格搜索可能會花費太多資源來優(yōu)化不太重要的超參數(shù);
        • 隨機搜索:隨機采樣超參數(shù)組合,并評估抽樣組合。雖然這種方法可能關注更重要的超參數(shù),但是無法保證找到最佳組合;
         與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型

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

        Angel 3.0 包括傳統(tǒng)的兩種方法和貝葉斯算法優(yōu)化。對貝葉斯優(yōu)化,Angel 實現(xiàn)了以下的功能:
        • 代理函數(shù)。除了常用的兩種模型(高斯過程和隨機森林),也實現(xiàn)了 EM + LBFGS 優(yōu)化高斯過程內(nèi)核函數(shù)中的超參數(shù);
        • 效用函數(shù):實現(xiàn)了 PI(Probability of improvement),EI(Expected Improvement)和 UCB(Upper Confidence Bound)。
        由于每次評估目標函數(shù)的計算成本可能較大,如果觀察到候選超參數(shù)組合在開始的若干輪迭代中表現(xiàn)不佳,可以提前停止這些候選超參數(shù)組合。Angel 3.0 版本中實現(xiàn)了該策略。表 2 展示了在邏輯回歸算法的實驗,調(diào)節(jié)的超參數(shù)是學習速度和學習速度衰減率,結(jié)果顯示貝葉斯優(yōu)化的性能優(yōu)于隨機搜索和網(wǎng)格搜索,而隨機搜索的結(jié)果略優(yōu)于網(wǎng)格搜索。
        與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型
        表 2 不同超參數(shù)自動條件方法的效果對比

        Angel Serving

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

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

        圖 11 Angel Serving 架構
         
        Angel Serving 主要特征包括:
        • 支持多種類型的 API 訪問服務,包括 gRPC 和 Restful 接口;
        • Angel Serving 是一個通用的機器學習服務框架。可插拔機制設計使得來自其他第三方機器學習平臺的模型可以與 Angel Serving 兼容,目前已經(jīng)支持三種平臺的模型:Angel,PyTorch 和支持 PMML 模型格式的平臺(Spark、XGBoost 等);
        • 受 TensorFlow Serving 的啟發(fā),Angel Serving 提供細粒度版本控制策略。包括使用模型的最早、最新以及指定版本進行服務;
        • Angel Serving 還提供豐富的模型服務監(jiān)控指標,包括:QPS(每秒請求數(shù))、總的請求數(shù)以及成功請求總數(shù)、請求的響應時間分布以及平均響應時間。
        與 TensorFlow 功能互補的騰訊 angel 發(fā)布 3.0 :高效處理千億級別模型

        表 3 Angel Serving 和 Tensorflow Serving 性能對比
         
        表 3 展示了 Angel Serving 和 TensorFlow Serving 性能對比結(jié)果,我們使用具有 100 萬個特征的 DeepFM 模型,向服務發(fā)送 100,000 個預測請求。Angel Serving 和 TensorFlow Serving 的總耗時分別為 56 秒和 59 秒。兩個服務系統(tǒng)的平均響應時間都為 2 毫秒。Angel Serving 的 QPS 是 1,900,而 TensorFlow Serving 的 QPS 是 1,800。
        Angel 開源地址:
        https://github.com/Angel-ML
        來源 | 雷鋒網(wǎng) AI 開發(fā)者 雷鋒網(wǎng)
        作者 | 楊鯉萍

        上一篇:國家信息中心聯(lián)合華為發(fā)布研究報告 推動人類社會邁向智能時代
        下一篇:科技部發(fā)布新一批國家新一代人工智能開放創(chuàng)新平臺

        主站蜘蛛池模板: 亚洲AV无码一区二区三区人 | 一级特黄录像免费播放肥| 91在线视频免费91| 亚洲日本在线观看网址| 免费观看激色视频网站bd | 青青操免费在线观看| 国产亚洲精久久久久久无码AV| 菠萝菠萝蜜在线免费视频| 免费在线观看a级毛片| 曰批全过程免费视频免费看 | 男女交性无遮挡免费视频| 免费播放特黄特色毛片| 四虎影视久久久免费观看| 中文亚洲AV片不卡在线观看 | 国产亚洲中文日本不卡二区| 四虎影视大全免费入口| 国产亚洲情侣久久精品| 国产精品亚洲产品一区二区三区 | 久久这里只精品国产免费10| 亚洲酒色1314狠狠做| 91免费国产在线观看| 亚洲欧美成人一区二区三区| 免费在线观看理论片| 巨胸喷奶水www永久免费| 日韩精品亚洲人成在线观看 | 国产精品亚洲二区在线观看| 久久精品国产免费| 亚洲AV无码成人专区| 四虎影视免费永久在线观看| a级成人毛片免费图片| 亚洲欧洲日产国码www| 国产免费观看青青草原网站| 久久免费国产精品| tom影院亚洲国产一区二区| 免费一级e一片在线播放| 国产精品偷伦视频观看免费| 2019亚洲午夜无码天堂| 久久久久亚洲AV综合波多野结衣| 最近免费中文字幕大全免费版视频 | 亚洲精品又粗又大又爽A片| www.亚洲精品.com|