PAI分布式機(jī)器學(xué)習(xí)平臺編程模型演進(jìn)之路

click.aliyun.com/m/23760/摘要:在云棲計(jì)算之旅第5期—大數(shù)據(jù)與人工智能大會上旗唁,來自阿里云大數(shù)據(jù)事業(yè)部的九豐分享了《PAI分布式機(jī)器學(xué)習(xí)平臺編程模型演進(jìn)之路》饼煞。他主要介紹了在集團(tuán)中使用機(jī)器學(xué)習(xí)解決大數(shù)據(jù)問題時如何通過編程模型的演進(jìn)逐步解決業(yè)務(wù)上的痛點(diǎn)。

在云棲計(jì)算之旅第5期—大數(shù)據(jù)與人工智能大會上雄坪,來自阿里云大數(shù)據(jù)事業(yè)部的九豐分享了《PAI分布式機(jī)器學(xué)習(xí)平臺編程模型演進(jìn)之路》。他主要介紹了在集團(tuán)中使用機(jī)器學(xué)習(xí)解決大數(shù)據(jù)問題時如何通過編程模型的演進(jìn)逐步解決業(yè)務(wù)上的痛點(diǎn)屯蹦。其中维哈,他只要分享了MapReduce、MPI登澜、Parameter Server編程模型的演進(jìn)過程阔挠。

以下內(nèi)容根據(jù)大會視頻整理而成。

什么是PAI脑蠕?

PAI的全稱是Platform of Artificial Intelligence购撼,主要在使用機(jī)器學(xué)習(xí)做模型訓(xùn)練時提供整套鏈路。機(jī)器學(xué)習(xí)即服務(wù)谴仙,把機(jī)器學(xué)習(xí)作為服務(wù)對外推出迂求,大家可以在平臺上使用比較先進(jìn)的機(jī)器學(xué)習(xí)算法。將多種深度學(xué)習(xí)框架集成到PAI中晃跺,同時基于深度學(xué)習(xí)框架包裝成更加易用的組件揩局。具備異構(gòu)的計(jì)算服務(wù)能力,把CPU計(jì)算能力和GPU計(jì)算能力統(tǒng)一調(diào)度起來掀虎,異構(gòu)的計(jì)算能力透明谐腰,大家的注意力是哪些機(jī)器學(xué)習(xí)算法可以幫助業(yè)務(wù),不用關(guān)心底層資源的申請和分配涩盾。PAI也支持在線預(yù)測服務(wù)十气,模型一鍵發(fā)布。

大規(guī)模分布式機(jī)器學(xué)習(xí)的挑戰(zhàn)

數(shù)據(jù)規(guī)模和特征會不斷增加春霍,這就會導(dǎo)致模型復(fù)雜度的增加砸西,之前的模型已經(jīng)不能夠處理這么高的復(fù)雜度了。特征增加之后址儒,模型變得越來越大芹枷,模型很難做到單機(jī)加載,所以在模型存儲時需要做分片和切分莲趣。在常規(guī)的機(jī)器學(xué)習(xí)里面鸳慈,更多的注意力放在理解業(yè)務(wù)的數(shù)據(jù)、特征喧伞,而現(xiàn)在的注意力會轉(zhuǎn)移到模型本身走芋,更多考慮怎么通過調(diào)整模型的結(jié)構(gòu)達(dá)到更好的預(yù)測效果绩郎。

編程模型演進(jìn)

MapReduce編程模型

MapReduce核心的思想是分而治之,即把數(shù)據(jù)切分成很多塊翁逞,每個節(jié)點(diǎn)處理其中的一小塊肋杖。做分布式系統(tǒng)時會面臨很多問題,比如希望計(jì)算任務(wù)可以在MapReduce框架層面做切分和調(diào)度挖函。MapReduce從框架層面極大地降低了把任務(wù)遷移到分布式計(jì)算系統(tǒng)上的難度和門檻状植。對于數(shù)據(jù)的分布式存儲和劃分,數(shù)據(jù)可分散存儲在幾千臺機(jī)器上怨喘,并且都有相應(yīng)副本津畸,不需要擔(dān)心數(shù)據(jù)的丟失,底層的分布式存儲會統(tǒng)一進(jìn)行處理必怜。計(jì)算任務(wù)的同步和計(jì)算節(jié)點(diǎn)的容錯與恢復(fù)肉拓,若使用普通機(jī)器去搭大型計(jì)算群的時候,機(jī)器的宕機(jī)時比較普遍的現(xiàn)象棚赔,使用MapReduce則不需要關(guān)心這一點(diǎn)帝簇。右圖是MapReduce的編程模型徘郭,最初是用來處理SQL等問題靠益。

在機(jī)器學(xué)習(xí)里面,有些算法是基于MapReduce編程模型去實(shí)現(xiàn)的残揉。TF-IDF用來評估文檔里面單詞是否能表示文檔主題胧后。首先計(jì)算文檔里面單詞出現(xiàn)的頻率,把謂詞和嘆詞去掉抱环,關(guān)注真正有意義的詞壳快。IDF則是統(tǒng)計(jì)該詞在所有文檔里面出現(xiàn)的頻率,將其和文檔里出現(xiàn)的頻率經(jīng)過算法計(jì)算得出最終結(jié)果镇草。這個過程如何通過MapReduce實(shí)現(xiàn)呢眶痰?在Mapper中迭代的去加載每一篇要訓(xùn)練的文章,在迭代過程中統(tǒng)計(jì)每個單詞出現(xiàn)的頻率梯啤。將統(tǒng)計(jì)結(jié)果放入Reducer中竖伯,進(jìn)行計(jì)算,得到TF-IDF結(jié)果表因宇。

MapReduce編程模型有兩個特點(diǎn):不同計(jì)算任務(wù)之間獨(dú)立七婴,每個Mapper和Reducer只會計(jì)算自己相關(guān)的數(shù)據(jù),數(shù)據(jù)并行度高察滑;適合不需要不同節(jié)點(diǎn)通信的機(jī)器學(xué)習(xí)算法打厘。

MPI編程模型

邏輯回歸算法是需要節(jié)點(diǎn)間進(jìn)行通信的,該算法在個性化推薦中可以經(jīng)澈爻剑看到户盯。個性化推薦算法是指每個人點(diǎn)擊進(jìn)來之后會進(jìn)行分類嵌施,判斷是否會對某些商品感興趣,然后進(jìn)行推薦先舷。模型函數(shù)如上圖中公式所示艰管,定義損失函數(shù),損失函數(shù)值越小說明模型擬合越好蒋川,尋找損失函數(shù)最小值的過程中用到了梯度下降算法牲芋。

早期,很多邏輯回歸算法都是基于MPI編程模型實(shí)現(xiàn)的捺球,MPI是消息傳遞接口缸浦,定義了Send,Receive氮兵,BC阿斯圖裂逐,AllReduce接口,支持單機(jī)多Instance和多機(jī)多Instance泣栈,具有高度靈活卜高,描述能力強(qiáng),大量用于科學(xué)計(jì)算南片。

MPI使用時有很多限制掺涛,首先必須提前知道階段任務(wù)在哪些計(jì)算節(jié)點(diǎn)上做。在大規(guī)模的計(jì)算集群里面疼进,所有資源的分配都是動態(tài)的薪缆,在任務(wù)執(zhí)行之前不知道任務(wù)會調(diào)度到哪些節(jié)點(diǎn)上,但是早期有很多算法需要基于MPI實(shí)現(xiàn)伞广,所以對MPI底層做了網(wǎng)絡(luò)拓?fù)涞慕⒓鹈保隽舜罅康闹貥?gòu),幫助MPI相關(guān)程序能夠基于分布式的調(diào)度系統(tǒng)調(diào)度起來嚼锄。

邏輯回歸的實(shí)現(xiàn)過程如上圖所示减拭。其中,有n個計(jì)算節(jié)點(diǎn)区丑,首先會加載訓(xùn)練樣本拧粪,計(jì)算梯度,然后本地加和刊苍,最后調(diào)用AllReduce接口去計(jì)算現(xiàn)在模型所在的位置既们。MPI本身還存在一些缺點(diǎn):首先MPI中Worker的數(shù)目有上限,當(dāng)需要更多節(jié)點(diǎn)的時候會發(fā)生性能下降正什。

參數(shù)服務(wù)器Parameter Server

Parameter Server和MPI相比啥纸,在更高的層次定義了編程模型和接口。Parameter Server中有三個角色婴氮,Server節(jié)點(diǎn)用來存儲模型斯棒,計(jì)算節(jié)點(diǎn)會加載部分模型盾致、訓(xùn)練數(shù)據(jù),每輪迭代時每個節(jié)點(diǎn)會計(jì)算下個梯度荣暮,將節(jié)點(diǎn)和Server進(jìn)行通信庭惜。Coordinator用來判斷訓(xùn)練是否結(jié)束。此外穗酥,Parameter Server支持異步通信接口护赊,不需要在不同計(jì)算節(jié)點(diǎn)間做同步。

阿里在2014年下半年砾跃,獨(dú)立自研了PAI Parameter Server計(jì)算模型骏啰,已在集團(tuán)內(nèi)大規(guī)模使用。具體做的工作如上圖所示抽高。MPI的一個缺點(diǎn)是不支持容錯判耕,而每天上萬臺的集群會出現(xiàn)各種各樣的故障,PAI Parameter Server針對大規(guī)模集群做了節(jié)點(diǎn)容錯功能翘骂。Parameter Server集成很多算法壁熄,比如邏輯回歸等。

深度學(xué)習(xí)

深度學(xué)習(xí)是人工神經(jīng)網(wǎng)絡(luò)的延伸碳竟,相比之下能夠支持更深的網(wǎng)絡(luò)草丧。上圖中,Alexnet是卷積神經(jīng)網(wǎng)絡(luò)瞭亮,總共有8層網(wǎng)絡(luò)方仿,深度學(xué)習(xí)如果想要獲得更好的效果固棚,必須要構(gòu)建一個更深的神經(jīng)網(wǎng)絡(luò)统翩。隨著神經(jīng)網(wǎng)絡(luò)變深,需要更多的參數(shù)此洲,并且模型也會更加龐大厂汗。多級訓(xùn)練則需要更高量級的通信量。

TensorFlow

TensorFlow是谷歌第二代的深度學(xué)習(xí)框架呜师,支持各種神經(jīng)網(wǎng)絡(luò)娶桦,具有高度的靈活性,豐富的社區(qū)生態(tài)汁汗,支持CNN衷畦、RNN、LSTM等網(wǎng)絡(luò)知牌。

上圖中TensorFlow的例子是兩層神經(jīng)網(wǎng)絡(luò)做圖片的分類祈争。上面通過API定義訓(xùn)練圖片和測試數(shù)據(jù),接著定義了模型(softmax多分類模型)角寸,定義損失函數(shù)通過交叉熵來做菩混,最后選擇優(yōu)化函數(shù)找最優(yōu)點(diǎn)忿墅。下面部分則是通過API把訓(xùn)練數(shù)據(jù)喂給模型再計(jì)算當(dāng)前模型的準(zhǔn)確率。從上例中沮峡,可以看出疚脐,API非常靈活,基于Python邢疙,所以非常方便棍弄。

PAI TensorFlow

將TensorFlow遷移到PAI上之后,將TensorFlow作業(yè)服務(wù)化疟游,起TensorFlow作業(yè)的時候不需要去申請資源照卦、做訓(xùn)練數(shù)據(jù)的遷移;分布式調(diào)度(包括單機(jī)和多機(jī))只需提交模型訓(xùn)練Python文件乡摹;GPU卡映射役耕;多種數(shù)據(jù)源,結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)都支持聪廉;超參支持瞬痘,訓(xùn)練模型時會調(diào)整學(xué)習(xí)率,通過超參把參數(shù)存進(jìn)來就不需要每次都調(diào)整了板熊;模型在線預(yù)測框全,訓(xùn)練好模型之后可以部署到在線預(yù)測服務(wù)上,調(diào)用API獲知模型結(jié)果是否正面干签。

PAI Pluto(多機(jī)多卡Caffe)

Caffe早于TensorFlow津辩,Caffe可以認(rèn)為是第一代的深度學(xué)習(xí)框架,使用Caffe時需要通過配置文件配置深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)路容劳。目前喘沿,很多關(guān)于圖像的應(yīng)用都是基于Caffe來做的,使用CNN的網(wǎng)絡(luò)竭贩,比如身份證識別蚜印、駕照識別等。其缺點(diǎn)是單機(jī)留量,當(dāng)訓(xùn)練樣本多的時候訓(xùn)練時間非常長窄赋。將Caffe底層嫁接到OpenMPI通信框架上,可以支持多機(jī)Caffe楼熄,能夠達(dá)到線性加速比忆绰。

總結(jié)

前文提到了PAI上支持的各種編程模型,在公有云上希望把機(jī)器學(xué)習(xí)作為一個服務(wù)推出來可岂,包括數(shù)據(jù)上傳错敢、數(shù)據(jù)清洗、特征工程青柄、模型訓(xùn)練伐债、模型評價预侯。這樣就可以在PAI上做一站式的模型訓(xùn)練和預(yù)測。

原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末峰锁,一起剝皮案震驚了整個濱河市萎馅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌虹蒋,老刑警劉巖糜芳,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異魄衅,居然都是意外死亡峭竣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門晃虫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來皆撩,“玉大人,你說我怎么就攤上這事哲银】竿蹋” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵荆责,是天一觀的道長滥比。 經(jīng)常有香客問我,道長做院,這世上最難降的妖魔是什么盲泛? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮键耕,結(jié)果婚禮上寺滚,老公的妹妹穿的比我還像新娘。我一直安慰自己郁竟,他們只是感情好玛迄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布由境。 她就那樣靜靜地躺著棚亩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虏杰。 梳的紋絲不亂的頭發(fā)上讥蟆,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機(jī)與錄音纺阔,去河邊找鬼瘸彤。 笑死,一個胖子當(dāng)著我的面吹牛笛钝,可吹牛的內(nèi)容都是我干的质况。 我是一名探鬼主播愕宋,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼结榄!你這毒婦竟也來了中贝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤臼朗,失蹤者是張志新(化名)和其女友劉穎邻寿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體视哑,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绣否,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挡毅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒜撮。...
    茶點(diǎn)故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖跪呈,靈堂內(nèi)的尸體忽然破棺而出淀弹,到底是詐尸還是另有隱情,我是刑警寧澤庆械,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布薇溃,位于F島的核電站,受9級特大地震影響缭乘,放射性物質(zhì)發(fā)生泄漏沐序。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一堕绩、第九天 我趴在偏房一處隱蔽的房頂上張望策幼。 院中可真熱鬧,春花似錦奴紧、人聲如沸特姐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唐含。三九已至,卻和暖如春沫浆,著一層夾襖步出監(jiān)牢的瞬間捷枯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工专执, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留淮捆,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像攀痊,于是被迫代替她去往敵國和親桐腌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容