雅虎機(jī)器學(xué)習(xí)平臺(tái)CaffeOnSpark解讀
大?。?/span>0.3 MB 人氣: 2017-10-10 需要積分:1
推薦 + 挑錯(cuò) + 收藏(0) + 用戶(hù)評(píng)論(0)
標(biāo)簽:機(jī)器學(xué)習(xí)平臺(tái)(6067)
Andy Feng是Apache Storm的Committer,同時(shí)也是雅虎公司負(fù)責(zé)大數(shù)據(jù)與機(jī)器學(xué)習(xí)平臺(tái)的副總裁。他帶領(lǐng)雅虎機(jī)器學(xué)習(xí)團(tuán)隊(duì)基于開(kāi)源的Spark和Caffe開(kāi)發(fā)了深度學(xué)習(xí)框架CaffeOnSpark,以支持雅虎的業(yè)務(wù)團(tuán)隊(duì)在Hadoop和Spark集群上無(wú)縫地完成大數(shù)據(jù)處理、傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)任務(wù),并在CaffeOnSpark較為成熟之后將其開(kāi)源(https://github.com/yahoo/CaffeOnSpark)。Andy Feng接受《程序員》記者專(zhuān)訪(fǎng),從研發(fā)初衷、設(shè)計(jì)思想、技術(shù)架構(gòu)、實(shí)現(xiàn)和應(yīng)用情況等角度對(duì)CaffeOnSpark進(jìn)行了解讀。CaffeOnSpark概況
CaffeOnSpark研發(fā)的背景,是雅虎內(nèi)部具有大規(guī)模支持YARN的Hadoop和Spark集群用于大數(shù)據(jù)存儲(chǔ)和處理,包括特征工程與傳統(tǒng)機(jī)器學(xué)習(xí)(如雅虎自己開(kāi)發(fā)的詞嵌入、邏輯回歸等算法),同時(shí)雅虎的很多團(tuán)隊(duì)也在使用Caffe支持大規(guī)模深度學(xué)習(xí)工作。目前的深度學(xué)習(xí)框架基本都只專(zhuān)注于深度學(xué)習(xí),但深度學(xué)習(xí)需要大量的數(shù)據(jù),所以雅虎希望深度學(xué)習(xí)框架能夠和大數(shù)據(jù)平臺(tái)結(jié)合在一起,以減少大數(shù)據(jù)/深度學(xué)習(xí)平臺(tái)的系統(tǒng)和流程的復(fù)雜性,也減少多個(gè)集群之間不必要的數(shù)據(jù)傳輸帶來(lái)的性能瓶頸和低效(如圖1)。
圖1 深度學(xué)習(xí)集群與大數(shù)據(jù)集群分離的低效
CaffeOnSpark就是雅虎的嘗試。對(duì)雅虎而言,Caffe與Spark的集成,讓各種機(jī)器學(xué)習(xí)管道集中在同一個(gè)集群中,深度學(xué)習(xí)訓(xùn)練和測(cè)試能被嵌入到Spark應(yīng)用程序,還可以通過(guò)YARN來(lái)優(yōu)化深度學(xué)習(xí)資源的調(diào)度。
圖2 CaffeOnSpark系統(tǒng)架構(gòu)
CaffeOnSpark架構(gòu)如圖2所示,Spark on YARN加載了一些執(zhí)行器(用戶(hù)可以指定Spark執(zhí)行器的個(gè)數(shù)(–num-executors 《# of EXECUTORS》),以及為每個(gè)執(zhí)行器分配的GPU的個(gè)數(shù)(-devices 《# of GPUs PER EXECUTOR》))(Executor)。每個(gè)執(zhí)行器分配到一個(gè)基于HDFS的訓(xùn)練數(shù)據(jù)分區(qū),然后開(kāi)啟多個(gè)基于Caffe的訓(xùn)練線(xiàn)程。每個(gè)訓(xùn)練線(xiàn)程由一個(gè)特定的GPU處理。使用反向傳播算法處理完一批訓(xùn)練樣本后,這些訓(xùn)練線(xiàn)程之間交換模型參數(shù)的梯度值,在多臺(tái)服務(wù)器的GPU之間以MPI Allreduce形式進(jìn)行交換,支持TCP/以太網(wǎng)或者RDMA/Infiniband。相比Caffe,經(jīng)過(guò)增強(qiáng)的CaffeOnSpark可以支持在一臺(tái)服務(wù)器上使用多個(gè)GPU,深度學(xué)習(xí)模型同步受益于RDMA。
考慮到大數(shù)據(jù)深度學(xué)習(xí)往往需要漫長(zhǎng)的訓(xùn)練時(shí)間,CaffeOnSpark還支持定期快照訓(xùn)練狀態(tài),以便訓(xùn)練任務(wù)在系統(tǒng)出現(xiàn)故障后能夠恢復(fù)到之前的狀態(tài),不必從頭開(kāi)始重新訓(xùn)練。從第一次發(fā)布系統(tǒng)架構(gòu)到宣布開(kāi)源,時(shí)間間隔大約為半年,主要就是為了解決一些企業(yè)級(jí)的需求。
CaffeOnSpark解決了三大問(wèn)題
《程序員》:在眾多的深度學(xué)習(xí)框架中,為什么選擇了Caffe?
Andy Feng:Caffe是雅虎所使用的主要深度學(xué)習(xí)平臺(tái)之一。早在幾個(gè)季度之前,開(kāi)發(fā)人員就已將Caffe部署到產(chǎn)品上(見(jiàn)Pierre Garrigues在RE.WORK的演講),最近,我們看到雅虎越來(lái)越多的團(tuán)隊(duì)使用Caffe進(jìn)行深度學(xué)習(xí)研究。作為平臺(tái)組,我們希望公司的其它小組能夠更方便地使用Caffe。
在社區(qū)里,Caffe以圖像深度學(xué)習(xí)方面的高級(jí)特性而聞名。但在雅虎,我們也發(fā)現(xiàn)很容易將Caffe擴(kuò)展到非圖像的應(yīng)用場(chǎng)景中,如自然語(yǔ)言處理等。
作為一款開(kāi)源軟件,Caffe擁有活躍的社區(qū)。雅虎也積極與伯克利Caffe團(tuán)隊(duì)和開(kāi)發(fā)者、用戶(hù)社區(qū)合作(包括學(xué)術(shù)和產(chǎn)業(yè))。
《程序員》:除了貢獻(xiàn)到社區(qū)的特性,雅虎使用的Caffe相對(duì)于伯克利版本還有什么重要的不同?
Andy Feng:CaffeOnSpark是伯克利Caffe的分布式版本。我們對(duì)Caffe核心只做了細(xì)微改動(dòng),重點(diǎn)主要放在分布式學(xué)習(xí)上。在Caffe的核心層面,我們改進(jìn)Caffe來(lái)支持多GPU、多線(xiàn)程執(zhí)行,并引入了新的數(shù)據(jù)層來(lái)處理大規(guī)模數(shù)據(jù)。這些核心改進(jìn)已經(jīng)加入了伯克利Caffe的代碼庫(kù),整個(gè)Caffe社區(qū)都能因此而受益。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
雅虎機(jī)器學(xué)習(xí)平臺(tái)CaffeOnSpark解讀下載
相關(guān)電子資料下載
- GTC23 | 阿里云機(jī)器學(xué)習(xí)平臺(tái) PAI 精選演講推薦 1680
- 在微軟云機(jī)器學(xué)習(xí)平臺(tái)Azure ML上利用OpenVINO快速實(shí)現(xiàn)AI推理 629
- NVIDIA Modulu物理機(jī)器學(xué)習(xí)平臺(tái)的功能 797
- 火山引擎機(jī)器學(xué)習(xí)平臺(tái)與NVIDIA加深合作 619
- 云端機(jī)器學(xué)習(xí)平臺(tái)PAI最新的創(chuàng)新實(shí)踐 739
- GTC2022大會(huì)黃仁勛:Triton支持各類(lèi)機(jī)器學(xué)習(xí)平臺(tái) 1154
- 深蘭科技智能大健康產(chǎn)品入駐山東 達(dá)闥打造融合智能機(jī)器學(xué)習(xí)平臺(tái) 1557
- 如何建設(shè)機(jī)器學(xué)習(xí)平臺(tái),該如何去做 1205
- MathWorks入選 2021年Gartner《數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)平臺(tái)魔力象限》并榮膺領(lǐng)導(dǎo)者稱(chēng)號(hào) 1988
- 華邦電子最新推出 GoAI 2.0 機(jī)器學(xué)習(xí)平臺(tái) 1307