
面向高維度的機器學(xué)習(xí)的計算框架-Angel
為支持超大維度機器學(xué)習(xí)模型運算,騰訊數(shù)據(jù)平臺部與香港科技大學(xué)合作開發(fā)了面向機器學(xué)習(xí)的分布式計算框架——Angel 1.0。
Angel是使用Java語言開發(fā)的專有機器學(xué)習(xí)計算系統(tǒng),用戶可以像用Spark, MapReduce一樣,用它來完成機器學(xué)習(xí)的模型訓(xùn)練。Angel已經(jīng)支持了SGD、ADMM優(yōu)化算法,同時我們也提供了一些常用的機器學(xué)習(xí)模型;但是如果用戶有自定義需求,也可以在我們提供的最優(yōu)化算法上層比較容易地封裝模型。
Angel應(yīng)用香港科技大學(xué)的Chukonu 作為網(wǎng)絡(luò)解決方案, 在高維度機器學(xué)習(xí)的參數(shù)更新過程中,有針對性地給滯后的計算任務(wù)的參數(shù)傳遞提速,整體上縮短機器學(xué)習(xí)算法的運算時間。這一創(chuàng)新采用了香港科技大學(xué)陳凱教授及其研究小組開發(fā)的可感知上層應(yīng)用(Application-aware)的網(wǎng)絡(luò)優(yōu)化方案,以及楊強教授領(lǐng)導(dǎo)的的大規(guī)模機器學(xué)習(xí)研究方案。
另外,北京大學(xué)崔斌教授及其學(xué)生也共同參與了Angel項目的研發(fā)。
在實際的生產(chǎn)任務(wù)中,Angel在千萬級到億級的特征緯度條件下運行SGD,性能是成熟的開源系統(tǒng)Spark的數(shù)倍到數(shù)十倍不等。Angel已經(jīng)在騰訊視頻推薦、廣點通等精準推薦業(yè)務(wù)上實際應(yīng)用,目前我們正在擴大在騰訊內(nèi)部的應(yīng)用范圍,目標是支持騰訊等企業(yè)級大規(guī)模機器學(xué)習(xí)任務(wù)。
整體架構(gòu)
Angel在整體架構(gòu)上參考了谷歌的DistBelief。DistBeilef最初是為深度學(xué)習(xí)而設(shè)計,它使用了參數(shù)服務(wù)器,以解決巨大模型在訓(xùn)練時的更新問題。參數(shù)服務(wù)器同樣可用于機器學(xué)習(xí)中非深度學(xué)習(xí)的模型,如SGD、ADMM、LBFGS的優(yōu)化算法在面臨在每輪迭代上億個參數(shù)更新的場景中,需要參數(shù)分布式緩存來拓展性能。Angel在運算中支持BSP、SSP、ASP三種計算模型,其中SSP是由卡耐基梅隆大學(xué)EricXing在Petuum項目中驗證的計算模型,能在機器學(xué)習(xí)的這種特定運算場景下提升縮短收斂時間。系統(tǒng)有五個角色:
Master:負責(zé)資源申請和分配,以及任務(wù)的管理。
Task:負責(zé)任務(wù)的執(zhí)行,以線程的形式存在。
Worker:獨立進程運行于Yarn的Container中,是Task的執(zhí)行容器。
ParameterServer:隨著一個任務(wù)的啟動而生成,任務(wù)結(jié)束而銷毀,負責(zé)在該任務(wù)訓(xùn)練過程中的參數(shù)的更新和存儲。
WorkerGroup為一個虛擬概念,由若干個Worker組成,元數(shù)據(jù)由Master維護。為模型并行拓展而考慮,在一個WorkerGroup內(nèi)所有Worker運行的訓(xùn)練數(shù)據(jù)都是一樣的。雖然我們提供了一些通用模型,但并不保證都滿足需求,而用戶自定義的模型實現(xiàn)可以實現(xiàn)我們的通用接口,形式上等同于MapReduce或Spark。
1. 自動化數(shù)據(jù)切分: Angel系統(tǒng)為用戶提供了自動切分訓(xùn)練數(shù)據(jù)的功能,方便用戶進行數(shù)據(jù)并行運算:系統(tǒng)默認兼容了Hadoop FS接口,原始訓(xùn)練樣本存儲在支持Hadoop FS接口的分布式文件系統(tǒng)如HDFS、Tachyon。
2. 豐富的數(shù)據(jù)管理:樣本數(shù)據(jù)存儲在分布式文件系統(tǒng)中,系統(tǒng)在計算前從文件系統(tǒng)讀取到計算進程,放在緩存在內(nèi)存中以加速迭代運算;如果內(nèi)存中緩存不下的數(shù)據(jù)則暫存到本地磁盤,不需要向分布式文件系統(tǒng)再次發(fā)起通訊請求。
3. 豐富的線性代數(shù)及優(yōu)化算法庫: Angel更提供了高效的向量及矩陣運算庫(稀疏/稠密),方便了用戶自由選擇數(shù)據(jù)、參數(shù)的表達形式。在優(yōu)化算法方面,Angel已實現(xiàn)了SGD、ADMM;模型方面,支持了Latent DirichletAllocation (LDA)、MatrixFactorization (MF)、LogisticRegression (LR) 、Support Vector Machine(SVM) 等。
4. 可選擇的計算模型:綜述中我們提到了,Angel的參數(shù)服務(wù)器可以支持BSP,SSP,ASP計算模型。
5. 更細粒度的容錯:在系統(tǒng)中容錯主要分為Master的容錯,參數(shù)服務(wù)器的容災(zāi),Worker進程內(nèi)的參數(shù)快照的緩存,RPC調(diào)用的容錯。
6. 友好的任務(wù)運行及監(jiān)控: Angel也具有友好的任務(wù)運行方式,支持基于Yarn的任務(wù)運行模式。同時,Angel的Web App頁面也方便了用戶查看集群進度。
在實際的生產(chǎn)環(huán)境中,可以直觀的感受到Spark的Driver單點更新參數(shù)和廣播的瓶頸,雖然可以通過線性拓展來減少計算時的耗時,但是帶來了收斂性下降的問題,同時更嚴重的是在數(shù)據(jù)并行的運算過程中,由于每個Executor都保持一個完整的參數(shù)快照,線性拓展帶來了N x 參數(shù)快照的流量,而這個流量集中到了Driver一個節(jié)點上!
從圖中看到,在機器學(xué)習(xí)任務(wù)中,Spark即使有更多的機器資源也無法利用,機器只在特定較少的規(guī)模下才能發(fā)揮最佳性能,但是這個最佳性能其實也并不理想。
采用參數(shù)服務(wù)器方案,我們與Spark做了如下比較:在有5000萬條訓(xùn)練樣本的數(shù)據(jù)集上,采用SGD解的邏輯回歸模型,使用10個工作節(jié)點(Worker),針對不同維度的特征逐一進行了每輪迭代時間和整體收斂時間的比較(這里Angel使用的是BSP模式)。
通過數(shù)據(jù)可見,模型越大Angel對比Spark的優(yōu)勢就越明顯。
在運算過程中為減少內(nèi)存消耗和提升單進程內(nèi)運算收斂性使用了異步無鎖的Hogwild! 模式。同一個運算進程中的N個Task如果在運算中都各自保持一個獨立的參數(shù)快照,對參數(shù)的內(nèi)存開銷就N倍,模型維度越大時消耗越明顯!SGD的優(yōu)化算法中,實際場景中,訓(xùn)練數(shù)據(jù)絕大多數(shù)情況下是稀疏的,因此參數(shù)更新沖突的概率就大大降低了,即便沖突了梯度也不完全是往差的方向發(fā)展,畢竟都是朝著梯度下降的方向更新的。我們使用了Hogwild!模式之后,讓多個Task在一個進程內(nèi)共享同一個參數(shù)快照,減少內(nèi)存消耗并提升了收斂速度。
我們有兩個主要優(yōu)化點:
1)進程內(nèi)的Task運算之后的參數(shù)更新合并之后平滑的推送到參數(shù)服務(wù)器更新,這減少了Task所在機器的上行消耗,也減少了參數(shù)服務(wù)器的下行消耗,同時減少在推送更新的過程中的峰值瓶頸次數(shù);
2)針對SSP進行更深一步的網(wǎng)絡(luò)優(yōu)化:由于SSP是一種半同步的運算協(xié)調(diào)機制,在有限的窗口運行訓(xùn)練,快的節(jié)點達到窗口邊緣時,任務(wù)就必須停下來等待最慢的節(jié)點更新最新的參數(shù)。針對這一問題,我們通過網(wǎng)絡(luò)流量的再分配來加速較慢的工作節(jié)點。我們給較慢的節(jié)點以更高的帶寬;相應(yīng)的,快的工作節(jié)點就分得更少的帶寬。這樣一來,快的節(jié)點和慢的節(jié)點的迭代次數(shù)的差距就得以控制,減少了窗口被突破(發(fā)生等待)的概率,也就是減少了工作節(jié)點由于SSP窗口而空閑等待時間。
如下圖所示,在1億維度、迭代30輪的效果評測中,可以看到Chukonu使得累積的空閑等待時間大幅度減少,達3.79倍。
下圖展示的是優(yōu)化前后的執(zhí)行時間,以5000萬維度的模型為例,20個工作節(jié)點和10個參數(shù)服務(wù)器,Staleness=5,執(zhí)行30輪迭代??梢钥闯觯_啟Chukonu后平均每輪的完成時間只需7.97秒,相比于比原始的任務(wù)平均每輪9.2秒有了15%的提升。
另外,針對性加速慢的節(jié)點可以使慢的節(jié)點更大可能的獲得最新的參數(shù),因此對比原始的SSP計算模型,算法收斂性得到了提升。下圖所示,同樣是針對五千萬維度的模型在SSP下的效果評測,原生的Angel任務(wù)在30輪迭代后(276秒)loss達到了0.0697,而開啟了Chukonu后,在第19輪迭代(145秒)就已達到更低的loss。從這種特定場景來看有一個接近90%的收斂速度提升。
后續(xù)計劃
未來,項目組將擴大應(yīng)用的規(guī)模,同時,項目組已經(jīng)在繼續(xù)研發(fā)Angel的下一版本,下一個版本會在模型并行方面做一些深入的優(yōu)化。另外,項目組正在計劃把Angel進行開源,我們會在后續(xù)合適的時機進行公開。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03