自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

大數(shù)據(jù) 分布式
機器學(xué)習(xí)即服務(wù),把機器學(xué)習(xí)作為服務(wù)對外推出,大家可以在平臺上使用比較先進的機器學(xué)習(xí)算法。將多種深度學(xué)習(xí)框架集成到PAI中,同時基于深度學(xué)習(xí)框架包裝成更加易用的組件。具備異構(gòu)的計算服務(wù)能力,把CPU計算能力和GPU計算能力統(tǒng)一調(diào)度起來,異構(gòu)的計算能力透明,大家的注意力是哪些機器學(xué)習(xí)算法可以幫助業(yè)務(wù),不用關(guān)心底層資源的申請和分配。PAI也支持在線預(yù)測服務(wù),模型一鍵發(fā)布。

[[195367]]

什么是PAI?

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

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

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

編程模型演進

MapReduce編程模型

 

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

 

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

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

MPI編程模型

 

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

早期,很多邏輯回歸算法都是基于MPI編程模型實現(xiàn)的,MPI是消息傳遞接口,定義了Send,Receive,BC阿斯圖,AllReduce接口,支持單機多Instance和多機多Instance,具有高度靈活,描述能力強,大量用于科學(xué)計算。

 

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

 

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

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

 

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

 

阿里在2014年下半年,獨立自研了PAI Parameter Server計算模型,已在集團內(nèi)大規(guī)模使用。具體做的工作如上圖所示。MPI的一個缺點是不支持容錯,而每天上萬臺的集群會出現(xiàn)各種各樣的故障,PAI Parameter Server針對大規(guī)模集群做了節(jié)點容錯功能。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)點。下面部分則是通過API把訓(xùn)練數(shù)據(jù)喂給模型再計算當(dāng)前模型的準(zhǔn)確率。從上例中,可以看出,API非常靈活,基于Python,所以非常方便。

PAI TensorFlow

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

PAI Pluto(多機多卡Caffe)

 

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

總結(jié)

 

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

責(zé)任編輯:龐桂玉 來源: 36大數(shù)據(jù)
相關(guān)推薦

2022-03-25 08:40:32

分布式架構(gòu)

2020-02-10 19:16:52

服務(wù)端高并發(fā)架構(gòu)

2019-09-25 09:01:53

高并發(fā)架構(gòu)分布式

2019-12-17 11:18:37

高并發(fā)分布式架構(gòu)

2021-09-09 15:45:17

機器學(xué)習(xí)人工智能Ray

2015-06-10 09:47:18

微軟分布式云平臺

2016-08-31 07:02:51

2023-10-26 18:10:43

分布式并行技術(shù)系統(tǒng)

2018-04-03 09:27:42

分布式架構(gòu)系統(tǒng)

2024-05-16 07:51:55

分布式系統(tǒng)架構(gòu)

2017-01-10 16:18:26

分布式存儲建設(shè)

2017-08-07 11:02:28

機器學(xué)習(xí)分布式Spark

2017-08-22 17:55:35

機器學(xué)習(xí)SparkTensorFlow

2018-11-07 09:23:21

服務(wù)器分布式機器學(xué)習(xí)

2022-08-03 20:18:58

機器學(xué)習(xí)算法分析數(shù)據(jù)

2017-12-05 14:55:56

2023-02-28 07:01:11

分布式緩存平臺

2021-11-29 08:18:22

架構(gòu)互聯(lián)網(wǎng)分布式

2020-10-20 09:38:15

分布式存儲Ceph
點贊
收藏

51CTO技術(shù)棧公眾號