大咖專欄|撥云見月,專注于深度學(xué)習(xí)本身
作為人工智能大爆炸的核心驅(qū)動(dòng),深度學(xué)習(xí)給機(jī)器學(xué)習(xí)領(lǐng)域帶來了***的巨大影響。面對(duì)火山噴發(fā)般的數(shù)據(jù)洪流,人們期望從深度學(xué)習(xí)中獲得處理現(xiàn)實(shí)問題的助力。
然而前期準(zhǔn)備卻要占據(jù)大量時(shí)間精力,往往與簡(jiǎn)便解決復(fù)雜問題的目的背道而馳,本文從深度學(xué)習(xí)的統(tǒng)一支持框架入手,一步步幫助我們從繁雜的前期工作中奪回對(duì)深度學(xué)習(xí)本身的專注。
摘要
分布式深度學(xué)習(xí)應(yīng)用往往需要用戶在運(yùn)行環(huán)境的多節(jié)點(diǎn)部署和可擴(kuò)展性上投入大量時(shí)間與精力,而基于數(shù)據(jù)中心集群資源的深度學(xué)習(xí)工作負(fù)載的統(tǒng)一支持框架,主要目的是實(shí)現(xiàn)深度學(xué)習(xí)工作負(fù)載在數(shù)據(jù)中心資源池上的自動(dòng)化部署與執(zhí)行,從而幫助用戶將更多注意力集中在商業(yè)邏輯和深度學(xué)習(xí)問題本身。
作者簡(jiǎn)介
李三平
李三平,戴爾易安信中國(guó)研究院***科學(xué)家。畢業(yè)于美國(guó)麻省大學(xué),計(jì)算機(jī)工程專業(yè)博士。目前主要圍繞數(shù)據(jù)中心基礎(chǔ)架構(gòu)從事機(jī)器學(xué)習(xí)、深度學(xué)習(xí)相關(guān)的研發(fā)工作,包括基于集群資源的深度學(xué)習(xí)工作負(fù)載支撐框架,以支持深度學(xué)習(xí)模型自動(dòng)化調(diào)參與工作負(fù)載的分布式部署;構(gòu)建自動(dòng)化機(jī)器學(xué)習(xí)工作流以提高數(shù)據(jù)中心基礎(chǔ)架構(gòu)預(yù)測(cè)性分析模型的可靠性與可遷移能力;探索元學(xué)習(xí)、少樣本學(xué)習(xí)、脈沖神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)前沿技術(shù)在數(shù)據(jù)中心的應(yīng)用案例。在國(guó)際學(xué)術(shù)期刊和IEEE Transactions發(fā)表論文20多篇,申請(qǐng)美國(guó)專利30余項(xiàng),譯著三本,參與編著一本。
工作流程概述
基于數(shù)據(jù)中心集群資源的深度學(xué)習(xí)工作負(fù)載統(tǒng)一支持框架的構(gòu)成組件與工作流程下圖所示。
▲深度學(xué)習(xí)工作負(fù)載的統(tǒng)一支持框架
Deep Learning Harness
❶ 用戶提交學(xué)習(xí)任務(wù)規(guī)范(或深度學(xué)習(xí)模型)與數(shù)據(jù)集;
❷ 深度學(xué)習(xí)后端服務(wù)系統(tǒng)按照問題類型與數(shù)據(jù)特征生成推薦模型;
❸ 為深度學(xué)習(xí)模型自動(dòng)生成TensorFlow代碼;
❹ 基于CPU、GPU集群計(jì)算資源池對(duì)學(xué)習(xí)任務(wù)進(jìn)行優(yōu)化調(diào)度;
❺ 啟用深度學(xué)習(xí)工作負(fù)載監(jiān)控分析工具;
❻ 載入代碼與數(shù)據(jù)集,在指定資源上執(zhí)行深度學(xué)習(xí)工作負(fù)載;
❼ 訓(xùn)練過程的實(shí)時(shí)可視化監(jiān)測(cè)與檢查點(diǎn)自動(dòng)保存;
❽ 保存任務(wù)執(zhí)行結(jié)果;
❾ 深度學(xué)習(xí)任務(wù)結(jié)果的分析與可視化。
接下來,我們就支持框架中的若干關(guān)鍵功能與實(shí)現(xiàn)方法依次展開討論(如下圖所示)。
▲支持框架的關(guān)鍵功能與實(shí)現(xiàn)方法
CPU-GPU計(jì)算資源池
將數(shù)據(jù)中心服務(wù)器集群中的CPU資源和各種不同類型、不同數(shù)目的GPU資源整合為邏輯上單一的計(jì)算資源池,用戶可以不必花費(fèi)大量精力去學(xué)習(xí)、理解不同類型計(jì)算資源的性能特點(diǎn),尤其是在部署分布式深度學(xué)習(xí)工作負(fù)載時(shí),用戶只需指定期望的計(jì)算資源類型和數(shù)量即可;甚至用戶可以不指定計(jì)算資源,支持框架中的資源控制器能夠根據(jù)用戶工作負(fù)載的特征,諸如模型復(fù)雜度、訓(xùn)練數(shù)據(jù)量等,動(dòng)態(tài)選擇***計(jì)算資源(我們會(huì)在后文中展開討論)。
對(duì)計(jì)算資源的池化管理可以有效地實(shí)現(xiàn)智能調(diào)度,提高資源利用率,保證用戶對(duì)深度學(xué)習(xí)工作負(fù)載的SLA要求。
深度學(xué)習(xí)任務(wù)的資源預(yù)估模型
前文中提到根據(jù)用戶工作負(fù)載特征在計(jì)算資源池中動(dòng)態(tài)選擇***資源,這就意味著在用戶學(xué)習(xí)任務(wù)實(shí)際運(yùn)行之前,支持框架需要對(duì)任務(wù)的資源占用做出估計(jì)。因此,我們要利用機(jī)器學(xué)習(xí)方法構(gòu)建針對(duì)深度學(xué)習(xí)任務(wù)的資源預(yù)估模型。
模型構(gòu)建依據(jù)首先是深度神經(jīng)網(wǎng)絡(luò)高度結(jié)構(gòu)化的特征,因此可以對(duì)模型復(fù)雜度進(jìn)行量化描述;
其次是深度學(xué)習(xí)任務(wù)的資源消耗、運(yùn)行時(shí)間與模型復(fù)雜度、數(shù)據(jù)規(guī)模、迭代次數(shù)等因素存在近似線性的對(duì)應(yīng)關(guān)系。
以卷積神經(jīng)網(wǎng)絡(luò)為例,我們可以通過對(duì)諸如卷積層數(shù)目、卷積濾鏡數(shù)目、全連接層數(shù)目、全連接層節(jié)點(diǎn)數(shù)目、輸入圖像大小、批數(shù)據(jù)大小等變量進(jìn)行連續(xù)改變,從而得到一系列具有定制化結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)。然后在特定類型與數(shù)量的計(jì)算資源上運(yùn)行這些定制化的卷積網(wǎng)絡(luò)學(xué)習(xí)任務(wù),并對(duì)資源消耗、運(yùn)行時(shí)間等數(shù)據(jù)進(jìn)行監(jiān)控記錄。
這時(shí)我們就已經(jīng)獲得了卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)任務(wù)關(guān)于模型結(jié)構(gòu)、資源消耗與時(shí)間性能的基準(zhǔn)數(shù)據(jù)集,然后利用線性回歸或者曲線擬合技術(shù)來構(gòu)建機(jī)器學(xué)習(xí)模型。
在對(duì)深度學(xué)習(xí)任務(wù)進(jìn)行資源預(yù)估時(shí),輸入信息包括用戶提交或者自動(dòng)生成的深度學(xué)習(xí)任務(wù)代碼、訓(xùn)練數(shù)據(jù)規(guī)模、與學(xué)習(xí)任務(wù)相關(guān)的參數(shù)例如批數(shù)據(jù)大小、迭代次數(shù)等,以及用戶的期望運(yùn)行時(shí)間。
首先,從代碼中提取深度學(xué)習(xí)模型結(jié)構(gòu),形成量化特征描述;
其次,預(yù)估模型會(huì)按照資源池中可用的計(jì)算資源類型與數(shù)量進(jìn)行運(yùn)行時(shí)間估計(jì);
隨后,在滿足用戶關(guān)于運(yùn)行時(shí)間的約束下,模型會(huì)選擇能耗最小的資源配置方案作為輸出。
深度學(xué)習(xí)任務(wù)的資源配置推薦
基于資源預(yù)估模型,我們構(gòu)建后端web服務(wù)以實(shí)現(xiàn)完整的面向深度學(xué)習(xí)任務(wù)的數(shù)據(jù)中心資源配置推薦機(jī)制。按照資源池中當(dāng)前可用的資源類型和數(shù)量,利用機(jī)器學(xué)習(xí)模型對(duì)特定計(jì)算資源下的任務(wù)執(zhí)行時(shí)間進(jìn)行估計(jì),同時(shí)將數(shù)據(jù)中心的服務(wù)器配置、網(wǎng)絡(luò)連接與帶寬、延遲等作為經(jīng)驗(yàn)知識(shí),在滿足用戶關(guān)于運(yùn)行時(shí)間的要求下,遵循能耗最小化原則,為用戶提供資源配置的推薦方案。
在異構(gòu)GPU資源
上部署深度學(xué)習(xí)任務(wù)
數(shù)據(jù)中心的CPU-GPU計(jì)算資源池中,往往包含具有不同型號(hào)GPU的服務(wù)器集群,將用戶的深度學(xué)習(xí)任務(wù)部署在由異構(gòu)GPU組成的服務(wù)器集群上,無疑可以更加充分地利用數(shù)據(jù)中心的當(dāng)前可用資源。但是,如果只是簡(jiǎn)單地遵循通常的分布式深度學(xué)習(xí)方法,那么在模型參數(shù)的同步過程中,相同規(guī)模的輸入數(shù)據(jù)會(huì)導(dǎo)致性能較差的GPU引起性能更好的GPU的更新速度降低。
因此,在異構(gòu)GPU資源上部署分布式深度學(xué)習(xí)任務(wù),我們首先要考慮如何達(dá)到不同類型GPU之間的性能同步。簡(jiǎn)單來說,通過調(diào)整分配至不同GPU的批數(shù)據(jù)大小可以達(dá)到各個(gè)GPU之間參數(shù)更新的近似同步?;谫Y源預(yù)估模型的輸出,結(jié)合自適應(yīng)的批數(shù)據(jù)大小調(diào)整方法,我們可以很快找到異構(gòu)GPU資源的批數(shù)據(jù)大小分配方案。
那么,當(dāng)我們將輸入數(shù)據(jù)的平均分配方法改為不均勻分配以屏蔽異構(gòu)GPU之間的計(jì)算性能差異時(shí),隨之而來的另一個(gè)問題就是:理論上我們也改變了各個(gè)GPU節(jié)點(diǎn)上深度學(xué)習(xí)過程的收斂性能。所以,我們也需要相應(yīng)調(diào)整深度學(xué)習(xí)模型的超參數(shù),以保證訓(xùn)練任務(wù)的收斂性能不被影響。
學(xué)習(xí)率通常是深度模型超參數(shù)微調(diào)的首要選項(xiàng),因此我們針對(duì)特定的批數(shù)據(jù)大小,利用啟發(fā)式方法去尋找對(duì)當(dāng)前深度學(xué)習(xí)模型來說最合適的學(xué)習(xí)率設(shè)置。首先使學(xué)習(xí)率以指數(shù)函數(shù)形式進(jìn)行遞增,觀察訓(xùn)練階段的精度曲線,并利用高階曲線擬合與對(duì)數(shù)曲線擬合,以啟發(fā)式方法找出學(xué)習(xí)率的優(yōu)化區(qū)間或優(yōu)化中值,以此作為梯度優(yōu)化算法的學(xué)習(xí)率設(shè)置。
分布式深度學(xué)習(xí)
工作負(fù)載的自動(dòng)部署
在確定了計(jì)算資源配置和相應(yīng)的參數(shù)調(diào)整方案之后,支持框架還需要實(shí)現(xiàn)深度學(xué)習(xí)負(fù)載的自動(dòng)化分布式部署,以形成完整的深度學(xué)習(xí)工作流程。例如,我們可以使用容器化技術(shù),將數(shù)據(jù)中心的CPU、GPU資源以容器形式進(jìn)行管理和提供,使用Horovod開源框架實(shí)現(xiàn)深度學(xué)習(xí)負(fù)載的多節(jié)點(diǎn)部署,編寫可重用自動(dòng)化腳本以實(shí)現(xiàn)訓(xùn)練數(shù)據(jù)的多節(jié)點(diǎn)預(yù)先載入,工作負(fù)載的跨節(jié)點(diǎn)部署和啟動(dòng),同時(shí)還包括監(jiān)控分析工具的啟動(dòng),以及對(duì)監(jiān)控?cái)?shù)據(jù)、檢查點(diǎn)文件和訓(xùn)練結(jié)果的自動(dòng)保存。
結(jié)語(yǔ)
至此,支持框架幫助用戶完成了深度學(xué)習(xí)工作負(fù)載在數(shù)據(jù)中心計(jì)算資源上的自動(dòng)化部署和運(yùn)行,用戶就可以將更多的注意力集中在商業(yè)邏輯、數(shù)據(jù)分析與預(yù)處理、模型調(diào)試等問題上。也就是說,用戶只需關(guān)注深度學(xué)習(xí)任務(wù)本身,支持框架則負(fù)責(zé)幫助用戶實(shí)現(xiàn)工作負(fù)載在計(jì)算資源上的調(diào)度與執(zhí)行。
本文首發(fā)于戴爾科技集團(tuán)知乎專欄
“AIoT時(shí)代的數(shù)據(jù)資產(chǎn)”
這是一個(gè)由戴爾易安信中國(guó)研發(fā)中心
技術(shù)大咖們所管理的專欄
AI、IoT、大數(shù)據(jù)和數(shù)據(jù)存儲(chǔ)...
你想知道的前沿技術(shù)趨勢(shì)以及深度技術(shù)剖析
我們的研發(fā)人員將會(huì)持續(xù)在該專欄分享
掃描下方二維碼即可關(guān)注我們
☟☟☟
戴爾易安信服務(wù)器、存儲(chǔ)火熱大促!
多品類服務(wù)器鉅惠出擊
低至二六折!
硬盤換閃存1:1促銷,
買普通存儲(chǔ),免費(fèi)升級(jí)全閃,不加價(jià)!
優(yōu)惠多多,趕快行動(dòng)吧!
長(zhǎng)按二維碼獲取您的服務(wù)器專屬底價(jià)!
獲取您的服務(wù)器專屬底價(jià)!
長(zhǎng)按二維碼立享存儲(chǔ)優(yōu)惠!
相關(guān)閱讀推薦:大咖專欄|用區(qū)塊鏈思維探討數(shù)據(jù)備份
了解更多數(shù)字化轉(zhuǎn)型方案查看此鏈接:
https://www.dellemc-solution.com/home/index.html