分布式機(jī)器學(xué)習(xí)平臺的實現(xiàn)方法
本文選自紐約州里大學(xué)計算機(jī)系教授Murat和學(xué)生的論文,主要介紹了分布式機(jī)器學(xué)習(xí)平臺的實現(xiàn)方法并提出了未來的研究方向。
論文地址:www.cse.buffalo.edu/~demirbas/publications/DistMLplat.pdf
機(jī)器學(xué)習(xí)特別是深度學(xué)習(xí)為語音識別、圖像識別、自然語言處理、推薦系統(tǒng)和搜索引擎等領(lǐng)域帶來的革命性的突破。這些技術(shù)將會廣泛用于自動駕駛、醫(yī)療健康系統(tǒng)、客戶關(guān)系管理、廣告、物聯(lián)網(wǎng)等場景。在資本的驅(qū)動下機(jī)器學(xué)習(xí)的發(fā)展十分迅速,近年來我們看到了各個公司和研究機(jī)構(gòu)紛紛推出了自己的機(jī)器學(xué)習(xí)平臺。
由于需要訓(xùn)練的數(shù)據(jù)集合模型十分巨大,機(jī)器學(xué)習(xí)平臺通常采用分布式的架構(gòu)來實現(xiàn),會采用成百上千的機(jī)器來訓(xùn)練模型。在不遠(yuǎn)的未來,涉及機(jī)器學(xué)習(xí)的計算將會成為數(shù)據(jù)中心的主要任務(wù)。
由于作者分布式系統(tǒng)的專業(yè)背景,本文從分布式系統(tǒng)的角度來研究這些機(jī)器學(xué)習(xí)平臺,并分析他們在通信和控制方面的瓶頸。同時我們還研究并比較了這些平臺的容錯性以及編程實現(xiàn)的難易程度。
根據(jù)實現(xiàn)原理和架構(gòu)的不同,我們將分布式機(jī)器學(xué)習(xí)平臺分為三種不同的基本類型:
基礎(chǔ)數(shù)據(jù)流模式
參數(shù)服務(wù)器模型
先進(jìn)的數(shù)據(jù)流模式
對于三種主流的實現(xiàn)方式做了簡短的介紹,分別利用Spark、PMLS和Tensorflow(MXNet)來對三種類型進(jìn)行解讀。我們對不同的平臺進(jìn)行了比較,詳細(xì)的結(jié)果見論文。
在文章的最后我們總結(jié)了分布式機(jī)器學(xué)習(xí)平臺并對未來給出了一些建議,如果你很熟悉機(jī)分布式器學(xué)習(xí)平臺的話可以跳過這部分。
Spark
在Spark里計算通過有向無環(huán)圖來建模,其中每一個頂點代表一個彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset, RDD) ,而每條邊表示一種對于RDD的操作。RDD是一組分配在不同邏輯分區(qū)里的對象,這些邏輯分區(qū)直接在內(nèi)存里儲存并處理,當(dāng)內(nèi)存空間不夠的時候,部分分區(qū)會被存放在硬盤上,需要的時候再和內(nèi)存里的分區(qū)替換位置。
在有向無環(huán)圖中,從A定點指向B定點的E邊表示RDD A 通過E操作得到了RDD B。其中包含兩類操作:轉(zhuǎn)換類和動作類。轉(zhuǎn)換類操作意味著會產(chǎn)生新的RDD。
Spark的用戶通過建立對有向無環(huán)圖上RDD的轉(zhuǎn)換或者運行操作來實現(xiàn)計算。有向無環(huán)圖被編譯為一個個不同的級別,每一個級別包含一系列可以并行計算的任務(wù)(每個分區(qū)中一個任務(wù))。任務(wù)間較弱的依賴性有利于高效的執(zhí)行,而較強(qiáng)的依賴性則會因為大量的通信造成性能的嚴(yán)重下降。
Spark通過將這些有向無環(huán)圖分級分配到不同的機(jī)器上來實現(xiàn)分布式計算,上圖顯示了主節(jié)點的清晰的工作架構(gòu)。驅(qū)動包含兩個部分的調(diào)度器單元,DAG調(diào)度器和任務(wù)調(diào)度器,同時運行和協(xié)調(diào)不同機(jī)器間的工作。
Spark的設(shè)計初衷是用于通用的數(shù)據(jù)處理,并沒有針對機(jī)器學(xué)習(xí)的特殊設(shè)計。但是在MKlib工具包的幫助下,也能在Spark上實現(xiàn)機(jī)器學(xué)習(xí)。通常來說,Spark將模型參數(shù)存儲于驅(qū)動節(jié)點上,每一個機(jī)器在完成迭代之后都會與驅(qū)動節(jié)點通信更新參數(shù)。對于大規(guī)模的應(yīng)用來說,模型參數(shù)可能會存在一個RDD上。由于每次迭代后都會引入新的RDD來存儲和更新參數(shù),這會引入很多額外的負(fù)載。更新模型將會在機(jī)器和磁盤上引入數(shù)據(jù)的洗牌操作,這限制了Spark的大規(guī)模應(yīng)用。這是基礎(chǔ)數(shù)據(jù)流模型的缺陷,Spark對于機(jī)器學(xué)習(xí)的迭代操作并沒有很好的支持。
PMLS
PMLS是為機(jī)器學(xué)習(xí)量身打造的平臺,通過引入了參數(shù)服務(wù)器抽象概念來處理機(jī)器學(xué)習(xí)訓(xùn)練過程中頻繁的迭代。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
分布式機(jī)器學(xué)習(xí)平臺的實現(xiàn)方法下載
相關(guān)電子資料下載
- 如何創(chuàng)建FPGA控制的機(jī)器人手臂 49
- 機(jī)器學(xué)習(xí)需要掌握的九種工具盤點 16
- Hugging Face被限制訪問 404
- 《人工智能在指揮和控制系統(tǒng)中的決策支持》 133
- 生成式人工智能和機(jī)器學(xué)習(xí)正在這9個學(xué)科中打造未來 216
- 智慧礦山AI算法帶你解決皮帶運行難題! 51
- 人工智能領(lǐng)域存在第一性原理嗎? 53
- 英特爾啟動首個AI PC加速計劃,目標(biāo)2025年前為超100萬臺PC提供AI特性 223
- PLC就是邏輯控制嗎?PLC的網(wǎng)絡(luò)通信怎么樣? 51
- 機(jī)器學(xué)習(xí)常用的5種采樣方法盤點 45