search
如何搭建大規模機器學習平台?以阿里和螞蟻的多個實際場景為例

如何搭建大規模機器學習平台?以阿里和螞蟻的多個實際場景為例

阿里妹導讀

近年來,隨著「大」數據及「大」模型的出現,學術界和工業界對分散式機器學習演算法引起了廣泛關注。針對這一剛需,本論文設計了一個獨一無二的分散式平台——鯤鵬。它無縫的結合了分散式系統及并行優化演算法,解決了大規模機器學習演算法帶來的一系列問題。鯤鵬不僅囊括了數據/模型并行、負載平衡、模型同步、稀疏表示、工業容錯等特性,而且還提供了封閉好的、宜於調用的API供普通的機器學習者開發分散式演算法,降低使用成本並提升效率。

本論文的實驗在十億級別的樣本和特徵數據上進行,結果表示,鯤鵬這一設計使得一系列演算法的性能都得到了極大的提升,包括FTRL,Sparse-LR,以及MART。此外,鯤鵬在阿里巴巴雙11狂歡購物節及螞蟻金服的交易風險檢測中體現出了其巨大的應用價值。

研究背景

現在是個大數據的時代,各個平台的數據量都與時俱進。舉例而言,國外的Twitter每天新增5億條Tweets,阿里巴巴每天有5000萬個包裹,螞蟻金服的支付寶交易峰會達到12萬筆/秒,僅僅在2016年雙11當天就產生了10.5億條交易。如此大的數據量使得機器學習不得不面臨著樣本及特徵規模巨大的挑戰。例如,阿里巴巴內部的模型會達到千億樣本,百億特徵,TB-TP級的訓練數據量。因此,如果搭建能夠訓練如此大規模數據的機器學習平台是工業界面臨的一個巨大問題。

已有方法介紹

圖1阿里某生產集群中MPI任務狀態

目前,業界已經有一些比較成熟的分散式處理框架,如Hadoop,Spark,GraphLab和GraphX。雖然它們可以支持機器學習演算法并行化,但它們很難讓開發人員設計出更有效率且支持更大規模的機器學習演算法。具體而言,Hadoop和Spark雖然提供了一些同步和粗粒度運算符(例如,Map,Reduce 和 Join 等),但主要還停留在解決中小規模機器學習的問題。

GraphLab/GraphX主要是為了圖存儲和計算,並不適用於普通的大規模機器學習演算法。MPI雖然能夠支持普通的分散式計算,但其缺乏容錯機制。特別是在worker很大的情況下,MPI的運行成功率會大大降低,如圖1所示。因此,如何設計更有效率且支持更大規模的機器學習演算法成為一個業界難題。

鯤鵬的研究動機及創新性

鯤鵬取名自《莊子·逍遙遊》,文中記載「北冥有魚,其名曰鯤。之大,不知其幾千里也;化而為鳥,其名為。鵬之背,不知其幾千里也。怒而飛,其翼若垂天之雲。」在我們的鯤鵬系統中,「鯤」即是超大規模分散式計算系統,它擁有超強的計算能力;而「鵬」即是超大規模分散式優化演算法,它建立在「鯤」之上。「鯤鵬」即同時擁有超大規模分散式計算系統及超大規模分散式優化演算法,合二為一使得它有「一飛衝天」的能力,如圖2所示。

圖2鯤鵬的研究動機及創新性

系統創新

鯤鵬的創新在於它擁有了以下功能:

  • 強大的容錯功能,甚至在複雜且忙碌的線上集群環境中

  • Backup Instancefor Straggler Management

  • 支持有向無循環圖形式的調度和同步,包括BSP/SSP/ASP

  • 用戶友好的界面和編程


演算法創新

鯤鵬架構使得常用的機器學習演算法的大規模化成為了可能,截止目前,已經有眾多機器學習演算法在鯤鵬上得以實現和應用,包括但不限於LR,FTRL,MART,FM,HashMF,DSSM,DNN,LDA。

鯤鵬的架構總體架構

圖3鯤鵬的架構

鯤鵬的架構如圖3所示,它建立在阿里巴巴集團內部的大規模分散式 Apasra 平台上面,擁有Robust Failover、Backup Instance,以及 DGA for Scheduling &Synchronization等特性。圖3中的核心模塊包括以下幾部分:

Server nodes:對模型做分片存儲

Worker nodes:對訓練數據做分片並計算

Coordinator:控制演算法整體流程,如初始化,迭代,終止等

ML Bridge:使用腳本形式的工作流對數據進行預處理

PS-Core:核心的參數伺服器組件(servers/workers/coordinator)

Fuxi:監控所有機器運行狀態,必要時進行容錯

用戶視角

圖4鯤鵬架構用戶視角

鯤鵬系統的調用,對普通用戶而言也非常簡單。用戶只需要使用簡單的幾行腳本形式的命令,即可完成整個演算法的調度。整個過程主要包括:

  • 數據預處理,準備成演算法接受格式

  • 構建演算法的輸入/出表

  • 調用鯤鵬演算法,ps_train -i demo_batch_input -o demo_batch_result -a xxAlgo -t

  • xxTermination;

  • 評估演算法效果

  • 進行A/B測試

從圖4中可以看出,整個流程對用戶而言都是透明的,使用過程也「如絲般順滑」,不用感知演算法背後複雜的優化及調度過程。


開發者視角

圖5鯤鵬架構開發者視角

鯤鵬架構對普通的機器學習演算法開發者而言也非常簡單。它將複雜的通信及調度過程包裝成了API。如,Worker.PullFrom(Server),開發者只需要這一行簡單的代碼即可把模型從server端pull到worker端。再如,SyncBarrier,這開發者只需要這一行簡單的代碼即可完成server端模型的同步。

實驗結果與Spark和MPI的比較

圖6鯤鵬與Spark和MPI訓練時間及內存消耗對比

圖6顯示了在七個不同數據集上(D1-D7),鯤鵬與Spark和MPI的邏輯回歸演算法(LR)訓練時間及內存消耗對比。如D1(460K,20M)指該數據集包含了46萬特徵,2000萬樣本。從中可以看出,Spark和MPI的LR在特徵超大的情況下(D7)會出錯,而鯤鵬的LR則可順利訓練成功。

Kunpeng-MART與XGBoost比較

圖7 Kunpeng-MART與XGBoost內存消耗對比結果

圖7顯示了基於鯤鵬實現的MultipleAdditive Regression Trees(MART)與開源的XGBoost在四個不同數據集上的對比結果。從中可以看出,基於鯤鵬的MART內存使用情況要穩定的低於XGBoost。此外,我們在Ads CVR2數據上重複跑了10次XGBoost,但無一成功得到結果。圖8顯示了基於鯤鵬的MART和XGBoost在相同數據集上運行時間的對比,其中也可以看出基於鯤鵬的MART訓練時間要優於XGBoost。

圖8 Kunpeng-MART與XGBoost訓練時長對比結果


Worker數量對演算法的影響實驗

圖9 Worker數量與演算法加速及單Worker內存使用關係

圖9顯示了Worker數量與演算法加速及單Worker內存使用的關係。在該實驗中,我們使用的是基於鯤鵬的稀疏LR演算法,特徵約有70億個,樣本約有180億個。從中可以看出,25個worker就能訓練這些數據。而且隨著worker的增多,演算法訓練速度倍增,同時單機上的內存使用會倍降。


總結

本文所提出的分散式學習系統——鯤鵬,擁有強大的分散式計算能力和演算法優化能力,同時也有用戶友好的界面和介面。在實際的在線或離線任務中,它能接受百億特徵,千億樣本和萬億參數。同時,它在生產集群中,有著很好的健壯性、靈活性、擴展性及高效性。此外,它在阿里和螞蟻眾多實際場景中發揮出了巨大的優勢。例如,在2015年「雙11」中,鯤鵬系統上實現的「樓層」排序(LR演算法)使得UV CTR提升了21%,GMV提升了10%。

再如,基於鯤鵬實現的GBDT+DNN演算法應用在支付寶交易風險評估業務中,該演算法上線以來,相同覆蓋度的情況下,案件召回率從 91% 增加到 98%,每天減少了幾千萬次用戶的打擾。此外,在鯤鵬上實現的Deep Structured Semantic Model(DSSM)模型,已經廣泛被應用於神馬搜索,淘寶搜索,1688廣告,螞蟻智能客服等業務中。

總體來說,鯤鵬系統上的10+個成熟演算法已經被廣泛應用於120+個產品中,這些無一不是阿里生態體系內最大規模的演算法。

團隊:螞蟻金服人工智慧部&阿里雲

作者:周俊,李小龍,趙沛霖,陳超超,李龍飛,楊新星,崔卿,余晉,陳緒,丁軼,漆遠

2017年,阿里巴巴首次發布全球創新研究計劃Alibaba Innovative Research,簡稱AIR。AIR計劃旨在讓全世界的科技人才在追逐世界的同時,用科技創造新的未來!

為了讓更多參與者深入理解AIR(Alibaba Innovative Research)的研究課題,阿里巴巴近日宣布將在8月15日-16日圍繞此前發布的課題進行AIR open day主題視頻解說, 二十多位科研課題負責人將在視頻中深度解析課題研究內容。

主題:

阿里巴巴創新研究計劃宣講

時間:8月15、16日每天下午14:30準時開播

一共兩場,每場預計1.5小時

http://vku.youku.com/live/play?id=12937

你也可以點擊文末「閱讀原文」收藏鏈接

在8月15日當天的AIR open day課題解說中,相關負責人將會對數據中心、網路、存儲技術、操作系統、資料庫五個領域涉及的研究課題內容進行深入解析。8月16日則會對其餘九個領域的課題進行一一解析。

▲8月15日直播日程

▲8月16日直播日程

你可能還喜歡

如何解決租房煩惱?阿里工程師寫了一套神奇的代碼

五分鐘讀懂SIGIR 2017前沿技術研究成果


首次披露!拍立淘技術框架及核心演算法,日均UV超千萬

關注「阿里技術」

把握前沿技術脈搏

本文由 一點資訊 提供 原文連結

寫了5858693篇文章,獲得23212次喜歡
留言回覆
回覆
熱門推薦
精彩推薦