0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微軟和谷歌分別開源分布式深度學(xué)習(xí)框架對比

工程師鄧生 ? 來源:大數(shù)據(jù)文摘微信公眾號 ? 作者:Miggy ? 2020-11-01 10:49 ? 次閱讀

微軟和谷歌一直在積極研究用于訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的新框架,并且在最近將各自的成果開源——微軟的 PipeDream 和谷歌的 GPipe。

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

先放上 GitHub 開源地址:

微軟:

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

谷歌:

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

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

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

谷歌的 GPipe GPipe

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

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

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

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

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

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

圖片來源:

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

微軟的 PipeDream

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

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

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

圖片來源:

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

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

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

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

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

圖片來源:

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微軟
    +關(guān)注

    關(guān)注

    4

    文章

    6599

    瀏覽量

    104100
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6169

    瀏覽量

    105437
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4772

    瀏覽量

    100807
收藏 人收藏

    評論

    相關(guān)推薦

    基于ptp的分布式系統(tǒng)設(shè)計

    在現(xiàn)代分布式系統(tǒng)中,精確的時間同步對于確保數(shù)據(jù)一致性、系統(tǒng)穩(wěn)定性和性能至關(guān)重要。PTP(Precision Time Protocol)是一種網(wǎng)絡(luò)協(xié)議,用于在分布式系統(tǒng)中實現(xiàn)高精度的時間同步
    的頭像 發(fā)表于 12-29 10:09 ?99次閱讀

    HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)權(quán)限與基礎(chǔ)數(shù)據(jù)

    使用分布式數(shù)據(jù)對象遷移數(shù)據(jù),當(dāng)需要遷移的數(shù)據(jù)較大(100KB以上)或需要遷移文件時,可以使用分布式數(shù)據(jù)對象。原理與接口說明詳見分布式數(shù)據(jù)對象跨設(shè)備數(shù)據(jù)同步。 說明:自API 12起,由于直接使用跨
    發(fā)表于 12-24 09:40

    分布式光纖測溫解決方案

    分布式光纖測溫解決方案
    的頭像 發(fā)表于 11-12 01:02 ?159次閱讀
    <b class='flag-5'>分布式</b>光纖測溫解決方案

    分布式光纖測溫是什么?應(yīng)用領(lǐng)域是?

    分布式光纖測溫是一種先進(jìn)的溫度測量技術(shù),它利用光纖的拉曼散射原理進(jìn)行溫度監(jiān)測。以下是對分布式光纖測溫的詳細(xì)介紹: 一、基本原理 分布式光纖測溫的原理基于光纖的拉曼散射效應(yīng)。當(dāng)光纖某處的溫度發(fā)生變化
    的頭像 發(fā)表于 10-24 15:30 ?394次閱讀
    <b class='flag-5'>分布式</b>光纖測溫是什么?應(yīng)用領(lǐng)域是?

    NVIDIA推出全新深度學(xué)習(xí)框架fVDB

    在 SIGGRAPH 上推出的全新深度學(xué)習(xí)框架可用于打造自動駕駛汽車、氣候科學(xué)和智慧城市的 AI 就緒型虛擬表示。
    的頭像 發(fā)表于 08-01 14:31 ?618次閱讀

    EasyGo使用筆記丨分布式光伏集群并網(wǎng)控制硬件在環(huán)仿真應(yīng)用

    了該模型的仿真驗證。最后,基于實時仿真器NetBox和DSP,構(gòu)建完整的硬件在環(huán)仿真平臺。分別對各算法進(jìn)行了測試,并與常規(guī)仿真方式下的效果進(jìn)行對比,驗證分布式光伏集群并網(wǎng)控制硬件在環(huán)仿真平臺的可行性
    發(fā)表于 07-12 17:20

    TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇

    深度學(xué)習(xí)作為人工智能領(lǐng)域的一個重要分支,在過去十年中取得了顯著的進(jìn)展。在構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的過程中,深度
    的頭像 發(fā)表于 07-02 14:04 ?975次閱讀

    深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)對比

    在人工智能的浪潮中,機(jī)器學(xué)習(xí)深度學(xué)習(xí)無疑是兩大核心驅(qū)動力。它們各自以其獨特的方式推動著技術(shù)的進(jìn)步,為眾多領(lǐng)域帶來了革命性的變化。然而,盡管它們都屬于機(jī)器學(xué)習(xí)的范疇,但
    的頭像 發(fā)表于 07-01 11:40 ?1406次閱讀

    微軟和日立達(dá)成價值數(shù)十億美元的戰(zhàn)略合作

    微軟和日本知名公司日立近日宣布了一項價值數(shù)十億美元的戰(zhàn)略合作計劃,旨在未來三年內(nèi)共同推動生成人工智能服務(wù)的廣泛應(yīng)用。根據(jù)合作協(xié)議,日立將深度整合微軟云、Azure開放人工智能服務(wù)、D
    的頭像 發(fā)表于 06-06 09:47 ?510次閱讀

    分布式能源是什么意思?分布式能源有什么優(yōu)勢?

    分布式能源指的是在用戶端或靠近用戶端的小型能源供應(yīng)系統(tǒng),它能夠直接滿足用戶的多種能源需求,如電力、熱能和冷能。
    的頭像 發(fā)表于 04-29 17:26 ?2313次閱讀

    微軟和谷歌財報超預(yù)期 谷歌史上首次發(fā)放季度股息

    微軟和谷歌財報超預(yù)期 谷歌史上首次發(fā)放季度股息 全球企業(yè)都希望抓住當(dāng)前人工智能蓬勃發(fā)展的契機(jī),把自身產(chǎn)品與人工智緊密結(jié)合,在這AI浪潮下谷歌、微軟
    的頭像 發(fā)表于 04-26 17:56 ?460次閱讀

    HarmonyOS實戰(zhàn)案例:【分布式賬本】

    Demo基于Open Harmony系統(tǒng)使用ETS語言進(jìn)行編寫,本Demo主要通過設(shè)備認(rèn)證、分布式拉起、分布式數(shù)據(jù)管理等功能來實現(xiàn)。
    的頭像 發(fā)表于 04-12 16:40 ?1335次閱讀
    HarmonyOS實戰(zhàn)案例:【<b class='flag-5'>分布式</b>賬本】

    谷歌模型框架是什么軟件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌開發(fā)的用于機(jī)器學(xué)習(xí)和人工智能的軟件框架,其中最著名的是TensorFlow。TensorFlow是一個
    的頭像 發(fā)表于 03-01 16:25 ?889次閱讀

    鴻蒙OS 分布式任務(wù)調(diào)度

    鴻蒙OS 分布式任務(wù)調(diào)度概述 在 HarmonyO S中,分布式任務(wù)調(diào)度平臺對搭載 HarmonyOS 的多設(shè)備構(gòu)筑的“超級虛擬終端”提供統(tǒng)一的組件管理能力,為應(yīng)用定義統(tǒng)一的能力基線、接口
    的頭像 發(fā)表于 01-29 16:50 ?504次閱讀

    什么是分布式架構(gòu)?

    分布式架構(gòu)是指將一個系統(tǒng)或應(yīng)用拆分成多個獨立的節(jié)點,這些節(jié)點通過網(wǎng)絡(luò)連接進(jìn)行通信和協(xié)作,以實現(xiàn)共同完成任務(wù)的一種架構(gòu)模式。這種架構(gòu)模式旨在提高系統(tǒng)的可擴(kuò)展性、可靠性和性能表現(xiàn)。 一、分布式架構(gòu)的特點
    的頭像 發(fā)表于 01-12 15:04 ?1252次閱讀
    什么是<b class='flag-5'>分布式</b>架構(gòu)?