閱讀399 返回首頁    go 阿裏雲 go 技術社區[雲棲]


大規模深度學習優化技術在PAI平台中的應用及實踐

1. 前言


自2012年Deep Learning的代表模型AlexNet在ImageNet大賽中力壓亞軍,以超過10個百分點的絕對優勢奪得頭籌之後,依托於建模技術的進步、硬件計算能力的提升、優化技術的進步以及海量數據的累積,Deep Learning在語音、圖像以及文本等多個領域不斷推進,相較於傳統作法取得了顯著的效果提升。

 

工業界和學術界也先後推出了用於Deep Learning建模用途的開源工具和框架,包括Caffe、Theano、Torch、MXNet、TensorFlow、Chainer、CNTK等等。其中MXNet、TensorFlow以及CNTK均對於訓練過程提供了多機分布式支持,在相當大程度上解放了DL建模同學的生產力。

 

但是,DL領域的建模技術突飛勐進,模型複雜度也不斷增加。從模型的深度來看,以圖像識別領域為例,12年的經典模型AlexNet由5個卷積層,3個全連接層構成(圖1),在當時看來已經算是比較深的複雜模型,而到了15年, 微軟亞洲研究院則推出了由151個卷積層構成的極深網絡ResNet(圖2);從模型的尺寸來看,在機器翻譯領域,即便是僅僅由單層雙向encoder,單層decoder構成的NMT模型(圖3),在阿裏巴巴的一個內部訓練場景下,模型尺寸也達到了3GB左右的規模。

 

從模型的計算量來看,上麵提到的機器翻譯模型在單塊M40 NVIDIA GPU上,完成一次完整訓練,也需要耗時近三周。Deep Learning通過設計複雜模型,依托於海量數據的表征能力,從而獲取相較於經典shallow模型更優的模型表現的建模策略對於底層訓練工具提出了更高的要求。現有的開源工具,往往會在性能上、顯存支持上、生態係統的完善性上存在不同層麵的不足,在使用效率上對於普通的算法建模用戶並不夠友好。阿裏雲推出的PAI(Platform of Artificial Intelligence)產品則致力於通過係統與算法協同優化的方式,來有效解決Deep Learning訓練工具的使用效率問題,目前PAI集成了TensorFlow、Caffe、MXNet這三款流行的Deep Learning框架,並針對這幾款框架做了定製化的性能優化支持,以求更好的解決用戶建模的效率問題。

 

這些優化目前都已經應用在阿裏巴巴內部的諸多業務場景裏,包括黃圖識別、OCR識別、機器翻譯、智能問答等,這些業務場景下的某些建模場景會涉及到幾十億條規模的訓練樣本,數GB的模型尺寸,均可以在我們的優化策略下很好地得到支持和滿足。經過內部大規模數據及模型場景的檢測之後,我們也期望將這些能力輸出,更好地賦能給阿裏外部的AI從業人員。

cce2b6158f5fc546033b5ae3e8516b4d568e599d

1. AlexNet模型示例

3f24c96cba5dcca1aad92f14e0c769668574e9a2

2. 36層的ResNet模型示例

92b984efc9ab08f82934511b899a708caa7e3af9

3. NMT模型架構示例

接下來,本文會扼要介紹一下在PAI裏實現的大規模深度學習的優化策略。

2. 大規模深度學習優化策略在PAI中實踐應用

大規模深度學習作為一個交叉領域,涉及到分布式計算、操作係統、計算機體係結構、數值優化、機器學習建模、編譯器技術等多個領域。按照優化的側重點,可以將優化策略劃分為如下幾種:

I. 計算優化

II. 顯存優化

III. 通信優化

IV. 性能預估模型

V 軟硬件協同優化

PAI平台目前主要集中在顯存優化、通信優化、性能預估模型、軟硬件協同優化這四個優化方向。

1). 顯存優化

內存優化主要關心的是GPU顯存優化的議題,在Deep Learning訓練場景,其計算任務的特點(大量的滿足SIMD特性的矩陣浮點運算執行序列,控製邏輯通常比較簡單)決定了通常我們會選擇GPU來作為計算設備,而GPU作為典型的高通量異構計算設備,其硬件設計約束決定了其顯存資源往往是比較稀缺的,目前在PAI平台上提供的中檔M40顯卡的顯存隻有12GB,而複雜度較高的模型則很容易達到M40顯存的臨界值,比如151層的ResNet、阿裏巴巴內部用於中文OCR識別的一款序列模型以及機器翻譯模型。從建模同學的角度來看,顯存並不應該是他們關心的話題,PAI在顯存優化上做了一係列工作,期望能夠解放建模同學的負擔,讓建模同學在模型尺寸上獲得更廣闊的建模探索空間。在內存優化方麵, 通過引入task-specific的顯存分配器以及自動化模型分片框架支持,在很大程度上緩解了建模任務在顯存消耗方麵的約束。其中自動化模型分片框架會根據具體的模型網絡特點,預估出其顯存消耗量,然後對模型進行自動化切片,實現模型並行的支持,在完成自動化模型分片的同時,我們的框架還會考慮到模型分片帶來的通信開銷,通過啟發式的方法在大模型的承載能力和計算效率之間獲得較優的trade-off。

2). 通信優化

大規模深度學習,或者說大規模機器學習領域裏一個永恒的話題就是如何通過多機分布式對訓練任務進行加速。而機器學習訓練任務的多遍迭代式通信的特點,使得經典的map-reduce式的並行數據處理方式並不適合這個場景。對於以單步小批量樣本作為訓練單位步的深度學習訓練任務,這個問題就更突出了。

依據Amdahl’s law[19],一個計算任務性能改善的程度取決於可以被改進的部分在整個任務執行時間中所占比例的大小。而深度學習訓練任務的多機分布式往往會引入額外的通信開銷,使得係統內可被提速的比例縮小,相應地束縛了分布式所能帶來的性能加速的收益 。

在PAI裏,我們通過pipeline communication、late-multiply、hybrid-parallelism以及heuristic-based model average等多種優化策略對分布式訓練過程中的通信開銷進行了不同程度的優化,並在公開及in-house模型上取得了比較顯著的收斂加速比提升。

在Pipeline communication(圖4)裏,通過將待通信數據(模型及梯度)切分成一個個小的數據塊並在多個計算結點之間充分流動起來,可以突破單機網卡的通信帶寬極限,將一定尺度內將通信開銷控製在常量時間複雜度。

668478ecaa0c4fa07ecfe66ef466561575f7f1f1

4. Pipeline communication

在Late-multiply裏,針對全連接層計算量小,模型尺寸大的特點,我們對於多機之間的梯度匯總邏輯進行了優化,將“多個worker計算本地梯度,在所有結點之間完成信息交互”(圖5)的分布式邏輯調整為“多個worker將全連接層的上下兩層layer的後向傳播梯度及激活值在所有計算結點之間完成信息交互”(圖6),當全連接層所包含的隱層神經元很多時,會帶來比較顯著的性能提升。

58aa974aa95e4e2bb61007bb9b0697a22e784f28

5. Without late-multiply

e09693c8d761bf87211c86928b6fc64b72385d17

6. With late-multiply

在Hybrid-parallelism裏,針對不同模型網絡的特點,我們引入了數據並行與模型並行的混合策略,針對計算占比高的部分應用數據並行,針對模型通信量大的部分應用模型並行,在多機計算加速與減少通信開銷之間獲得了較好的平衡點。通過圖7,可以看到將這個優化策略應用在TensorFlow裏AlexNet模型的具體體現。

e11069f072d90d2393790f79b1a7410b492bb78b

 

7. AlexNet with hybrid-parallelism

3). 性能預估模型

對於建模人員來說,他們關心的往往是以最具性價比的方式完成他們的建模訓練任務,而不是用多少張卡,以什麼樣的分布式執行策略來完成他們的訓練任務。而目前Deep Learning訓練工具以及訓練任務的複雜性,使得建模人員往往不得不透過leaky abstraction的管道,去關心為了完成他們的一個建模實驗,應該使用多少張GPU卡,多少個 CPU核、什麼樣的通信介質以及選擇哪種分布式執行策略,才能有效地完成自己的訓練任務。

基於性能預估模型,我們期望能夠將建模人員從具體的訓練任務執行細節中解放出來。具體來說,給定建模用戶的一個模型結構,以及所期望花費的費用和時間,PAI平台會采用模型+啟發式的策略預估出需要多少硬件資源,使用什麼樣的分布式執行策略可以盡可能逼近用戶的期望。

4). 軟硬件協同優化

上麵提到的3個優化策略主要集中在任務的離線訓練環節,而Deep Learning在具體業務場景的成功應用,除了離線訓練以外,也離不開在線布署環節。作為典型的複雜模型,無論是功耗、計算性能還是模型動態更新的開銷,Deep Learning模型為在線部署提出了更高的要求和挑戰。在PAI平台裏,關於在線部署,我們除了軟件層麵的優化之後,也探索了軟硬件協同優化的技術路線。目前在PAI平台裏,我們正在基於FPGA實現在線inference的軟硬件協同優化。在PAI裏實現軟硬件協同優化的策略與業界其他同行的作法會有所不同,我們將這個問題抽象成一個domain-specific的定製硬件編譯優化的問題,通過這種抽象,我們可以采取更為通用的方式來解決一大批問題,從而更為有效地滿足模型多樣性、場景多樣性的需求。

3. 小結

大規模深度學習優化是一個方興未艾的技術方向 ,無論是工業界還是學術界在對這個領域都有著極高的關注度,圍繞這個主題也湧現出若幹個成功的start-up,通過分享這篇文章,我們期望能夠讓PAI的終端用戶了解到為了提升用戶提升,改善用戶建模效率,我們在背後所做出的優化努力。

今年5月份,NVIDIA GTC 2017北美主場會在矽穀舉行,PAI團隊也會在矽穀現場給出一個以大規模深度學習優化為主題的分享。今年7月份,在Strats+Hadoop World 2017大會上,PAI團隊也會做一個相關主題的分享。也希望能夠以這篇文章為引子,以這篇個技術會議為渠道,跟國內外更多從事相關領域工作的業界同行有更多交流和碰撞,一起來推進大規模深度學習這個技術方向的進展和建設。

 

參考文獻

[1]. Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep

convolutional neural networks. In Advances in neural information processing systems , pages

1097–1105, 2012.

[2]. Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image

recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition ,

pages 770–778, 2016.

[3]. Geoffrey Hinton, Li Deng, Dong Yu, George E Dahl, Abdel-rahman Mohamed, Navdeep Jaitly,

Andrew Senior, Vincent Vanhoucke, Patrick Nguyen, Tara N Sainath, et al. Deep neural networks

for acoustic modeling in speech recognition: The shared views of four research groups.

IEEE Signal Processing Magazine , 29(6):82–97, 2012.

[4]. Sharan Chetlur, Cliff Woolley, Philippe Vandermersch, Jonathan Cohen, John Tran, Bryan

Catanzaro, and Evan Shelhamer. cudnn: Efficient primitives for deep learning. arXiv preprint

arXiv:1410.0759 , 2014.

[5]. Nitish Srivastava, Geoffrey E Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov.

Dropout: a simple way to prevent neural networks from overfitting. Journal of Machine

Learning Research , 15(1):1929–1958, 2014.

[6]. George E Dahl, Tara N Sainath, and Geoffrey E Hinton. Improving deep neural networks

for lvcsr using rectified linear units and dropout. In Acoustics, Speech and Signal Processing

(ICASSP), 2013 IEEE International Conference on , pages 8609–8613. IEEE, 2013.

[7]. Jiquan Ngiam, Adam Coates, Ahbik Lahiri, Bobby Prochnow, Quoc V Le, and Andrew Y

Ng. On optimization methods for deep learning. In Proceedings of the 28th International

Conference on Machine Learning (ICML-11) , pages 265–272, 2011.

[8]. Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training

by reducing internal covariate shift. arXiv preprint arXiv:1502.03167 , 2015.

[9]. Diederik Kingma and Jimmy Ba. Adam: A method for stochastic optimization. arXiv preprint

arXiv:1412.6980 , 2014.

[10]. Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E Hinton. Layer normalization. arXiv preprint

arXiv:1607.06450 , 2016.

[11]. Chun-Wei Tsai, Chin-Feng Lai, Ming-Chao Chiang, Laurence T Yang, et al. Data mining for

internet of things: A survey. IEEE Communications Surveys and Tutorials , 16(1):77–97, 2014.

[12]. A Hannun, C Case, J Casper, B Catanzaro, G Diamos, E Elsen, R Prenger, S Satheesh, S Sengupta, A Coates, et al. Deepspeech: scaling up end-to-end speech recognition. 2014. arXiv

preprint arXiv:1412.5567 .

[13]. Dario Amodei, Rishita Anubhai, Eric Battenberg, Carl Case, Jared Casper, Bryan Catanzaro,

Jingdong Chen, Mike Chrzanowski, Adam Coates, Greg Diamos, et al. Deep speech 2: Endto-

end speech recognition in english and mandarin. arXiv preprint arXiv:1512.02595 , 2015.

Ronan Collobert and Jason Weston. A unified architecture for natural language processing:

[14]. Deep neural networks with multitask learning. In Proceedings of the 25th international conference

on Machine learning , pages 160–167. ACM, 2008.

[15]. Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, Wolfgang

Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Google’s neural machine

translation system: Bridging the gap between human and machine translation. arXiv

preprint arXiv:1609.08144 , 2016.

[16]. Ilya Sutskever, Oriol Vinyals, and Quoc V Le. Sequence to sequence learning with neural

networks. In Advances in neural information processing systems , pages 3104–3112, 2014.

[17]. https://www.nvidia.com/object/tesla-m40.html

[18]. https://yq.aliyun.com/articles/57677

[19]. https://en.wikipedia.org/wiki/Amdahl%27s_law



數據工程師學大數據技能去哪裏,來阿裏雲數加體驗館https://data.aliyun.com/experience


【全球獨家首發】阿裏雲數加大數據產品手冊V1.0(下載)


阿裏雲數加官網訪問地址:https://data.aliyun.com/

最後更新:2017-04-01 16:41:01

  上一篇:go 數據挖掘——概述
  下一篇:go 2016雲棲獎揭曉,九大獲獎者影響智能時代的中國