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