1. 程式人生 > >解密 | 阿里雲破影象識別世界紀錄的背後

解密 | 阿里雲破影象識別世界紀錄的背後

本文原作者:昀龍、顧真

2018年12月25日,斯坦福大學釋出最新的DAWNbench深度學習推理榜單,阿里雲獲得了影象識別效能及成本雙料冠軍,打破了基於亞馬遜AWS計算平臺保持的長達8個月的紀錄。這是該榜單首次出現中國科技公司。

阿里雲技術團隊使用ecs.gn5i-c8g1.2xlarge例項,以每張圖片4.218ms的效能(見圖2),0.00000154美金(見圖4)的推理成本分別登頂推理效能和成本榜單,不僅效能是第二名基於Amazon EC2 [c5.18xlarge]例項的2.36倍,而且平均每張圖片的推理成本也比第二名低6.1%。

image


圖1 影象識別示意圖

儘管針對DNN效能的優化始終是學術界及產業界研發的熱點,但在DAWNbench競賽推出之前,業內並沒有一個對深度學習訓練及推理任務進行端到端評價的標準。DAWNbench競賽是第一個既關注效能指標,也關注模型精度及成本等指標的競賽。自從斯坦福大學在2017的NIPS會議上釋出DAWNbench競賽以來,該競賽吸引了產業界的極大關注。

阿里雲參與了DAWNbench競賽中的兩個專案:1,針對ImageNet驗證集中50000張圖片的分類任務,要求分類模型的Top-5精度不低於93%,統計分類每一張圖片的平均延遲,延遲越低,效能越高,排名越高。2,在每次一張的情況下,完成50000張圖片推理的平均成本

bb35eea5daf9606126f19683fdbe2190


圖2 DAWNbench競賽的推理效能榜單(擷取日期:2018年12月25日)

2bf228f956695844a7f43c6d0dbb1286


圖3 DAWNbench競賽的推理成本榜單(擷取日期:2018年12月25日)

5E070F20_AD61_4ba9_AF4C_8D28D94A75A8


圖4 DAWNbench競賽阿里雲的推理成本資料

圖2與圖3分別給出了截止2018年12月25日這兩個專案的排名情況。從圖2與圖3可以看到,在這兩個子專案上,阿里雲均名列第一。為了在這兩個任務上達到最快的效能,和最低的成本,參賽團隊從以下三個維度開展了優化:1,深度學習模型的選擇;2,8bit量化優化;3,阿里雲GPU例項的選擇。

深度學習模型的選擇

在阿里雲團隊參賽之前,ImageNet推理任務榜單的第一名選擇了ResNet50模型,在Amazon EC2 [c5.18xlarge]例項上以推理效能9.96ms和平均推理成本1.64E-06美金排名第一。該模型源自於Facebook在1小時內完成ImageNet訓練的論文“Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour”,將之標記為ResNet50-v2,將原始的ResNet50模型標記為ResNet50-v1。雖然ResNet50-v2更易於訓練,但其訓練計算量增加了約12%,推理計算量增加了約6%。對於推理任務,在精度達標的情況下,任何程度上計算量的節省都是有價值的。基於此,阿里雲團隊選擇了ResNet50-v1模型。

image


圖5 ResNet50模型訓練過程中學習率的設定

在訓練ReseNet50-v1模型的過程中,採用經典的三段式格式,很難達到93%的Top-5精度。為了解決精度問題,參賽團隊遍歷了超引數空間,但ReseNet50-v1模型的Top-5精度仍舊難以穩定的超過93%。為了解決該問題,團隊設計了圖5中的學習率格式,訓練的早期學習率線性增大至峰值,隨後線性衰減。以該學習率為基礎,最終得到了Top5精度為93.28%的ResNet50-v1模型。

Int8量化

低位元量化是提升推理效能的一種主要手段,儘管目前已經有了採用1位元或2位元進行ResNet網路推理的研究,但這些過低精度的量化往往導致了較大的精度損失。與此相對,阿里雲團隊採用了Int8量化方法,在提升計算效能的同時,兼顧了模型的預測精度。

為了使優化的成果服務於廣大的阿里雲客戶,團隊選擇了TensorFlow這一流行的深度學習框架來開展優化,其中Int8量化的工作基於TensorRT開展。優化的難點在於將訓練好的TensorFlow模型量化為TensorRT的Int8模型,並將量化後的TensorRT模型載入進TensorFlow計算圖中進行推理。

隨後,團隊基於TensorFlow的Benchmark程式碼開展了深度優化。在Int8量化的過程中,需要計算量化前後的Kullback-Leibler散度,以實現神經網路各層啟用值動態範圍的校準。團隊首先實現了校準過程,這個過程包含了三個環節:Int8量化模型的建立、針對量化模型的校準、基於校準結果產生優化後的Int8模型。隨後優化了Benchmark的推理模式,使其能夠匯入優化後的推理引擎。

阿里雲GPU例項的選擇

參賽團隊選擇了支援8b計算的NVIDIA Tesla P4 GPU,以及基於該GPU的阿里雲ecs.gn5i-c8g1.2xlarge例項。該例項包含了一個8核的vCPU,及1塊P4 GPU。該例項提供了三種價格選項:包年包月,按量付費及搶佔式例項。在搶佔式例項下,每個例項每小時的價格僅為7.015元。

GPU Latency(ms) Top5 Accura
Tesla P4 4.218 93.16%

表1,阿里雲ecs.gn5i-c8g1.2xlarge例項的平均推理效能及精度

表1給出了在阿里雲ecs.gn5i-c8g1.2xlarge例項上,針對DawnBench競賽ImageNet推理任務的優化結果。由表1可以看到,在ecs.gn5i-c8g1.2xlarge例項上,每次完成1張圖片推理的平均效能為4.218ms,是第二名基於Amazon EC2 [c5.18xlarge]例項的2.36倍。當採用按量付費購買模式時,成本為1.54E-06美金,比第二名節省6.1%。而在搶佔式例項下,成本將進一步降低為1.23E-06美金,比第二名節省26.2%。完成50000張圖片的推理精度為93.16%,超出ImageNet推理任務精度要求。

優化成果可用於計算機視覺任務中廣泛使用的ResNet、Inception 等模型,而且已經整合在了阿里雲GPU計算平臺加速框架(Perseus)內,將以映象的形式為使用GPU的客戶提供更好的使用體驗。阿里雲正在構建從虛擬化,儲存,GPU加速,到深度學習框架優化的全棧異構計算服務平臺。