偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

微軟和谷歌分別開源分布式深度學習框架,各自厲害在哪?

人工智能 深度學習 分布式
原則上看,他們都遵循了類似的原則來訓練深度學習模型。這兩個項目已在各自的研究論文(PipeDream,GPipe)中進行了詳細介紹,這篇文章將對此進行總結。

 [[351091]]

微軟和谷歌一直在積極研究用于訓練深度神經網絡的新框架,并且在最近將各自的成果開源——微軟的PipeDream和谷歌的GPipe。 

原則上看,他們都遵循了類似的原則來訓練深度學習模型。這兩個項目已在各自的研究論文(PipeDream,GPipe)中進行了詳細介紹,這篇文章將對此進行總結。 

先放上GitHub開源地址👇

微軟:

https://github.com/msr-fiddle/pipedream

谷歌:

https://github.com/tensorflow/lingvo/blob/master/lingvo/core/gpipe.py 

眾所周知,在實驗過程中,雖然訓練基本模型比較瑣碎,但復雜度卻隨模型的質量和大小線性增加。例如,2014年ImageNet視覺識別挑戰(zhàn)賽的冠軍是GoogleNet,它通過400萬個參數(shù)獲得了74.8%的TOP1準確性,而僅僅三年之后,2017年ImageNet挑戰(zhàn)賽的冠軍就使用1.458億個參數(shù)(多了36倍)的最新神經網絡實現(xiàn)了TOP1準確率——82.7%。但是,在同一時期,GPU內存僅增加了約3倍。 

隨著模型縮放以達到更高的準確性,對這些模型的訓練變得越來越具有挑戰(zhàn)性。前面的樣本也顯示了,依靠GPU基礎結構的改進來實現(xiàn)更好的訓練是不可持續(xù)的。我們需要分布式計算方法,這些方法可以并行化跨不同節(jié)點的訓練工作量,以擴展訓練規(guī)模。分布式訓練的概念聽起來很瑣碎,但實際上卻極其復雜。 

谷歌的GPipe 

GPipe專注于擴展深度學習計劃的訓練工作量。從基礎架構的角度來看,訓練過程的復雜性是深度學習模型經常被忽視的一個方面。訓練數(shù)據(jù)集越來越大,越來越復雜。例如,在醫(yī)療保健領域,需要使用數(shù)百萬個高分辨率圖像進行訓練的模型并不罕見。結果,訓練過程通常要花費很長時間才能完成,并且內存和CPU消耗非常大。 

思考深度學習模型的分布式的有效方法是將其劃分為數(shù)據(jù)分布式和模型分布式。數(shù)據(jù)分布式方法采用大型機器集群,將輸入數(shù)據(jù)拆分到它們之間。模型分布式嘗試將模型移至具有特定硬件的加速器,例如GPU或TPU,以加速模型訓練。 

概念上看,幾乎所有訓練數(shù)據(jù)集都可以按照一定的邏輯進行分布式訓練,但是關于模型的說法卻不盡相同。例如,一些深度學習模型由可以獨立訓練的并行分支組成。在那種情況下,經典策略是將計算劃分為多個分區(qū),并將不同的分區(qū)分配給不同的分支。但是,這種策略在按順序堆疊各層的深度學習模型中是不足的, 

GPipe通過利用一種稱為流水線的技術將數(shù)據(jù)和模型分布式結合在一起。從概念上講,GPipe是一個分布式機器學習庫,它使用同步隨機梯度下降和流水線分布式進行訓練,適用于由多個連續(xù)層組成的任何DNN。 

GPipe在不同的加速器之間劃分模型,并自動將一小批訓練樣本拆分為較小的微批。該模型允許GPipe的加速器并行運行,從而最大限度地提高了訓練過程的可擴展性。 

下圖說明了具有連續(xù)層的神經網絡的GPipe模型在四個加速器之間分配。Fk是第k個分區(qū)的復合正向計算函數(shù)。Bk是相應的反向傳播函數(shù)。Bk取決于上層的Bk + 1和Fk的中間激活。在頂級模型中,我們可以看到網絡的順序性質如何導致資源利用不足。下圖顯示了GPipe方法,其中將輸入的迷你批處理分為較小的宏批處理,這些宏批處理可由加速器同時處理。

圖片來源:

https://arxiv.org/pdf/1811.06965.pdf 

微軟的PipeDream 

幾個月前,微軟研究院宣布創(chuàng)建Project Fiddle,這是一系列旨在簡化分布式深度學習的研究項目。PipeDreams是Fiddle項目首次發(fā)布的版本之一,專注于深度學習模型訓練的并行化。 

PipeDream采用與其他方法不同的方法來利用稱為管道分布式的技術來擴展深度學習模型的訓練。這種方法試圖解決數(shù)據(jù)和模型并行技術的一些挑戰(zhàn),例如GPipe中使用的技術。 

通常,在云基礎架構上進行訓練時,數(shù)據(jù)并行方法在規(guī)模上會承受較高的通信成本,并且隨著時間的推移會提高GPU計算速度。類似地,模型分布式技術通常在利用硬件資源上更加效率低下,程序員需要決定如何在給定硬件部署的情況下拆分其特定模型,給他們帶來了不必要的負擔。 

圖片來源:

http://www.microsoft.com/zh-cn/research/uploads/prod/2019/08/fiddle_pipedream_sosp19.pdf 

PipeDream嘗試通過使用稱為管道分布式的技術來克服數(shù)據(jù)模型分布式方法的一些挑戰(zhàn)。 

從概念上講,管道分布計算涉及將DNN模型的各層劃分為多個階段,其中每個階段均由模型中的一組連續(xù)層組成。每個階段都映射到一個單獨的GPU,該GPU對該階段中的所有層執(zhí)行正向傳遞(和反向傳遞)。 

給定一個特定的深度神經網絡,PipeDream會基于在單個GPU上執(zhí)行的簡短概要分析,自動確定如何對DNN的運算符進行分區(qū),在不同階段之間平衡計算負載,同時最大程度地減少與目標平臺的通信。即使存在模型多樣性(計算和通信)和平臺多樣性(互連拓撲和分層帶寬),PipeDream也會有效地實現(xiàn)負載平衡。PipeDream訓練分布式的方法的原理比數(shù)據(jù)模型分布式方法具有多個優(yōu)點。

 對于初學者而言,PipeDream需要在工作程序節(jié)點之間進行較少的通信,因為管道執(zhí)行中的每個工作程序僅需要將漸變的子集和輸出激活信息傳達給單個其他工作程序。 

圖片來源:

https://www.microsoft.com/zh-cn/research/uploads/prod/2019/08/fiddle_pipedream_sosp19.pdf 

訓練分布式是構建更大、更準確的深度學習模型的關鍵挑戰(zhàn)之一。分布式訓練方法是深度學習社區(qū)中一個活躍的研究領域,需要將有效的并發(fā)編程技術與深度學習模型的本質相結合。盡管仍處于早期階段,但Google的GPipe和Microsoft的PipeDream本身已經是很優(yōu)秀的產品,它是深度學習開發(fā)人員可用的兩種最具創(chuàng)造性的分布式訓練方法。 

 

責任編輯:龐桂玉 來源: 人工智能與大數(shù)據(jù)技術
相關推薦

2015-06-01 10:31:43

微軟開源rDSN

2017-02-15 14:36:12

開源大數(shù)據(jù)TensorFlowO

2010-06-03 19:46:44

Hadoop

2018-08-28 15:47:03

人工智能深度學習機器學習

2021-09-09 15:45:17

機器學習人工智能Ray

2015-06-10 09:47:18

微軟分布式云平臺

2015-11-11 14:01:26

微軟開源分布式

2018-05-23 09:28:23

2015-05-12 13:03:54

開源分布式存儲HDFS

2010-02-24 09:22:28

2023-04-19 16:51:54

分布式Primus開源

2019-07-22 09:35:23

RedisSentinel

2018-12-05 10:30:16

微軟分布式開源

2021-11-01 20:32:07

云市場云計算支出

2015-10-15 14:05:51

StormSparkMapReduce

2023-06-26 00:14:28

Openjob分布式任務

2013-11-27 10:35:57

亞馬遜云計算IBM

2021-07-19 11:05:08

云計算瑞銀亞馬遜

2021-06-02 22:16:56

框架CAPBASE

2019-07-04 15:13:16

分布式緩存Redis
點贊
收藏

51CTO技術棧公眾號