您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

雅虎機(jī)器學(xué)習(xí)平臺(tái)CaffeOnSpark解讀

大?。?/span>0.3 MB 人氣: 2017-10-10 需要積分:1
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)。
  雅虎機(jī)器學(xué)習(xí)平臺(tái)CaffeOnSpark解讀
  圖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)度。
  雅虎機(jī)器學(xué)習(xí)平臺(tái)CaffeOnSpark解讀
  圖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%

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?