亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网

 
當(dāng)前位置: 首頁 » 行業(yè)資訊 » 機(jī)器人»分布式機(jī)器學(xué)習(xí)平臺大比拼:Spark、PMLS、TensorFlow、MXNet
   

分布式機(jī)器學(xué)習(xí)平臺大比拼:Spark、PMLS、TensorFlow、MXNet

 46.1K
     [點(diǎn)擊復(fù)制]
放大字體  縮小字體 發(fā)布日期:2017-09-13   瀏覽次數(shù):534
核心提示:  本論文從散布式體系的角度展開針對以后一些機(jī)械進(jìn)修平臺的研討,綜述了這些平臺所應(yīng)用的架構(gòu)設(shè)計(jì),對這些平臺在通訊和掌握上的瓶頸、容錯(cuò)性和開辟難度停止剖析和比較,并對散布式機(jī)械進(jìn)修平臺的將來研討任務(wù)提出

  本論文從散布式體系的角度展開針對以后一些機(jī)械進(jìn)修平臺的研討,綜述了這些平臺所應(yīng)用的架構(gòu)設(shè)計(jì),對這些平臺在通訊和掌握上的瓶頸、容錯(cuò)性和開辟難度停止剖析和比較,并對散布式機(jī)械進(jìn)修平臺的將來研討任務(wù)提出了一些建議。文中的任務(wù)由 Murat Demirbas 傳授與他的研討生 Kuo Zhang 和 Salem Alqahtani 配合完成。

  機(jī)械進(jìn)修,特殊是深度進(jìn)修,已在語音辨認(rèn)、圖象辨認(rèn)和天然說話處置和近期在推舉及搜刮引擎等范疇上獲得了反動性的勝利。這些技巧在無人駕駛、數(shù)字醫(yī)療體系、CRM、告白、物聯(lián)網(wǎng)等范疇具有很好的運(yùn)用遠(yuǎn)景。固然,是資金引領(lǐng)和驅(qū)動了技巧的加快推動,使得我們在近期看到了一些機(jī)械進(jìn)修平臺的推出。

  斟酌到練習(xí)中所觸及的數(shù)據(jù)集和模子的范圍非常宏大,機(jī)械進(jìn)修平臺平日是散布式平臺,安排了數(shù)十個(gè)甚至數(shù)百個(gè)并交運(yùn)行的盤算節(jié)點(diǎn)對模子做練習(xí)。據(jù)估量在不遠(yuǎn)的未來,數(shù)據(jù)中間的年夜多半義務(wù)都邑是機(jī)械進(jìn)修義務(wù)。

  我來自于散布式體系研討范疇,是以我們斟酌從散布式體系的角度展開針對這些機(jī)械進(jìn)修平臺的研討,剖析這些平臺在通訊和掌握上的瓶頸。我們還斟酌了這些平臺的容錯(cuò)性和易編程性。

  我們從設(shè)計(jì)辦法大將機(jī)械進(jìn)修平臺劃分為三個(gè)根本種別,分離是:根本數(shù)據(jù)流、參數(shù) - 辦事器模子和高等數(shù)據(jù)流。

  上面我們將對每類辦法做扼要引見,以 Apache Spark 為例引見根本數(shù)據(jù)流,以 PMLS(Petuum)為例引見參數(shù)辦事器模子,而高等數(shù)據(jù)流則應(yīng)用 TensorFlow 和 MXNet 為例。我們比較了上述各平臺的機(jī)能并給出了一系列的評價(jià)成果。要懂得具體的評價(jià)成果,可參考我們的論文。遺憾的是,作為一個(gè)小型研討團(tuán)隊(duì),我們沒法展開年夜范圍的評價(jià)。

  在本篇博文的最初,我給出了一些結(jié)論性要點(diǎn),并對散布式機(jī)械進(jìn)修平臺的將來研討任務(wù)提出了一些建議。對這些散布式機(jī)械進(jìn)修平臺已有必定懂得的讀者,可以直接跳到本文開頭。

  Spark

  在 Spark 中,盤算被建模為一種有向無環(huán)圖(DAG),圖中的每一個(gè)極點(diǎn)表現(xiàn)一個(gè) RDD,每條邊表現(xiàn)了 RDD 上的一個(gè)操作。RDD 由一系列被切分的對象(Partition)構(gòu)成,這些被切分的對象在內(nèi)存中存儲并完成盤算,也會在 Shuffle 進(jìn)程中溢出(Overflow)到磁盤上

  在 DAG 中,一條從極點(diǎn) A 到 B 的有向邊 E,表現(xiàn)了 RDD B 是在 RDD A 上履行操作 E 的成果。操作分為“轉(zhuǎn)換”(Transformation)和“舉措(Action)”兩類。轉(zhuǎn)換操作(例如 map、filter 和 join)運(yùn)用于某個(gè) RDD 上,轉(zhuǎn)換操作的輸入是一個(gè)新的 RDD。

  Spark 用戶將盤算建模為 DAG,該 DAG 表現(xiàn)了在 RDD 上履行的轉(zhuǎn)換和舉措。DAG 進(jìn)而被編譯為多個(gè) Stage。每一個(gè) Stage 履行為一系列并交運(yùn)行的義務(wù)(Task),每一個(gè)分區(qū)(Partition)對應(yīng)于一個(gè)義務(wù)。這里,無限(Narrow)的依附關(guān)系將有益于盤算的高效履行,而廣泛(Wide)的依附關(guān)系則會引入瓶頸,由于如許的依附關(guān)系引入了通訊密集的 Shuffle 操作,這打斷了操作流 。

  Spark 的散布式履行是經(jīng)由過程將 DAG Stage 劃分到分歧的盤算節(jié)點(diǎn)完成的。上圖清楚地展現(xiàn)了這類“主機(jī)(master)- 任務(wù)者(worker)”架構(gòu)。驅(qū)動器(Driver)包括有兩個(gè)調(diào)劑器(Scheduler)組件,即 DAG 調(diào)劑器和義務(wù)調(diào)劑器。調(diào)劑器對任務(wù)者分派義務(wù),并調(diào)和任務(wù)者。

  Spark 是為通用數(shù)據(jù)處置而設(shè)計(jì)的,并不是公用于機(jī)械進(jìn)修義務(wù)。要在 Spark 上運(yùn)轉(zhuǎn)機(jī)械進(jìn)修義務(wù),可使用 MLlib for Spark。假如采取根本設(shè)置的 Spark,那末模子參數(shù)存儲在驅(qū)動器節(jié)點(diǎn)上,在每次迭代后經(jīng)由過程任務(wù)者和驅(qū)動器間的通訊更新參數(shù)。假如是年夜范圍安排機(jī)械進(jìn)修義務(wù),那末驅(qū)動器能夠沒法存儲一切的模子參數(shù),這時(shí)候就須要應(yīng)用 RDD 去包容一切的參數(shù)。這將引入年夜量的額定開支,由于為了包容更新的模子參數(shù),須要在每次迭代中創(chuàng)立新的 RDD。更新模子會觸及在機(jī)械和磁盤間的數(shù)據(jù) Shuffle,進(jìn)而限制了 Spark 的擴(kuò)大性。這恰是根本數(shù)據(jù)流模子(即 DAG)的短板地點(diǎn)。Spark 其實(shí)不能很好地支撐機(jī)械進(jìn)修中的迭代運(yùn)算。

  PMLS

  PMLS 是專門為機(jī)械進(jìn)修義務(wù)而設(shè)計(jì)的。它引入了稱為“參數(shù) - 辦事器”(Parameter-Server,PS)的籠統(tǒng),這類籠統(tǒng)是為了支撐迭代密集的練習(xí)進(jìn)程。

  PS(在圖中以綠色方框所示)以散布式 key-value 數(shù)據(jù)表情勢存在于內(nèi)存中,它是可復(fù)制和分片的。每一個(gè)節(jié)點(diǎn)(node)都是模子中某個(gè)分片的主節(jié)點(diǎn)(參數(shù)空間),并作為其它分片的二級節(jié)點(diǎn)或復(fù)制節(jié)點(diǎn)。如許 PS 在節(jié)點(diǎn)數(shù)目上的擴(kuò)大性很好。

  PS 節(jié)點(diǎn)存儲并更新模子參數(shù),并呼應(yīng)來自于任務(wù)者的要求。任務(wù)者從本身的當(dāng)?shù)?PS 拷貝上要求最新的模子參數(shù),并在分派給它們的數(shù)據(jù)集分區(qū)上履行盤算。

  PMLS 也采取了 SSP(Stale Synchronous Parallelism)模子。比擬于 BSP(Bulk Synchronous Parellelism)模子 ,SSP 放寬了每次迭代停止時(shí)各個(gè)機(jī)械需做同步的請求。為完成同步,SSP 許可任務(wù)者間存在必定水平上的分歧步,并確保了最快的任務(wù)者不會搶先最慢的任務(wù)者 s 輪迭代以上。因?yàn)樘幹眠M(jìn)程處于誤差所許可的規(guī)模內(nèi),這類非嚴(yán)厲的分歧性模子仍然實(shí)用于機(jī)械進(jìn)修。我已經(jīng)揭橥過一篇博文專門引見這一機(jī)制。

  TensorFlow

  Google 給出了一個(gè)基于散布式機(jī)械進(jìn)修平臺的參數(shù)辦事器模子,稱為“DistBelief”(此處是我對 DistBelief 論文的綜述)。就我所知,年夜家對 DistBelief 的不滿足的地方重要在于,它在編寫機(jī)械進(jìn)修運(yùn)用時(shí)須要混雜一些底層代碼。Google 想使其任一雇員都可以在無需精曉散布式履行的情形下編寫機(jī)械進(jìn)修代碼。恰是出于統(tǒng)一緣由,Google 對年夜數(shù)據(jù)處置編寫了 MapReduce 框架。

  TensorFlow 是一種設(shè)計(jì)用于完成這一目的的平臺。它采取了一種更高等的數(shù)據(jù)流處置范式,個(gè)中表現(xiàn)盤算的圖不再須要是 DAG,圖中可以包含環(huán),并支撐可變狀況。我以為 TensorFlow 的設(shè)計(jì)在必定水平上遭到了 Naiad 設(shè)計(jì)理念的影響。

  TensorFlow 將盤算表現(xiàn)為一個(gè)由節(jié)點(diǎn)和邊構(gòu)成的有向圖。節(jié)點(diǎn)表現(xiàn)盤算操作或可變狀況(例如 Variable),邊表現(xiàn)節(jié)點(diǎn)間通訊的多維數(shù)組,這類多維數(shù)據(jù)稱為“Tensor”。TensorFlow 須要用戶靜態(tài)地聲明邏輯盤算圖,并經(jīng)由過程將圖重寫和劃分到機(jī)械上完成散布式盤算。需解釋的是,MXNet,特殊是 DyNet,應(yīng)用了一種靜態(tài)界說的圖。這簡化了編程,并進(jìn)步了編程的靈巧性。

  如上圖所示,在 TensorFlow 中,散布式機(jī)械進(jìn)修練習(xí)應(yīng)用了參數(shù) - 辦事器辦法。當(dāng)在 TensorFlow 中應(yīng)用 PS 籠統(tǒng)時(shí),就應(yīng)用了參數(shù) - 辦事器和數(shù)據(jù)并行。TensorFlow 宣稱可以完成更龐雜的義務(wù),然則這須要用戶編寫代碼以通向那些未摸索的范疇。

  MXNet

  MXNet 是一個(gè)協(xié)同開源項(xiàng)目,源自于在 2015 年涌現(xiàn)的 CXXNet、Minverva 和 Purines 等深度進(jìn)修項(xiàng)目。相似于 TensorFlow,MXNet 也是一種數(shù)據(jù)流體系,支撐具有可變狀況的有環(huán)盤算圖,并支撐應(yīng)用參數(shù) - 辦事器模子的練習(xí)盤算。異樣,MXNet 也對多個(gè) CPU/GPU 上的數(shù)據(jù)并行供給了很好的支撐,并可完成模子并行。MXNet 支撐同步的和異步的練習(xí)盤算。下圖顯示了 MXNet 的重要組件。個(gè)中,運(yùn)轉(zhuǎn)時(shí)依附引擎剖析盤算進(jìn)程中的依附關(guān)系,對不存在互相依附關(guān)系的盤算做并行處置。MXNet 在運(yùn)轉(zhuǎn)時(shí)依附引擎之上供給了一個(gè)中央層,用于盤算圖和內(nèi)存的優(yōu)化。

  MXNet 應(yīng)用檢討點(diǎn)機(jī)制支撐根本的容錯(cuò),供給了對模子的 save 和 load 操作。save 操作將模子參數(shù)寫入到檢討點(diǎn)文件,load 操作從檢討點(diǎn)文件中讀取模子參數(shù)。

  MXNet 應(yīng)用描寫式編程說話表述盤算為一個(gè)有向圖,也支撐應(yīng)用一些指令式編程去界說 tensor 的盤算和掌握流。MXNet 供給了多種說話(例如 C++、Python、R 和 Scala 等)編寫的客戶端 API。與 TensorFlow 一樣,MXNet 的后臺焦點(diǎn)引擎庫異樣是應(yīng)用 C++ 編寫的。

  部門評價(jià)成果

  在我們的試驗(yàn)中,應(yīng)用了 Amazon EC2 m4.xlarge 實(shí)例。每一個(gè)實(shí)例具有 4 個(gè)由 Intel Xeon E5-2676 v3 完成的 vCPU,及 16GB 的內(nèi)存,EBS 帶寬是 750Mbps。我們對兩種罕見的機(jī)械進(jìn)修義務(wù)停止了試驗(yàn),它們分離是二分類邏輯斯蒂回歸和應(yīng)用多層神經(jīng)收集的圖象分類。本文中只給出了部門成果圖,更多的試驗(yàn)成果可拜見我們的論文。需指出的是,我們的試驗(yàn)具有一些局限性。起首,我們應(yīng)用機(jī)械數(shù)目不年夜,不克不及測試擴(kuò)大性。其次,我們也只應(yīng)用了 CPU 盤算,并未測試 GPU 的應(yīng)用情形。

  該圖展現(xiàn)了各個(gè)平臺對邏輯斯蒂回歸的盤算速度。PMLS 和 MXNet 是最快的兩個(gè)體系,TensorFlow 速度最慢,而 Spark 介于二者之間。對此,我們剖析以為是由多個(gè)緣由招致的。起首,比擬于 Spark 和 TensorFlow,PMLS 是一個(gè)輕量級體系,它是采取高機(jī)能 C++ 編程說話完成的,而 Spark 是應(yīng)用運(yùn)轉(zhuǎn)在 JVM 上的 Scala 說話編寫的。其次,PMLS 中包括的籠統(tǒng)較少,而 TensorFlow 中則具有過量的籠統(tǒng)。籠統(tǒng)增長了體系的龐雜度,并招致運(yùn)轉(zhuǎn)時(shí)開支。

  該圖展現(xiàn)了 DNN 在各個(gè)平臺上的速度。比擬于單層神經(jīng)收集,當(dāng)成長到兩層神經(jīng)收集時(shí),因?yàn)轫氁嗟牡P算,Spark 的機(jī)能降低。我們將模子參數(shù)存儲在 Spark 的驅(qū)動器中,由于驅(qū)動器可以包容這些參數(shù)。然則假如我們應(yīng)用 RDD 堅(jiān)持參數(shù),并在每次迭代后做更新,成果能夠會更差。

  該圖展現(xiàn)了平臺的 CPU 占用率。Spark 運(yùn)用看上去具有偏高的 CPU 占用率,這重要來自于序列化的開支。有些后期任務(wù)也指出了統(tǒng)一成績。

  結(jié)論及將來的研討偏向

  機(jī)械進(jìn)修和深度進(jìn)修運(yùn)用是高度可并行的,然則從并發(fā)算法角度看,要做到其實(shí)不那末輕易。可以說,參數(shù) - 辦事器辦法最合適于散布式機(jī)械進(jìn)修平臺的練習(xí)義務(wù)。

  斟酌到瓶頸,收集仍然是散布式機(jī)械進(jìn)修運(yùn)用的瓶頸。比擬于更高等的通用數(shù)據(jù)流平臺,更主要的是要提出對數(shù)據(jù)和模子的更好組織和介入機(jī)制。應(yīng)將數(shù)據(jù)和模子視作一等國民。

  另外,還有其它一些身分對平臺具有奧妙的影響。關(guān)于 Spark,CPU 開支成為比收集局限更嚴(yán)重的瓶頸成績。Spark 應(yīng)用的編程說話是 Scala 等 JVM 說話,這對 Spark 的機(jī)能具有明顯的影響。是以存在著對更好的監(jiān)控對象和對散布式機(jī)械進(jìn)修平臺機(jī)能猜測的需求。近期曾經(jīng)涌現(xiàn)了一些對象,例如 Ernest 和 CherryPick,它們處理了一些 Spark 數(shù)據(jù)處置運(yùn)用上的成績。

  關(guān)于支撐機(jī)械進(jìn)修的運(yùn)轉(zhuǎn)時(shí)散布式體系,仍然存在著一些開放成績,例如資本調(diào)劑和運(yùn)轉(zhuǎn)時(shí)機(jī)能改良。斟酌到運(yùn)用的運(yùn)轉(zhuǎn)時(shí)監(jiān)控和機(jī)能剖析,下一代的散布式機(jī)械進(jìn)修平臺應(yīng)供給對運(yùn)轉(zhuǎn)于平臺上義務(wù)的盤算、內(nèi)存、收集資本的運(yùn)轉(zhuǎn)時(shí)彈性設(shè)置裝備擺設(shè)和調(diào)劑等才能。

  在編程和軟件工程的支撐上,也異樣有一些開放成績。甚么是合適機(jī)械進(jìn)修運(yùn)用的散布式編程籠統(tǒng)?這些成績還須要做進(jìn)一步的研討,并對散布式機(jī)械進(jìn)修運(yùn)用停止磨練和驗(yàn)證,例如應(yīng)用特定成績輸出測試 DNN。

  參考文獻(xiàn)

  論文原文:https://www.cse.buffalo.edu/~demirbas/publications/DistMLplat.pdf

  Learning Machine Learning: A beginner's journey,https://muratbuffalo.blogspot.com/2016/12/learning-machine-learning-beginners.html

  Paper Review. Petuum: A new platform for distributed machine learning on big data,https://muratbuffalo.blogspot.com/2016/04/petuum-new-platform-for-distributed.html

  Google DistBelief paper: Large Scale Distributed Deep Networks,https://muratbuffalo.blogspot.com/2017/01/谷歌-distbelief-paper-large-scale.html

  Paper summary: Making sense of Performance in Data Analytics frameworks (NSDI 15),https://muratbuffalo.blogspot.com/2017/05/paper-summary-making-sense-of.html

  Naiad: A timely dataflow system,http://muratbuffalo.blogspot.hk/2014/03/naiad-timely-dataflow-system.html

  Paper summary: Making sense of Performance in Data Analytics frameworks (NSDI 15),http://muratbuffalo.blogspot.hk/2017/05/paper-summary-making-sense-of.html

  https://spark-summit.org/east-2017/events/ernest-efficient-performance-prediction-for-advanced-analytics-on-apache-spark/

  https://blog.acolyer.org/2017/05/04/cherrypick-adaptively-unearthing-the-best-cloud-configurations-for-big-data-analytics/

  作者引見

  Murat Demirbas傳授供職于 University at Buffalo,SUNY 的盤算機(jī)迷信與技巧系

只要你關(guān)注機(jī)器人,你就無法錯(cuò)過睿慕課

 
 
 
[ 行業(yè)資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 關(guān)閉窗口 ]
 
 
展會更多+
視頻更多+
點(diǎn)擊排行
 
主站蜘蛛池模板: 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 电动液压篮球架_圆管地埋式篮球架_移动平箱篮球架-强森体育 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 卸料器-卸灰阀-卸料阀-瑞安市天蓝环保设备有限公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 云杂志网-学术期刊-首页 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 南京办公用品网-办公文具用品批发-打印机耗材采购 | 棉柔巾代加工_洗脸巾oem_一次性毛巾_浴巾生产厂家-杭州禾壹卫品科技有限公司 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 驾驶人在线_专业学车门户网站 | ZHZ8耐压测试仪-上海胜绪电气有限公司 | 家庭教育吧-在线家庭教育平台,专注青少年家庭教育 | 「银杏树」银杏树行情价格_银杏树种植_山东程锦园林 | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 | 净气型药品柜-试剂柜-无管道净气型通风柜-苏州毕恩思 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 模切之家-专注服务模切行业的B2B平台! | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | 全球化工设备网—化工设备,化工机械,制药设备,环保设备的专业网络市场。 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 |