您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

深度學(xué)習(xí)優(yōu)化技術(shù)實(shí)踐應(yīng)用分析

大小:0.4 MB 人氣: 2017-09-30 需要積分:1

  自2012年Deep Learning的代表模型AlexNet在ImageNet大賽中力壓亞軍,以超過(guò)10個(gè)百分點(diǎn)的絕對(duì)優(yōu)勢(shì)奪得頭籌之后,依托于建模技術(shù)的進(jìn)步、硬件計(jì)算能力的提升、優(yōu)化技術(shù)的進(jìn)步以及海量數(shù)據(jù)的累積,Deep Learning在語(yǔ)音、圖像以及文本等多個(gè)領(lǐng)域不斷推進(jìn),相較于傳統(tǒng)作法取得了顯著的效果提升。工業(yè)界和學(xué)術(shù)界也先后推出了用于Deep Learning建模用途的開(kāi)源工具和框架,包括Caffe、Theano、Torch、MXNet、TensorFlow、Chainer、CNTK等等。其中MXNet、TensorFlow以及CNTK均對(duì)于訓(xùn)練過(guò)程提供了多機(jī)分布式支持,在相當(dāng)大程度上解放了DL建模同學(xué)的生產(chǎn)力。但是,DL領(lǐng)域的建模技術(shù)突飛猛進(jìn),模型復(fù)雜度也不斷增加。從模型的深度來(lái)看,以圖像識(shí)別領(lǐng)域?yàn)槔?2年的經(jīng)典模型AlexNet由5個(gè)卷積層,3個(gè)全連接層構(gòu)成(圖1),在當(dāng)時(shí)看來(lái)已經(jīng)算是比較深的復(fù)雜模型,而到了15年, 微軟亞洲研究院則推出了由151個(gè)卷積層構(gòu)成的極深網(wǎng)絡(luò)ResNet(圖2);從模型的尺寸來(lái)看,在機(jī)器翻譯領(lǐng)域,即便是僅僅由單層雙向encoder,單層decoder構(gòu)成的NMT模型(圖3),在阿里巴巴的一個(gè)內(nèi)部訓(xùn)練場(chǎng)景下,模型尺寸也達(dá)到了3GB左右的規(guī)模。從模型的計(jì)算量來(lái)看,上面提到的機(jī)器翻譯模型在單塊M40 NVIDIA GPU上,完成一次完整訓(xùn)練,也需要耗時(shí)近三周。

  Deep Learning通過(guò)設(shè)計(jì)復(fù)雜模型,依托于海量數(shù)據(jù)的表征能力,從而獲取相較于經(jīng)典shallow模型更優(yōu)的模型表現(xiàn)的建模策略對(duì)于底層訓(xùn)練工具提出了更高的要求?,F(xiàn)有的開(kāi)源工具,往往會(huì)在性能上、顯存支持上、生態(tài)系統(tǒng)的完善性上存在不同層面的不足,在使用效率上對(duì)于普通的算法建模用戶(hù)并不夠友好。阿里云推出的PAI(Platform of Artificial Intelligence)[18]產(chǎn)品則致力于通過(guò)系統(tǒng)與算法協(xié)同優(yōu)化的方式,來(lái)有效解決Deep Learning訓(xùn)練工具的使用效率問(wèn)題,目前PAI集成了TensorFlow、Caffe、MXNet這三款流行的Deep Learning框架,并針對(duì)這幾款框架做了定制化的性能優(yōu)化支持,以求更好的解決用戶(hù)建模的效率問(wèn)題。

  這些優(yōu)化目前都已經(jīng)應(yīng)用在阿里巴巴內(nèi)部的諸多業(yè)務(wù)場(chǎng)景里,包括黃圖識(shí)別、OCR識(shí)別、機(jī)器翻譯、智能問(wèn)答等,這些業(yè)務(wù)場(chǎng)景下的某些建模場(chǎng)景會(huì)涉及到幾十億條規(guī)模的訓(xùn)練樣本,數(shù)GB的模型尺寸,均可以在我們的優(yōu)化策略下很好地得到支持和滿足。經(jīng)過(guò)內(nèi)部大規(guī)模數(shù)據(jù)及模型場(chǎng)景的檢測(cè)之后,我們也期望將這些能力輸出,更好地賦能給阿里外部的AI從業(yè)人員。

  深度學(xué)習(xí)優(yōu)化技術(shù)實(shí)踐應(yīng)用分析

  圖1. AlexNet模型示例

  深度學(xué)習(xí)優(yōu)化技術(shù)實(shí)踐應(yīng)用分析

  圖2. 36層的ResNet模型示例

  深度學(xué)習(xí)優(yōu)化技術(shù)實(shí)踐應(yīng)用分析

  圖3. NMT模型架構(gòu)示例

  接下來(lái),本文會(huì)扼要介紹一下在PAI里實(shí)現(xiàn)的大規(guī)模深度學(xué)習(xí)的優(yōu)化策略。

  2.大規(guī)模深度學(xué)習(xí)優(yōu)化策略在PAI中實(shí)踐應(yīng)用

  大規(guī)模深度學(xué)習(xí)作為一個(gè)交叉領(lǐng)域,涉及到分布式計(jì)算、操作系統(tǒng)、計(jì)算機(jī)體系結(jié)構(gòu)、數(shù)值優(yōu)化、機(jī)器學(xué)習(xí)建模、編譯器技術(shù)等多個(gè)領(lǐng)域。按照優(yōu)化的側(cè)重點(diǎn),可以將優(yōu)化策略劃分為如下幾種:

  I. 計(jì)算優(yōu)化

  II. 顯存優(yōu)化

  III. 通信優(yōu)化

  IV. 性能預(yù)估模型

  V 軟硬件協(xié)同優(yōu)化

  PAI平臺(tái)目前主要集中在顯存優(yōu)化、通信優(yōu)化、性能預(yù)估模型、軟硬件協(xié)同優(yōu)化這四個(gè)優(yōu)化方向。

  1)。 顯存優(yōu)化

  內(nèi)存優(yōu)化主要關(guān)心的是GPU顯存優(yōu)化的議題,在Deep Learning訓(xùn)練場(chǎng)景,其計(jì)算任務(wù)的特點(diǎn)(大量的滿足SIMD特性的矩陣浮點(diǎn)運(yùn)算執(zhí)行序列,控制邏輯通常比較簡(jiǎn)單)決定了通常我們會(huì)選擇GPU來(lái)作為計(jì)算設(shè)備,而GPU作為典型的高通量異構(gòu)計(jì)算設(shè)備,其硬件設(shè)計(jì)約束決定了其顯存資源往往是比較稀缺的,目前在PAI平臺(tái)上提供的中檔M40顯卡的顯存只有12GB,而復(fù)雜度較高的模型則很容易達(dá)到M40顯存的臨界值,比如151層的ResNet、阿里巴巴內(nèi)部用于中文OCR識(shí)別的一款序列模型以及機(jī)器翻譯模型。從建模同學(xué)的角度來(lái)看,顯存并不應(yīng)該是他們關(guān)心的話題,PAI在顯存優(yōu)化上做了一系列工作,期望能夠解放建模同學(xué)的負(fù)擔(dān),讓建模同學(xué)在模型尺寸上獲得更廣闊的建模探索空間。在內(nèi)存優(yōu)化方面, 通過(guò)引入task-specific的顯存分配器以及自動(dòng)化模型分片框架支持,在很大程度上緩解了建模任務(wù)在顯存消耗方面的約束。其中自動(dòng)化模型分片框架會(huì)根據(jù)具體的模型網(wǎng)絡(luò)特點(diǎn),預(yù)估出其顯存消耗量,然后對(duì)模型進(jìn)行自動(dòng)化切片,實(shí)現(xiàn)模型并行的支持,在完成自動(dòng)化模型分片的同時(shí),我們的框架還會(huì)考慮到模型分片帶來(lái)的通信開(kāi)銷(xiāo),通過(guò)啟發(fā)式的方法在大模型的承載能力和計(jì)算效率之間獲得較優(yōu)的trade-off。

  2)。 通信優(yōu)化

  大規(guī)模深度學(xué)習(xí),或者說(shuō)大規(guī)模機(jī)器學(xué)習(xí)領(lǐng)域里一個(gè)永恒的話題就是如何通過(guò)多機(jī)分布式對(duì)訓(xùn)練任務(wù)進(jìn)行加速。而機(jī)器學(xué)習(xí)訓(xùn)練任務(wù)的多遍迭代式通信的特點(diǎn),使得經(jīng)典的map-reduce式的并行數(shù)據(jù)處理方式并不適合這個(gè)場(chǎng)景。對(duì)于以單步小批量樣本作為訓(xùn)練單位步的深度學(xué)習(xí)訓(xùn)練任務(wù),這個(gè)問(wèn)題就更突出了。

  依據(jù)Amdahl’s law[19],一個(gè)計(jì)算任務(wù)性能改善的程度取決于可以被改進(jìn)的部分在整個(gè)任務(wù)執(zhí)行時(shí)間中所占比例的大小。而深度學(xué)習(xí)訓(xùn)練任務(wù)的多機(jī)分布式往往會(huì)引入額外的通信開(kāi)銷(xiāo),使得系統(tǒng)內(nèi)可被提速的比例縮小,相應(yīng)地束縛了分布式所能帶來(lái)的性能加速的收益 。

  在PAI里,我們通過(guò)pipeline communication、late-multiply、hybrid-parallelism以及heuristic-based model average等多種優(yōu)化策略對(duì)分布式訓(xùn)練過(guò)程中的通信開(kāi)銷(xiāo)進(jìn)行了不同程度的優(yōu)化,并在公開(kāi)及in-house模型上取得了比較顯著的收斂加速比提升。

  在Pipeline communication(圖4)里,通過(guò)將待通信數(shù)據(jù)(模型及梯度)切分成一個(gè)個(gè)小的數(shù)據(jù)塊并在多個(gè)計(jì)算結(jié)點(diǎn)之間充分流動(dòng)起來(lái),可以突破單機(jī)網(wǎng)卡的通信帶寬極限,將一定尺度內(nèi)將通信開(kāi)銷(xiāo)控制在常量時(shí)間復(fù)雜度。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?