邻居一晚让我高潮3次正常吗,人妻丰满熟妇AV无码区动漫,乱LUN合集1第40部分阅读,精品无码国产一区二区三区51安

當(dāng)前位置:首頁(yè) > 最新資訊 > 行業(yè)資訊

在多個(gè)GPU上進(jìn)行分布式訓(xùn)練

為什么以及如何使用多個(gè)GPU進(jìn)行分布式訓(xùn)練

大規(guī)模訓(xùn)練AI模型的數(shù)據(jù)科學(xué)家或機(jī)器學(xué)習(xí)愛好者將不可避免地達(dá)到上限。當(dāng)數(shù)據(jù)集大小增加時(shí),處理時(shí)間可能會(huì)從幾分鐘增加到幾小時(shí)到幾天到幾周!數(shù)據(jù)科學(xué)家轉(zhuǎn)向包含多個(gè)GPU以及機(jī)器學(xué)習(xí)模型的分布式訓(xùn)練,以在很短的時(shí)間內(nèi)加速和開發(fā)完整的AI模型。

我們將討論GPU與CPU對(duì)機(jī)器學(xué)習(xí)的用處,為什么使用多個(gè)GPU進(jìn)行分布式訓(xùn)練最適合大型數(shù)據(jù)集,以及如何開始使用最佳實(shí)踐訓(xùn)練機(jī)器學(xué)習(xí)模型。

為什么GPU適合訓(xùn)練神經(jīng)網(wǎng)絡(luò)?

訓(xùn)練階段是構(gòu)建神經(jīng)網(wǎng)絡(luò)或機(jī)器學(xué)習(xí)模型中資源最密集的部分。神經(jīng)網(wǎng)絡(luò)在訓(xùn)練階段需要數(shù)據(jù)輸入。該模型基于數(shù)據(jù)集之間所做的更改,基于層中處理的數(shù)據(jù)輸出相關(guān)預(yù)測(cè)。第一輪輸入數(shù)據(jù)本質(zhì)上形成了機(jī)器學(xué)習(xí)模型理解的基線;隨后的數(shù)據(jù)集計(jì)算權(quán)重和參數(shù)以訓(xùn)練機(jī)器預(yù)測(cè)精度。

對(duì)于簡(jiǎn)單或少量的數(shù)據(jù)集,等待幾分鐘是可行的。然而,隨著輸入數(shù)據(jù)量的增加,訓(xùn)練時(shí)間可能會(huì)達(dá)到數(shù)小時(shí)、數(shù)天甚至更長(zhǎng)。

CPU難以處理大量數(shù)據(jù),例如對(duì)數(shù)十萬(wàn)個(gè)浮點(diǎn)數(shù)的重復(fù)計(jì)算。深度神經(jīng)網(wǎng)絡(luò)由矩陣乘法和向量加法等操作組成。

提高此過程速度的一種方法是使用多個(gè)GPU切換分布式訓(xùn)練。基于分配給訓(xùn)練階段的張量核心的數(shù)量,用于分布式訓(xùn)練的GPU可以比CPU更快地移動(dòng)過程。

GPU或圖形處理單元最初設(shè)計(jì)用于處理重復(fù)計(jì)算,為視頻游戲的圖形推斷和定位數(shù)十萬(wàn)個(gè)三角形。再加上大內(nèi)存帶寬和執(zhí)行數(shù)百萬(wàn)次計(jì)算的先天能力,GPU非常適合通過數(shù)百個(gè)epoch(或模型迭代)進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練所需的快速數(shù)據(jù)流,非常適合深度學(xué)習(xí)訓(xùn)練。

什么是機(jī)器學(xué)習(xí)中的分布式訓(xùn)練?

分布式訓(xùn)練承擔(dān)訓(xùn)練階段的工作量并將其分布在多個(gè)處理器上。這些微型處理器協(xié)同工作以加快訓(xùn)練過程,而不會(huì)降低機(jī)器學(xué)習(xí)模型的質(zhì)量。由于數(shù)據(jù)被并行劃分和分析,每個(gè)微型處理器在不同批次的訓(xùn)練數(shù)據(jù)上訓(xùn)練機(jī)器學(xué)習(xí)模型的副本。

結(jié)果在處理器之間進(jìn)行通信(當(dāng)批次完全完成時(shí)或每個(gè)處理器完成其批次時(shí))。下一次迭代或epoch再次從一個(gè)稍微新訓(xùn)練的模型開始,直到它達(dá)到預(yù)期的結(jié)果。

在微型處理器(在我們的例子中是GPU)之間分配訓(xùn)練有兩種最常見的方法:數(shù)據(jù)并行和模型并行。

數(shù)據(jù)并行

數(shù)據(jù)并行是數(shù)據(jù)的劃分并將其分配給每個(gè)GPU以使用相同的AI模型進(jìn)行評(píng)估。一旦所有GPU完成前向傳遞,它們就會(huì)輸出梯度或模型的學(xué)習(xí)參數(shù)。由于有多個(gè)梯度,只有1個(gè)AI模型需要訓(xùn)練,梯度被編譯、平均、縮減為單個(gè)值,最終更新模型參數(shù),用于下一個(gè)epoch的訓(xùn)練。這可以同步或異步完成。

同步數(shù)據(jù)并行是我們的GPU組必須等到所有其他GPU完成梯度計(jì)算,然后再平均并減少梯度以更新模型參數(shù)。一旦更新了參數(shù),模型就可以繼續(xù)下一個(gè)epoch。

異步數(shù)據(jù)并行是GPU獨(dú)立訓(xùn)練而無需執(zhí)行同步梯度計(jì)算的地方。相反,梯度在完成時(shí)會(huì)傳回參數(shù)服務(wù)器。每個(gè)GPU不等待另一個(gè)GPU完成計(jì)算,也不計(jì)算梯度平均,因此是異步的。異步數(shù)據(jù)并行需要一個(gè)單獨(dú)的參數(shù)服務(wù)器用于模型的學(xué)習(xí)部分,因此成本更高一些。

在每一步之后計(jì)算梯度并對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行平均是最耗費(fèi)計(jì)算的。由于它們是重復(fù)計(jì)算,因此GPU一直是加速此步驟以達(dá)到更快結(jié)果的選擇。數(shù)據(jù)并行性相當(dāng)簡(jiǎn)單且經(jīng)濟(jì)高效,但是有時(shí)模型太大而無法容納在單個(gè)微型處理器上。

模型并行

與拆分?jǐn)?shù)據(jù)相比,模型并行性在工作GPU之間拆分模型(或訓(xùn)練模型的工作負(fù)載)。分割模型將特定任務(wù)分配給單個(gè)工作人員或多個(gè)工作人員以優(yōu)化GPU使用。模型并行可以被認(rèn)為是一條人工智能裝配線,它創(chuàng)建了一個(gè)多層網(wǎng)絡(luò),可以處理數(shù)據(jù)并行不可行的大型數(shù)據(jù)集。模型并行性需要專家來確定如何對(duì)模型進(jìn)行分區(qū),但會(huì)帶來更好的使用和效率。

多GPU分布式訓(xùn)練更快嗎?

購(gòu)買多個(gè)GPU可能是一項(xiàng)昂貴的投資,但比其他選擇要快得多。CPU也很昂貴,不能像GPU那樣擴(kuò)展??缍鄠€(gè)層和多個(gè)GPU訓(xùn)練機(jī)器學(xué)習(xí)模型以進(jìn)行分布式訓(xùn)練可提高訓(xùn)練階段的生產(chǎn)力和效率。

當(dāng)然,這意味著減少訓(xùn)練模型所花費(fèi)的時(shí)間,但它也使您能夠更快地產(chǎn)生(和重現(xiàn))結(jié)果并在任何事情失控之前解決問題。在為您的努力產(chǎn)生結(jié)果方面,它是訓(xùn)練數(shù)周與數(shù)小時(shí)或數(shù)分鐘訓(xùn)練之間的差異(取決于使用的GPU數(shù)量)。

您需要解決的下一個(gè)問題是如何開始在機(jī)器學(xué)習(xí)模型中使用多個(gè)GPU進(jìn)行分布式訓(xùn)練。

如何使用多個(gè)GPU進(jìn)行訓(xùn)練?

如果您想使用多個(gè)GPU處理分布式訓(xùn)練,首先要確定您是否需要使用數(shù)據(jù)并行性模型并行性。該決定將基于數(shù)據(jù)集的大小和范圍。

您能否讓每個(gè)GPU使用數(shù)據(jù)集運(yùn)行整個(gè)模型?或者在具有更大數(shù)據(jù)集的多個(gè)GPU上運(yùn)行模型的不同部分是否會(huì)更省時(shí)?通常,數(shù)據(jù)并行是分布式學(xué)習(xí)的標(biāo)準(zhǔn)選項(xiàng)。從同步數(shù)據(jù)并行開始,然后深入研究模型并行或異步數(shù)據(jù)并行,其中需要單獨(dú)的專用參數(shù)服務(wù)器。

我們可以開始在您的分布式訓(xùn)練過程中將您的GPU鏈接在一起。

根據(jù)您的并行決策分解您的數(shù)據(jù)。例如,您可以使用當(dāng)前數(shù)據(jù)批次(全局批次)并將其劃分為八個(gè)子批次(本地批次)。如果全局批次有512個(gè)樣本并且您有8個(gè)GPU,則8個(gè)本地批次中的每一個(gè)都將包含64個(gè)樣本。

八個(gè)GPU或迷你處理器中的每一個(gè)都獨(dú)立運(yùn)行本地批處理:前向傳遞、后向傳遞、輸出權(quán)重梯度等。

局部梯度的權(quán)重修改在所有8個(gè)微型處理器中有效地混合,因此一切都保持同步,并且模型已經(jīng)過適當(dāng)?shù)挠?xùn)練(當(dāng)使用同步數(shù)據(jù)并行時(shí))。

重要的是要記住,一個(gè)用于分布式訓(xùn)練的GPU需要在訓(xùn)練階段托管收集的數(shù)據(jù)和其他GPU的結(jié)果。如果您不密切注意,您可能會(huì)遇到一個(gè)GPU內(nèi)存不足的問題。

除此之外,在考慮使用多個(gè)GPU進(jìn)行分布式訓(xùn)練時(shí),收益遠(yuǎn)遠(yuǎn)超過成本!最后,當(dāng)您為模型選擇正確的數(shù)據(jù)并行化時(shí),每個(gè)GPU都會(huì)減少在訓(xùn)練階段花費(fèi)的時(shí)間、提高模型效率并產(chǎn)生更高端的結(jié)果。

尋找有關(guān)分布式訓(xùn)練和其他機(jī)器學(xué)習(xí)主題的更多信息?

神經(jīng)網(wǎng)絡(luò)是高度復(fù)雜的技術(shù),僅訓(xùn)練階段就可能令人生畏。通過利用和了解更多關(guān)于如何利用額外的硬件在更短的時(shí)間內(nèi)創(chuàng)建更有效的模型,數(shù)據(jù)科學(xué)可以改變我們的世界!當(dāng)您可以在數(shù)周和數(shù)月而不是數(shù)月和數(shù)年的時(shí)間內(nèi)創(chuàng)建更有效的神經(jīng)網(wǎng)絡(luò)時(shí),用于分布式訓(xùn)練的GPU非常值得初始投資。

猜你喜歡