丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給楊文
發(fā)送

0

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

本文作者: 楊文 2018-01-30 10:47
導(dǎo)語(yǔ):分布式訓(xùn)練深度學(xué)習(xí)模型的利與弊

雷鋒網(wǎng)AI研習(xí)社按:隨著深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)規(guī)模越來(lái)越大,訓(xùn)練一個(gè)深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks, DNNs)往往需要幾天甚至幾周的時(shí)間。為了加快學(xué)習(xí)速度,經(jīng)常需要分布式的 CPU/GPU 集群來(lái)完成整個(gè)訓(xùn)練。本文就就來(lái)為大家簡(jiǎn)單簡(jiǎn)單介紹一下如何進(jìn)行分布式訓(xùn)練深度學(xué)習(xí)模型。

在近期雷鋒網(wǎng) AI 研習(xí)社的線上公開課上,來(lái)自 IBM 系統(tǒng)部研發(fā)工程師武維博士為大家做了一期主題為「深度學(xué)習(xí)中的分布式訓(xùn)練」的在線分享,錯(cuò)過(guò)了直播的同學(xué)們?nèi)绻戳吮疚挠幸苫笾庍€可以到雷鋒網(wǎng) AI 慕課學(xué)院觀看視頻回放。

以下是雷鋒網(wǎng)對(duì)視頻直播內(nèi)容做的簡(jiǎn)要回顧:

武維,IBM 系統(tǒng)部研發(fā)工程師,曾就職于華為大數(shù)據(jù)產(chǎn)品部及 IBM 中國(guó)研究院,擔(dān)任系統(tǒng)工程師/研究員;西安交通大學(xué)系統(tǒng)工程博士,目前主要研發(fā)方向?yàn)樯疃葘W(xué)習(xí)中的分布式訓(xùn)練框架與模型。

分享提綱:

  • 為什么要分布式訓(xùn)練深度學(xué)習(xí)模型及分布式TensorFlow架構(gòu)。

  • TensorFlow圖內(nèi)復(fù)制和圖間復(fù)制。

  • 深度學(xué)習(xí)模型異步訓(xùn)練和同步訓(xùn)練。

  • Case Study:如何把單機(jī)模型分布式化。

  • 分布式模型訓(xùn)練性能介紹。

分享內(nèi)容:

大家好,我是武維,今天分享的第一部分介紹一下為什么要采用分布式訓(xùn)練以及分布式 TensorFlow 的架構(gòu),第二部分講 TensorFlow 圖內(nèi)復(fù)制和圖間復(fù)制,第三部分是關(guān)于分布式訓(xùn)練中的同步訓(xùn)練和異步訓(xùn)練的簡(jiǎn)要介紹。第四部分是關(guān)于如何把單機(jī)模型分布式化成分布式模型,第五部分是關(guān)于分布式訓(xùn)練的性能介紹。

為什么要采用分布式訓(xùn)練呢,分布式訓(xùn)練主要處理什么問(wèn)題,以及如何處理的?

下圖是關(guān)于TPU架構(gòu)數(shù)據(jù)中心的圖

 IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

第一個(gè)原因,是增加訓(xùn)練的吞吐量;第二個(gè)原因是是針對(duì)大模型訓(xùn)練,大模型通常在一個(gè)設(shè)備中放不下。

下面左圖中的橫坐標(biāo)可以認(rèn)為是 GPU 個(gè)數(shù),縱坐標(biāo)為處理圖片的速度。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

針對(duì)大模型怎么去訓(xùn)練?現(xiàn)在的辦法是把模型拆解到不同的GPU卡里面,每個(gè)GPU卡里面訓(xùn)練一部分,這樣就可以把一個(gè)大模型分布式訓(xùn)練起來(lái)。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

如何實(shí)現(xiàn)這個(gè)流程

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

左邊是TensorFlow的一個(gè)基本的運(yùn)行流程。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

TensorFlow 的發(fā)展過(guò)程

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

分布式TensorFlow架構(gòu),它的架構(gòu)是基于Master 和 Slaver的架構(gòu)。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

以上是從master 和slaver 的角度講深度學(xué)習(xí)分布式架構(gòu),下面從worker 的角度來(lái)看:

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

深度學(xué)習(xí)首先要訓(xùn)練參數(shù),在分布式里面會(huì)把參數(shù)存放在參數(shù)服務(wù)器,如果 worker 需要運(yùn)算的話,首先從參數(shù)服務(wù)器讀取參數(shù)到到 CPU 上。目前來(lái)說(shuō),大多數(shù)的深度學(xué)習(xí)訓(xùn)練都是在 GPU 設(shè)備上進(jìn)行的,所以需要把讀取的數(shù)據(jù)復(fù)制到 GPU 上,GPU 就可以從左往右開始運(yùn)算。最后通過(guò)求導(dǎo)找到變量所對(duì)應(yīng)的梯度,然后在將梯度復(fù)制到機(jī)器上所對(duì)應(yīng)的的 CPU 上,CPU 再通過(guò)網(wǎng)絡(luò)通信把他發(fā)送給參數(shù)服務(wù)器,這是從整個(gè) worker 角度去看分布式架構(gòu)。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

TensorFlow 在分布式訓(xùn)練里面有兩個(gè)比較重要的概念分別是「圖內(nèi)復(fù)制」和「圖間復(fù)制」。分布式訓(xùn)練意味著有一個(gè)集群,先定義一個(gè)分布式集群。下面是圖內(nèi)復(fù)制,這種情況適合單機(jī)多卡。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

如果是多臺(tái)計(jì)算機(jī)的時(shí)候,分發(fā)數(shù)據(jù)帶來(lái)的數(shù)據(jù)瓶頸就會(huì)比較大,如果采用圖內(nèi)復(fù)制,數(shù)據(jù)傳輸會(huì)產(chǎn)生瓶頸。這個(gè)時(shí)候需要用圖間復(fù)制,兩個(gè)圖可以中間共享變量,解決了訓(xùn)練數(shù)據(jù)分發(fā)的問(wèn)題,這種方式適用于多機(jī)多卡訓(xùn)練。圖間復(fù)制有多個(gè)客戶端,圖內(nèi)復(fù)制只有一個(gè)客戶端。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

TensorFlow 封裝了高級(jí) API,會(huì)自動(dòng)把參數(shù)部署到參數(shù)服務(wù)器上,把運(yùn)算操作設(shè)定到 worker 上,這些就實(shí)現(xiàn)了一份代碼可在多個(gè) worker 上運(yùn)行,簡(jiǎn)化了客戶端程序的編寫。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

如何分布式尋找最優(yōu)W?同步訓(xùn)練和異步訓(xùn)練有什么區(qū)別?

隨機(jī)梯度下降法:第一個(gè)式子數(shù)值求偏導(dǎo),計(jì)算量太大,不實(shí)際。通常用微積分求導(dǎo),解析解。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

分布式隨機(jī)梯度下降法

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

異步訓(xùn)練過(guò)程:異步訓(xùn)練為TensorFlow上每個(gè)節(jié)點(diǎn)上的任務(wù)為獨(dú)立訓(xùn)練方式,不需要和其他節(jié)點(diǎn)在參數(shù)服務(wù)器上同步梯度。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

同步訓(xùn)練過(guò)程:同步訓(xùn)練需要和其他節(jié)點(diǎn)在參數(shù)服務(wù)器上Reduce梯度。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

第四部分是如何編寫分布式訓(xùn)練模型示例,大家可以觀看視頻回放。

下圖是單機(jī)版線性回歸模型示例

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

第五部分是分布式訓(xùn)練的性能比較

評(píng)價(jià)指標(biāo)通常分為模型方面和平臺(tái)方面。在模型方面常用指標(biāo)是:準(zhǔn)確率、召回率、AP等。平臺(tái)方面

主要看吞吐量、加速比。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

異步訓(xùn)練的吞吐量比同步訓(xùn)練好,所以異步訓(xùn)練要比同步訓(xùn)練的快。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

同步算法和異步算法的比較

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

以上就是本次分享的主要內(nèi)容,代碼實(shí)現(xiàn)部分建議同學(xué)們直接觀看回放視頻,也可關(guān)注嘉賓武維的GitHub地址。

微信公眾號(hào):「AI 研習(xí)社」長(zhǎng)期提供免費(fèi)視頻直播課程,歡迎關(guān)注!

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

IBM高級(jí)研發(fā)工程師武維:如何分布式訓(xùn)練深度學(xué)習(xí)模型?| 分享總結(jié)

分享:
相關(guān)文章

編輯&記者

AI科技評(píng)論員,微信:yeohandwin
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)