分布式機(jī)器學(xué)習(xí)平臺(tái)的實(shí)現(xiàn)方法
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評論(0)
本文選自紐約州里大學(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。
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)重下降。
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%
下載地址
分布式機(jī)器學(xué)習(xí)平臺(tái)的實(shí)現(xiàn)方法下載
相關(guān)電子資料下載
- 如何創(chuàng)建FPGA控制的機(jī)器人手臂 49
- 機(jī)器學(xué)習(xí)需要掌握的九種工具盤點(diǎn) 16
- Hugging Face被限制訪問 404
- 《人工智能在指揮和控制系統(tǒng)中的決策支持》 133
- 生成式人工智能和機(jī)器學(xué)習(xí)正在這9個(gè)學(xué)科中打造未來 216
- 智慧礦山AI算法帶你解決皮帶運(yùn)行難題! 51
- 人工智能領(lǐng)域存在第一性原理嗎? 53
- 英特爾啟動(dòng)首個(gè)AI PC加速計(jì)劃,目標(biāo)2025年前為超100萬臺(tái)PC提供AI特性 223
- PLC就是邏輯控制嗎?PLC的網(wǎng)絡(luò)通信怎么樣? 51
- 機(jī)器學(xué)習(xí)常用的5種采樣方法盤點(diǎn) 45