您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

分布式機(jī)器學(xué)習(xí)平臺(tái)的實(shí)現(xiàn)方法

大?。?/span>0.5 MB 人氣: 2017-09-29 需要積分:3

  本文選自紐約州里大學(xué)計(jì)算機(jī)系教授Murat和學(xué)生的論文,主要介紹了分布式機(jī)器學(xué)習(xí)平臺(tái)的實(shí)現(xiàn)方法并提出了未來的研究方向。

  論文地址:www.cse.buffalo.edu/~demirbas/publications/DistMLplat.pdf

  機(jī)器學(xué)習(xí)特別是深度學(xué)習(xí)語音識(shí)別、圖像識(shí)別、自然語言處理、推薦系統(tǒng)和搜索引擎等領(lǐng)域帶來的革命性的突破。這些技術(shù)將會(huì)廣泛用于自動(dòng)駕駛、醫(yī)療健康系統(tǒng)、客戶關(guān)系管理、廣告、物聯(lián)網(wǎng)等場景。在資本的驅(qū)動(dòng)下機(jī)器學(xué)習(xí)的發(fā)展十分迅速,近年來我們看到了各個(gè)公司和研究機(jī)構(gòu)紛紛推出了自己的機(jī)器學(xué)習(xí)平臺(tái)。

  由于需要訓(xùn)練的數(shù)據(jù)集合模型十分巨大,機(jī)器學(xué)習(xí)平臺(tái)通常采用分布式的架構(gòu)來實(shí)現(xiàn),會(huì)采用成百上千的機(jī)器來訓(xùn)練模型。在不遠(yuǎn)的未來,涉及機(jī)器學(xué)習(xí)的計(jì)算將會(huì)成為數(shù)據(jù)中心的主要任務(wù)。

  由于作者分布式系統(tǒng)的專業(yè)背景,本文從分布式系統(tǒng)的角度來研究這些機(jī)器學(xué)習(xí)平臺(tái),并分析他們在通信和控制方面的瓶頸。同時(shí)我們還研究并比較了這些平臺(tái)的容錯(cuò)性以及編程實(shí)現(xiàn)的難易程度。

  根據(jù)實(shí)現(xiàn)原理和架構(gòu)的不同,我們將分布式機(jī)器學(xué)習(xí)平臺(tái)分為三種不同的基本類型:

  基礎(chǔ)數(shù)據(jù)流模式

  參數(shù)服務(wù)器模型

  先進(jìn)的數(shù)據(jù)流模式

  對于三種主流的實(shí)現(xiàn)方式做了簡短的介紹,分別利用Spark、PMLS和Tensorflow(MXNet)來對三種類型進(jìn)行解讀。我們對不同的平臺(tái)進(jìn)行了比較,詳細(xì)的結(jié)果見論文。

  在文章的最后我們總結(jié)了分布式機(jī)器學(xué)習(xí)平臺(tái)并對未來給出了一些建議,如果你很熟悉機(jī)分布式器學(xué)習(xí)平臺(tái)的話可以跳過這部分。

  Spark

  在Spark里計(jì)算通過有向無環(huán)圖來建模,其中每一個(gè)頂點(diǎn)代表一個(gè)彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset, RDD) ,而每條邊表示一種對于RDD的操作。RDD是一組分配在不同邏輯分區(qū)里的對象,這些邏輯分區(qū)直接在內(nèi)存里儲(chǔ)存并處理,當(dāng)內(nèi)存空間不夠的時(shí)候,部分分區(qū)會(huì)被存放在硬盤上,需要的時(shí)候再和內(nèi)存里的分區(qū)替換位置。

  在有向無環(huán)圖中,從A定點(diǎn)指向B定點(diǎn)的E邊表示RDD A 通過E操作得到了RDD B。其中包含兩類操作:轉(zhuǎn)換類和動(dòng)作類。轉(zhuǎn)換類操作意味著會(huì)產(chǎn)生新的RDD。

  分布式機(jī)器學(xué)習(xí)平臺(tái)的實(shí)現(xiàn)方法

  Spark的用戶通過建立對有向無環(huán)圖上RDD的轉(zhuǎn)換或者運(yùn)行操作來實(shí)現(xiàn)計(jì)算。有向無環(huán)圖被編譯為一個(gè)個(gè)不同的級(jí)別,每一個(gè)級(jí)別包含一系列可以并行計(jì)算的任務(wù)(每個(gè)分區(qū)中一個(gè)任務(wù))。任務(wù)間較弱的依賴性有利于高效的執(zhí)行,而較強(qiáng)的依賴性則會(huì)因?yàn)榇罅康耐ㄐ旁斐尚阅艿膰?yán)重下降。

  分布式機(jī)器學(xué)習(xí)平臺(tái)的實(shí)現(xiàn)方法

  Spark通過將這些有向無環(huán)圖分級(jí)分配到不同的機(jī)器上來實(shí)現(xiàn)分布式計(jì)算,上圖顯示了主節(jié)點(diǎn)的清晰的工作架構(gòu)。驅(qū)動(dòng)包含兩個(gè)部分的調(diào)度器單元,DAG調(diào)度器和任務(wù)調(diào)度器,同時(shí)運(yùn)行和協(xié)調(diào)不同機(jī)器間的工作。

  Spark的設(shè)計(jì)初衷是用于通用的數(shù)據(jù)處理,并沒有針對機(jī)器學(xué)習(xí)的特殊設(shè)計(jì)。但是在MKlib工具包的幫助下,也能在Spark上實(shí)現(xiàn)機(jī)器學(xué)習(xí)。通常來說,Spark將模型參數(shù)存儲(chǔ)于驅(qū)動(dòng)節(jié)點(diǎn)上,每一個(gè)機(jī)器在完成迭代之后都會(huì)與驅(qū)動(dòng)節(jié)點(diǎn)通信更新參數(shù)。對于大規(guī)模的應(yīng)用來說,模型參數(shù)可能會(huì)存在一個(gè)RDD上。由于每次迭代后都會(huì)引入新的RDD來存儲(chǔ)和更新參數(shù),這會(huì)引入很多額外的負(fù)載。更新模型將會(huì)在機(jī)器和磁盤上引入數(shù)據(jù)的洗牌操作,這限制了Spark的大規(guī)模應(yīng)用。這是基礎(chǔ)數(shù)據(jù)流模型的缺陷,Spark對于機(jī)器學(xué)習(xí)的迭代操作并沒有很好的支持。

  PMLS

  PMLS是為機(jī)器學(xué)習(xí)量身打造的平臺(tái),通過引入了參數(shù)服務(wù)器抽象概念來處理機(jī)器學(xué)習(xí)訓(xùn)練過程中頻繁的迭代。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?