精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

微軟和谷歌分別開源分布式深度學習框架對比

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

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

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

先放上 GitHub 開源地址:

微軟:

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

谷歌:

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

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

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

谷歌的 GPipe GPipe

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

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

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

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

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

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

圖片來源:

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

微軟的 PipeDream

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

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

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

圖片來源:

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

PipeDream 嘗試通過使用稱為管道分布式的技術來克服數據模型分布式方法的一些挑戰。

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

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

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

圖片來源:

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微軟
    +關注

    關注

    4

    文章

    6572

    瀏覽量

    103963
  • 谷歌
    +關注

    關注

    27

    文章

    6142

    瀏覽量

    105116
  • 神經網絡
    +關注

    關注

    42

    文章

    4765

    瀏覽量

    100568
收藏 人收藏

    評論

    相關推薦

    分布式光纖測溫解決方案

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

    EasyGo使用筆記丨分布式光伏集群并網控制硬件在環仿真應用

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

    TensorFlow與PyTorch深度學習框架的比較與選擇

    深度學習作為人工智能領域的一個重要分支,在過去十年中取得了顯著的進展。在構建和訓練深度學習模型的過程中,深度
    的頭像 發表于 07-02 14:04 ?898次閱讀

    微軟和谷歌財報超預期 谷歌史上首次發放季度股息

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

    HarmonyOS實戰案例:【分布式賬本】

    Demo基于Open Harmony系統使用ETS語言進行編寫,本Demo主要通過設備認證、分布式拉起、分布式數據管理等功能來實現。
    的頭像 發表于 04-12 16:40 ?1269次閱讀
    HarmonyOS實戰案例:【<b class='flag-5'>分布式</b>賬本】

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

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

    鴻蒙OS 分布式任務調度

    鴻蒙OS 分布式任務調度概述 在 HarmonyO S中,分布式任務調度平臺對搭載 HarmonyOS 的多設備構筑的“超級虛擬終端”提供統一的組件管理能力,為應用定義統一的能力基線、接口
    的頭像 發表于 01-29 16:50 ?467次閱讀

    什么是分布式架構?

    分布式架構是指將一個系統或應用拆分成多個獨立的節點,這些節點通過網絡連接進行通信和協作,以實現共同完成任務的一種架構模式。這種架構模式旨在提高系統的可擴展性、可靠性和性能表現。 一、分布式架構的特點
    的頭像 發表于 01-12 15:04 ?1175次閱讀
    什么是<b class='flag-5'>分布式</b>架構?

    分布式鎖的三種實現方式

    ,下面將分別介紹三種常見的實現方式。 一、基于數據庫實現的分布式鎖 在分布式系統中,數據庫是最常用的共享資源之一。因此,可以通過數據庫的特性來實現分布式鎖。常見的方式是創建一個專門用于
    的頭像 發表于 12-28 10:01 ?863次閱讀

    鴻蒙原生應用開發——分布式數據對象

    01、什么是分布式數據對象 在可信組網環境下,多個相互組網認證的設備將各自創建的對象加入同一個 sessionId,使得加入的多個數據對象之間可以同步數據,也就是說,當某一數據對象屬性發生
    發表于 12-08 10:01

    分布式系統硬件資源池原理和接入實踐

    ;Sink 端主要是初始化和釋放接口,用于響應 Source 端的控制指令,比如播放聲音或者采集視頻畫面。在設備組網上線后,分布式硬件框架調用各個硬件類型的南向接口實現,分別初始化各類硬件
    發表于 12-06 10:02

    redis分布式鎖的缺點

    Redis分布式鎖是一種常見的用于解決分布式系統中資源爭用問題的解決方案。盡管Redis分布式鎖具有很多優點,但它也存在一些缺點。本文將從幾個方面詳細介紹Redis分布式鎖的缺點。 精
    的頭像 發表于 12-04 14:05 ?1217次閱讀

    如何實現Redis分布式

    Redis是一個開源的內存數據存儲系統,可用于高速讀寫操作。在分布式系統中,為了保證數據的一致性和避免競態條件,常常需要使用分布式鎖來對共享資源進行加鎖操作。Redis提供了一種簡單而強大的
    的頭像 發表于 12-04 11:24 ?668次閱讀

    zookeeper分布式原理

    Zookeeper是一個開源分布式協調服務,可以用于構建高可用、高性能的分布式系統。它提供了一個簡單且高效的層次命名空間,可以用來存儲配置信息、狀態信息、命名服務等。Zookeeper的設計目標
    的頭像 發表于 12-03 16:33 ?623次閱讀

    springcloud 分布式事務解決方案實例

    么都執行成功,要么都執行失敗。本文將介紹如何使用Spring Cloud來實現分布式事務。 在分布式系統中,使用數據庫事務來保證數據一致性是常見的做法。Spring Cloud通過集成各種分布式事務解決方案,為開發者提供了多種選
    的頭像 發表于 12-03 16:32 ?1104次閱讀