




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 分布式機器學習平臺比較21CTO 微信號 we21cto功能介紹 21CTO(21)是一個高質(zhì)量、個性化的學習與服務(wù)平臺。提供教育培訓、學習分享、人脈資源等產(chǎn)品,匯聚國內(nèi)外IT互聯(lián)網(wǎng)最優(yōu)秀的CTO&技術(shù)專家,連接人與知識的價值服務(wù)。摘要:機器學習,特別是深度學習(DL),最近已經(jīng)在語音識別、圖像識別、自然語言處理、推薦/搜索引擎等領(lǐng)域獲得了成功。這些技術(shù)在自主駕駛汽車、數(shù)字衛(wèi)生系統(tǒng)、CRM、廣告、物聯(lián)網(wǎng)等方面都存在著非常有前景的應(yīng)用。當然,資金驅(qū)動著這些技術(shù)以極快的速度向前發(fā)展,而且,最近我們已經(jīng)看到了有很多機器學習平臺正在建立起來。本文調(diào)查分析了多個分布式機器學習平臺所使用的設(shè)計方法,并提
2、出了未來的研究方向。這是我與我的學生KuoZhang、Salem Alqahtani通力合作的成果。我們在2016年的秋天寫了這篇論文,并且將在ICCCN17(InternationalConference on Computer Communications and Networks,計算機通信與網(wǎng)絡(luò)國際會議)上介紹這篇文章。機器學習,特別是深度學習(DL),最近已經(jīng)在語音識別、圖像識別、自然語言處理、推薦/搜索引擎等領(lǐng)域獲得了成功。這些技術(shù)在自主駕駛汽車、數(shù)字衛(wèi)生系統(tǒng)、CRM、廣告、物聯(lián)網(wǎng)等方面都存在著非常有前景的應(yīng)用。當然,資金驅(qū)動著這些技術(shù)以極快的速度向前發(fā)展,而且,最近我們已經(jīng)看到了
3、有很多機器學習平臺正在建立起來。由于在訓練過程中要涉及到龐大的數(shù)據(jù)集和模型的大小,因此機器學習平臺通常是分布式平臺,而且并行運行了10到100作業(yè)來訓練模型。據(jù)估計,在不久的將來,數(shù)據(jù)中心的絕大多數(shù)任務(wù)將是機器學習任務(wù)。我的知識背景是分布式系統(tǒng),因此,我們決定從分布式系統(tǒng)的角度來研究這些機器學習平臺,分析這些平臺的通信和控制瓶頸。我們還研究了這些平臺的容錯性和編程的難易性。我們根據(jù)三種基本的設(shè)計方法對分布式機器學習平臺進行了分類,分別是:1. 基本數(shù)據(jù)流2. 參數(shù)服務(wù)器模型3. 高級數(shù)據(jù)流我們將對每一種方法進行簡單的介紹,我們使用Apache Spark作為基本數(shù)據(jù)流方法的示例,使用PMLS(
4、Petuum)作為參數(shù)服務(wù)器模型的示例,使用TensorFlow和MXNet作為高級數(shù)據(jù)流模型的示例。 我們將提供它們之間的性能比較評估結(jié)果。有關(guān)更多的評估結(jié)果,請參閱本文最開始提到的那篇論文。不幸的是,我們無法作為一個來自學術(shù)界的小團隊進行規(guī)模上的評估。在這篇文章的末尾,我對分布式機器學習平臺的未來工作提出了總結(jié)性意見和建議。如果你已經(jīng)有這些分布式機器學習平臺的使用經(jīng)驗,可以直接跳到文章的末尾。Spark在Spark中,計算被建模為有向無環(huán)圖(DAG, directed acyclic graph),其中的每個頂點表示彈性分布式數(shù)據(jù)集(RDD,Resilient Distributed Da
5、taset),每個邊表示RDD上的操作。 RDD是以邏輯分塊進行劃分的對象集合,它緩存在內(nèi)存中,當內(nèi)存不夠時,會保存到磁盤上。在DAG上,從頂點A到頂點B的邊E表示RDD B是在RDD A上執(zhí)行操作E的結(jié)果。有兩種類型的操作:轉(zhuǎn)換和動作。轉(zhuǎn)換(例如,映射、過濾、連接)就是對RDD執(zhí)行操作并產(chǎn)生新的RDD。Spark用戶將計算作為DAG進行建模,該DAG會轉(zhuǎn)換并運行RDD上的動作。DAG會分階段進行編譯。每個階段將作為一系列的任務(wù)并行執(zhí)行(每個分區(qū)一個任務(wù))。窄的依賴關(guān)系有利于高效的執(zhí)行,而廣泛的依賴關(guān)系會帶來瓶頸,因為它們會破壞流水線,而且需要通信密集的隨機操作。Spark中的分布式執(zhí)行是通過
6、對機器上的DAG階段進行分塊來實現(xiàn)的。這個圖清晰地展示了master-worker架構(gòu)。Driver包含了兩個調(diào)度組件,DAG調(diào)度器和任務(wù)調(diào)度器,用于給workers分配任務(wù),以及協(xié)調(diào)workers。Spark是為一般數(shù)據(jù)處理而不是為機器學習設(shè)計的。然而,利用專用于Spark的MLlib,使得在Spark上進行機器學習成為可能。在基本的設(shè)置中,Spark將模型參數(shù)存儲在driver節(jié)點中,而workers與driver進行通信,以便在每次迭代后更新參數(shù)。對于大規(guī)模的部署來說,模型參數(shù)可能不適合保存在driver中,而應(yīng)該將其作為RDD進行維護。這引入了很大的開銷,因為需要在每次迭代中創(chuàng)建新的R
7、DD以保存更新過的模型參數(shù)。更新模型包括在機器/磁盤之間混洗數(shù)據(jù),這限制了Spark的可擴展性。這是Spark中基本數(shù)據(jù)流模型(DAG)不足的地方。 Spark不支持機器學習所需的迭代。PMLSPMLS從誕生的那一天起就是專門為機器學習設(shè)計的。它引入了參數(shù)服務(wù)器(parameter-server,簡寫為PS)抽象用于迭代密集型機器學習訓練過程。PS(在圖中用綠色的框表示)用于分布式內(nèi)存鍵值的存儲。它復制和分片的方式是這樣的:每個節(jié)點既是模型中某個分片的主節(jié)點,又是其他分片的輔節(jié)點(或副本)。因此,PS可以通過增加節(jié)點數(shù)量的方法很容易地進行擴展。PS節(jié)點用于存儲和更新模型參數(shù),并響應(yīng)worker
8、s的請求。workers從本地PS副本中請求最新的模型參數(shù),并對分配給自己的數(shù)據(jù)集分區(qū)進行計算。PMLS還采用了SSP(Stale Synchronous Parallelism,變味的同步并行)模型,它放寬了BSP(Bulk SynchronousParellelism,批量同步并行)模型中workers在每次迭代最后要進行同步操作的要求。 SSP減少了workers同步的難度,確保最快的worker不能在最慢的worker之前迭代。由于對過程中產(chǎn)生的噪聲具有一定的容錯能力,這個寬松的一致性模型仍可適用于機器學習訓練。 我已經(jīng)在2016年4月的一篇博客文章里介紹了這一點。TensorFlow
9、Google有一個基于分布式機器學習平臺的參數(shù)服務(wù)器模型,名為DistBelief。這是我對DistBelief論文的評論。我在這篇文章中指出,人們對DistBelief主要的抱怨是編寫機器學習應(yīng)用程序的時候會弄亂底層代碼。Google希望公司內(nèi)的任何員工無需精通分布式執(zhí)行就能編寫機器學習代碼,這也是Google為大數(shù)據(jù)處理編寫MapReduce框架的原因。所以,TensorFlow正是為了實現(xiàn)這一目標而設(shè)計的。TensorFlow采用了數(shù)據(jù)流范例,但在它的高級版本中,計算圖不需要是DAG,但可以包括循環(huán)和支持可變狀態(tài)。我想,可能是Naiad的設(shè)計對TensorFlow產(chǎn)生了一些影響吧。Ten
10、sorFlow中的計算可以表示為一個帶有節(jié)點和邊的有向圖。節(jié)點表示具有可變狀態(tài)的計算。邊表示在節(jié)點之間傳遞的多維數(shù)據(jù)矩陣(張量)。 TensorFlow要求用戶靜態(tài)地聲明這個符號計算圖,并且使用圖形的重寫和分區(qū)來讓機器進行分布式的執(zhí)行。如上圖所示,這個TensorFlow中的分布式機器學習訓練使用了參數(shù)服務(wù)器的方法。在TensorFlow中使用PS抽象的時候,可以使用參數(shù)服務(wù)器和數(shù)據(jù)并行機制。對于TensorFlow來說,你可以做更為復雜的事情,但這需要編寫自定義代碼并走入未知的領(lǐng)域。一些評估結(jié)果為了對這些平臺進行評估,我們使用了Amazon EC2 m4.xlarge實例。每個實例包含由In
11、tel Xeon E5-2676 v3處理器和16GBRAM組成的4個vCPU。EBS帶寬為750Mbps。我們使用兩種常見的機器學習任務(wù)進行評估:使用多層神經(jīng)網(wǎng)絡(luò)的二級邏輯回歸和圖像分類。我只是在這里提供幾張圖,請查看我們的論文以進行更多的實驗。我們的實驗有幾個限制:我們使用的機器比較少,不能進行規(guī)模上的測試。我們的測試僅限于CPU計算,并沒有進行GPU計算測試。該圖顯示了邏輯回歸平臺的速度。Spark比PMLS和MXNet慢,但表現(xiàn)得還算可以。該圖顯示了DNN平臺的速度。與單層邏輯回歸相比,Spark的性能損失比兩層NN更大,這是因為需要更多的迭代計算。這里,我們將driver的參數(shù)保存在
12、Spark中。如果我們將參數(shù)保存在RDD中并且在每次迭代之后進行更新,情況會更糟。該圖顯示了平臺的CPU利用率。 Spark應(yīng)用程序的CPU利用率明顯比較高,主要是因為存在序列化的開銷。以前的工作已經(jīng)指出了這個問題。結(jié)語,以及未來的方向機器學習/深度學習應(yīng)用程序有著令人尷尬的并行機制,而且從并發(fā)算法角度來看也并不是很有趣??梢钥隙ǖ氖?,參數(shù)服務(wù)器方法贏得了分布式機器學習平臺訓練的青睞。至于瓶頸問題,網(wǎng)絡(luò)仍然是分布式機器學習應(yīng)用程序的瓶頸。更好的數(shù)據(jù)或模型分級比更先進的通用數(shù)據(jù)流平臺更有用,請重視數(shù)據(jù)和模型。然而,也存在著一些令人驚訝和微妙的地方。 在Spark中,CPU開銷正在成為比網(wǎng)絡(luò)限制更為重要的瓶頸。 Spark中使用的編程語言(例如Scala/JVM)會顯著影響它的性能。因此,特
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新能源汽車市場推廣與運營咨詢協(xié)議
- 循環(huán)額度小額貸款合同模板
- 車輛質(zhì)押典當與智能停車管理系統(tǒng)合作協(xié)議
- 資產(chǎn)重組財務(wù)擔保合同范本
- 高端寫字樓地下車庫車位租賃及物業(yè)服務(wù)協(xié)議
- 領(lǐng)導者的道德責任在科學中的體現(xiàn)試題及答案
- 工業(yè)互聯(lián)網(wǎng)平臺網(wǎng)絡(luò)流量整形在工業(yè)控制系統(tǒng)中的穩(wěn)定性分析報告
- 2025年農(nóng)產(chǎn)品冷鏈物流冷鏈物流冷鏈項目資金申請冷鏈物流冷鏈物流項目投資風險分析報告
- 信息安全漏洞修復的步驟與試題與答案
- 鄉(xiāng)村旅游與休閑農(nóng)業(yè)融合發(fā)展模式創(chuàng)新與實踐案例研究報告
- 集成電路布圖設(shè)計專有權(quán)轉(zhuǎn)讓合同
- 2024年無人機配件定制采購合同范本3篇
- 電子商務(wù)法培訓課件
- 6.2《為了忘卻的記念》課件統(tǒng)編版高中語文選擇性必修中冊
- 麻醉過程中的意外與并發(fā)癥處理規(guī)范與流程
- 上海工程技術(shù)大學第2學期《機械原理》課程期末試卷及答案
- 南京工程學院《國際服務(wù)貿(mào)易B》2023-2024學年第一學期期末試卷
- 墊資借款合同范本示例
- 2024年輔警招聘筆試題庫
- 黑龍江大學《算法與數(shù)據(jù)結(jié)構(gòu)》2022-2023學年期末試卷
- 健康管理中心運營及服務(wù)流程指南
評論
0/150
提交評論