來源:阿里技術 時間:2017-08-15 11:52:35 作者:
近年來,隨著“大”數(shù)據(jù)及“大”模型的出現(xiàn),學術界和工業(yè)界對分布式機器學習算法引起了廣泛關注。針對這一剛需,本論文設計了一個獨一無二的分布式平臺——鯤鵬。它無縫的結合了分布式系統(tǒng)及并行優(yōu)化算法,解決了大規(guī)模機器學習算法帶來的一系列問題。鯤鵬不僅囊括了數(shù)據(jù)/模型并行、負載平衡、模型同步、稀疏表示、工業(yè)容錯等特性,而且還提供了封閉好的、宜于調(diào)用的API供普通的機器學習者開發(fā)分布式算法,降低使用成本并提升效率。
本論文的實驗在十億級別的樣本和特征數(shù)據(jù)上進行,結果表示,鯤鵬這一設計使得一系列算法的性能都得到了極大的提升,包括FTRL,Sparse-LR,以及MART。此外,鯤鵬在阿里巴巴雙11狂歡購物節(jié)及螞蟻金服的交易風險檢測中體現(xiàn)出了其巨大的應用價值。
研究背景
現(xiàn)在是個大數(shù)據(jù)的時代,各個平臺的數(shù)據(jù)量都與時俱進。舉例而言,國外的Twitter每天新增5億條Tweets,阿里巴巴每天有5000萬個包裹,螞蟻金服的支付寶交易峰會達到12萬筆/秒,僅僅在2016年雙11當天就產(chǎn)生了10.5億條交易。如此大的數(shù)據(jù)量使得機器學習不得不面臨著樣本及特征規(guī)模巨大的挑戰(zhàn)。例如,阿里巴巴內(nèi)部的模型會達到千億樣本,百億特征,TB-TP級的訓練數(shù)據(jù)量。因此,如果搭建能夠訓練如此大規(guī)模數(shù)據(jù)的機器學習平臺是工業(yè)界面臨的一個巨大問題。
已有方法介紹
圖1阿里某生產(chǎn)集群中MPI任務狀態(tài)
目前,業(yè)界已經(jīng)有一些比較成熟的分布式處理框架,如Hadoop,Spark,GraphLab和GraphX。雖然它們可以支持機器學習算法并行化,但它們很難讓開發(fā)人員設計出更有效率且支持更大規(guī)模的機器學習算法。具體而言,Hadoop和Spark雖然提供了一些同步和粗粒度運算符(例如,Map,Reduce 和 Join 等),但主要還停留在解決中小規(guī)模機器學習的問題。
GraphLab/GraphX主要是為了圖存儲和計算,并不適用于普通的大規(guī)模機器學習算法。MPI雖然能夠支持普通的分布式計算,但其缺乏容錯機制。特別是在worker很大的情況下,MPI的運行成功率會大大降低,如圖1所示。因此,如何設計更有效率且支持更大規(guī)模的機器學習算法成為一個業(yè)界難題。
鯤鵬的研究動機及創(chuàng)新性
鯤鵬取名自《莊子·逍遙游》,文中記載“北冥有魚,其名曰鯤。鯤之大,不知其幾千里也;化而為鳥,其名為鵬。鵬之背,不知其幾千里也。怒而飛,其翼若垂天之云?!痹谖覀兊啮H鵬系統(tǒng)中,“鯤”即是超大規(guī)模分布式計算系統(tǒng),它擁有超強的計算能力;而“鵬”即是超大規(guī)模分布式優(yōu)化算法,它建立在“鯤”之上?!蚌H鵬”即同時擁有超大規(guī)模分布式計算系統(tǒng)及超大規(guī)模分布式優(yōu)化算法,合二為一使得它有“一飛沖天”的能力,如圖2所示。
圖2鯤鵬的研究動機及創(chuàng)新性
系統(tǒng)創(chuàng)新
鯤鵬的創(chuàng)新在于它擁有了以下功能:
1.強大的容錯功能,甚至在復雜且忙碌的線上集群環(huán)境中
2.Backup Instancefor Straggler Management
3.支持有向無循環(huán)圖形式的調(diào)度和同步,包括BSP/SSP/ASP
4.用戶友好的界面和編程
算法創(chuàng)新
鯤鵬架構使得常用的機器學習算法的大規(guī)模化成為了可能,截止目前,已經(jīng)有眾多機器學習算法在鯤鵬上得以實現(xiàn)和應用,包括但不限于LR,F(xiàn)TRL,MART,F(xiàn)M,HashMF,DSSM,DNN,LDA。
鯤鵬的架構
總體架構
圖3鯤鵬的架構
鯤鵬的架構如圖3所示,它建立在阿里巴巴集團內(nèi)部的大規(guī)模分布式 Apasra 平臺上面,擁有Robust Failover、Backup Instance,以及 DGA for Scheduling &Synchronization等特性。圖3中的核心模塊包括以下幾部分:
Server nodes:對模型做分片存儲
Worker nodes:對訓練數(shù)據(jù)做分片并計算
Coordinator:控制算法整體流程,如初始化,迭代,終止等
ML Bridge:使用腳本形式的工作流對數(shù)據(jù)進行預處理
PS-Core:核心的參數(shù)服務器組件(servers/workers/coordinator)
Fuxi:監(jiān)控所有機器運行狀態(tài),必要時進行容錯
用戶視角
圖4鯤鵬架構用戶視角
鯤鵬系統(tǒng)的調(diào)用,對普通用戶而言也非常簡單。用戶只需要使用簡單的幾行腳本形式的命令,即可完成整個算法的調(diào)度。整個過程主要包括:
數(shù)據(jù)預處理,準備成算法接受格式
構建算法的輸入/出表
調(diào)用鯤鵬算法,ps_train -i demo_batch_input -o demo_batch_result -a xxAlgo -t
xxTermination;
評估算法效果
進行A/B測試
從圖4中可以看出,整個流程對用戶而言都是透明的,使用過程也“如絲般順滑”,不用感知算法背后復雜的優(yōu)化及調(diào)度過程。
開發(fā)者視角
圖5鯤鵬架構開發(fā)者視角
鯤鵬架構對普通的機器學習算法開發(fā)者而言也非常簡單。它將復雜的通信及調(diào)度過程包裝成了API。如,Worker.PullFrom(Server),開發(fā)者只需要這一行簡單的代碼即可把模型從server端pull到worker端。再如,SyncBarrier(),這開發(fā)者只需要這一行簡單的代碼即可完成server端模型的同步。
實驗結果
與Spark和MPI的比較
圖6鯤鵬與Spark和MPI訓練時間及內(nèi)存消耗對比
圖6顯示了在七個不同數(shù)據(jù)集上(D1-D7),鯤鵬與Spark和MPI的邏輯回歸算法(LR)訓練時間及內(nèi)存消耗對比。如D1(460K,20M)指該數(shù)據(jù)集包含了46萬特征,2000萬樣本。從中可以看出,Spark和MPI的LR在特征超大的情況下(D7)會出錯,而鯤鵬的LR則可順利訓練成功。
Kunpeng-MART與XGBoost比較
圖7 Kunpeng-MART與XGBoost內(nèi)存消耗對比結果
圖7顯示了基于鯤鵬實現(xiàn)的MultipleAdditive Regression Trees(MART)與開源的XGBoost在四個不同數(shù)據(jù)集上的對比結果。從中可以看出,基于鯤鵬的MART內(nèi)存使用情況要穩(wěn)定的低于XGBoost。此外,我們在Ads CVR2數(shù)據(jù)上重復跑了10次XGBoost,但無一成功得到結果。圖8顯示了基于鯤鵬的MART和XGBoost在相同數(shù)據(jù)集上運行時間的對比,其中也可以看出基于鯤鵬的MART訓練時間要優(yōu)于XGBoost。
圖8 Kunpeng-MART與XGBoost訓練時長對比結果
Worker數(shù)量對算法的影響實驗
圖9 Worker數(shù)量與算法加速及單Worker內(nèi)存使用關系
圖9顯示了Worker數(shù)量與算法加速及單Worker內(nèi)存使用的關系。在該實驗中,我們使用的是基于鯤鵬的稀疏LR算法,特征約有70億個,樣本約有180億個。從中可以看出,25個worker就能訓練這些數(shù)據(jù)。而且隨著worker的增多,算法訓練速度倍增,同時單機上的內(nèi)存使用會倍降。
總結
本文所提出的分布式學習系統(tǒng)——鯤鵬,擁有強大的分布式計算能力和算法優(yōu)化能力,同時也有用戶友好的界面和接口。在實際的在線或離線任務中,它能接受百億特征,千億樣本和萬億參數(shù)。同時,它在生產(chǎn)集群中,有著很好的健壯性、靈活性、擴展性及高效性。此外,它在阿里和螞蟻眾多實際場景中發(fā)揮出了巨大的優(yōu)勢。例如,在2015年“雙11”中,鯤鵬系統(tǒng)上實現(xiàn)的“樓層”排序(LR算法)使得UV CTR提升了21%,GMV提升了10%。
再如,基于鯤鵬實現(xiàn)的GBDT+DNN算法應用在支付寶交易風險評估業(yè)務中,該算法上線以來,相同覆蓋度的情況下,案件召回率從 91% 增加到 98%,每天減少了幾千萬次用戶的打擾。此外,在鯤鵬上實現(xiàn)的Deep Structured Semantic Model(DSSM)模型,已經(jīng)廣泛被應用于神馬搜索,淘寶搜索,1688廣告,螞蟻智能客服等業(yè)務中。
總體來說,鯤鵬系統(tǒng)上的10+個成熟算法已經(jīng)被廣泛應用于120+個產(chǎn)品中,這些無一不是阿里生態(tài)體系內(nèi)最大規(guī)模的算法。
團隊:螞蟻金服人工智能部&阿里云
作者:周俊,李小龍,趙沛霖,陳超超,李龍飛,楊新星,崔卿,余晉,陳緒,丁軼,漆遠
2017年,阿里巴巴首次發(fā)布全球創(chuàng)新研究計劃Alibaba Innovative Research,簡稱AIR。AIR計劃旨在讓全世界的科技人才在追逐世界的同時,用科技創(chuàng)造新的未來!
為了讓更多參與者深入理解AIR(Alibaba Innovative Research)的研究課題,阿里巴巴近日宣布將在8月15日-16日圍繞此前發(fā)布的課題進行AIR open day主題視頻解說, 二十多位科研課題負責人將在視頻中深度解析課題研究內(nèi)容。
節(jié)目簡介
主題:
阿里巴巴創(chuàng)新研究計劃宣講
時間:8月15、16日每天下午14:30準時開播
一共兩場,每場預計1.5小時
觀看地址:
http://www.21jieyan.cn
在8月15日當天的AIR open day課題解說中,相關負責人將會對數(shù)據(jù)中心、網(wǎng)絡、存儲技術、操作系統(tǒng)、數(shù)據(jù)庫五個領域涉及的研究課題內(nèi)容進行深入解析。8月16日則會對其余九個領域的課題進行一一解析。
▲8月15日直播日程
▲8月16日直播日程
責任編輯:陳近梅