如何評估深度學習的性能?英偉達提出7大挑戰
選自tiriasresearch
作者:David A. Teich等
機器之心編譯
關於深度學習性能,還有很多不明之處。例如,你怎麼進行測量?你應該測量什麼?在不久之前的 GTC 2018,英偉達 CEO 黃仁勛介紹了 PLASTER 框架,從可編程性到學習率 7 大挑戰來評測深度學習性能。今日,英偉達博客對 PLASTER 框架進行了詳細介紹,機器之心編譯了相關白皮書的主要內容。
白皮書鏈接:https://www.tiriasresearch.com/wp-content/uploads/2018/05/TIRIAS-Research-NVIDIA-PLASTER-Deep-Learning-Framework.pdf
PLASTER 代表的含義:
可編程性(Programmability)
延遲(Latency)
準確率(Accuracy)
模型大小(Size of Model)
吞吐量(Throughput)
能效(Energy Efficiency)
學習率(Rate of Learning)
可編程性
機器學習不僅在模型的規模和複雜性方面經歷了爆炸性的增長,而且在神經網路體系結構的多樣性方面也經歷了類似的增長。即使是專家也很難理解模型的選擇,然後選擇合適的模型來解決他們的人工智慧問題。
在對深度學習模型進行編碼和訓練之後,針對特定的運行時推斷環境對其進行優化。英偉達使用兩個關鍵工具解決訓練和推理難題。在編碼方面,基於人工智慧的服務開發人員使用 CUDA,這是一個並行計算平台和 GPU 通用計算的編程模型。在推斷方面,基於人工智慧的服務開發人員使用了英偉達的可編程推斷加速器 TensorRT。
CUDA 通過簡化在英偉達平台上實現演算法所需的步驟來幫助數據科學家。TensorRT 可編程推斷加速器採用經過訓練的神經網路,並對其進行優化以用於運行時部署。它測試浮點數和整數精度的不同級別,以便開發人員和運算過程能夠平衡系統所需的準確率和性能,從而提供優化的解決方案。
開發人員可以直接在 TensorFlow 框架中使用 TensorRT 來優化基於人工智慧的服務交付模型。TensorRT 可以從包括 Caffe2、MXNet 和 PyTorch 在內的各種框架中導入開放神經網路交換 ( ONNX ) 模型。雖然深度學習仍然是在技術層面編碼,但這將幫助數據科學家更好地利用寶貴的時間。
延遲
人和機器做決策或採取行動時都需要反應時間。延遲就是請求與做出回應之間所需要的時間。大部分人性化軟體系統(不只是 AI 系統),延遲都是以毫秒來計量的。
由於 Siri、Alexa 等語音介面的出現,語音識別成為了很常見的一種應用。在消費者與客服領域,虛擬助手是很大的一種需求。但是,當人們接入虛擬助手時,即使數秒的延遲都會讓人感覺不自然。
圖像和視頻管理是另一種需要低延遲、實時推理服務的應用。谷歌曾表示,7 毫秒是圖像和視頻管理應用的最優化延遲。
另一個例子是自動翻譯。早期基於程序、專家系統的設計,不能理解高速語言的細微差別,難以提供實時會話。現在,深度學習進一步改進了機器翻譯。
準確率
雖然準確率對每個行業來說都不可或缺,但對醫療保健行業來說尤其重要。在過去的幾十年中,醫學成像技術有了很大進步,增加了其在醫療中的使用量,並且需要更多的圖像分析來確定醫學問題。醫學成像的進步和使用還意味著必須把大量數據從醫療器械傳給醫學專家進行分析。解決數據量問題有兩個選擇:一是以較長延遲為代價傳輸完整信息,二是對數據進行採樣並使用技術對其進行重建,但這些技術可能導致錯誤的重建和診斷。
深度學習的一個優點是可以以高精度進行訓練,並且以較低精度實現。深度學習訓練可以在更高級別的數學精度上非常精確地進行,通常選擇 FP32。然後在運行時可以用較低精度的數學來實現,通常選擇 FP16,從而獲得改良的吞吐量、效率甚至延遲。保持高準確率對於最佳用戶體驗至關重要。TensorRT 利用 Tesla V100 Tensor Core 的 FP16 處理以及 Tesla P4 的 INT8 特性來加速推斷,與 FP32 相比,其推理速度提高了 2 - 3 倍,同時準確率損失接近零。
基於人工智慧的服務開發人員可以優化其深度學習模型以提高效率,然後在工作中以較低代價實現這些模型。
圖 2:TensorRT 降低了精度的推斷性能
模型大小
深度學習模型的大小和處理器間的物理網路容量都對性能有所影響,特別是在延遲和吞吐量方面。深度學習網路模型數量激增,模型大小和複雜性隨之增加,也因此能夠做更複雜的分析,滿足了更強大系統的訓練需求。在深度學習模型中,計算力和物理網路擴展的原因是:
網路層數量
每層節點(神經元)數量;
每層計算複雜度
一個網路層節點間連接的數量以及相鄰層間節點的數量
深度學習市場還處於早期階段。在對比模型大小時,當前的思路都歸結於物理關聯:深度學習模型大小與計算和推理所需的物理網路資源成正比。例如,當開發者優化一個已訓練深度學習模型來保證推斷準確率和延遲時,可能會降低計算精度、簡化每個模型網路層或者簡化模型網路層間的連接。然而,使用更大的已訓練模型往往會帶來更大的優化模型來做推斷。
圖 3:深度學習模型大小
吞吐量
吞吐量用來表述:在給定創建或部署的深度學習網路規模的情況下,可以傳遞多少推斷結果。開發人員越來越多地在指定的延遲閾值內優化推斷。雖然延遲限制可確保良好的客戶體驗,但在此限制內最大化吞吐量對於最大限度地增加數據中心效率和收益至關重要。
人們傾向於把吞吐量作為唯一的性能指標,因為每秒計算的次數越多,其他領域的性能就越好。但是,如果系統無法在指定的延遲要求、電源預算或伺服器節點數內提供足夠的吞吐量,那它最終將無法很好地滿足應用程序的推斷需求。如果吞吐量和延遲之間缺乏適當的平衡,結果會是較差的客戶體驗、服務等級協議(SLAs)缺失,以及服務可能出現故障。
娛樂業長期以來一直把吞吐量作為關鍵性能指標,尤其是在動態廣告投放中。例如,品牌贊助商將廣告動態地置於諸如電視節目或體育賽事的視頻流中。廣告商想知道其廣告出現的頻率,以及它們是否傳達給了預期受眾。了解這些投放的準確性和焦點對於廣告商來說至關重要。
圖 4:直播時的圖像識別
能效
隨著深度學習加速器性能的提高,深度學習加速器的能耗也飛速增加。為深度學習解決方案提供 ROI 涉及了更多的層面,而不能僅僅看到系統的推斷性能。能耗增長會快速增加提供服務的成本,這推動了在設備和系統中對提高能效的需求。
例如,語音處理中通常需要海量處理來提供自然語音的智能應答。提供實時語音處理的數據中心推斷通常涉及大量計算機資源的支撐,並給企業總成本帶來很大的影響。因此,行業中使用每瓦特推斷數(inferences-per-watt)來度量運營狀況。超大規模數據中心追求能效的最大化,以在固定電源預算的情況下提供儘可能多的推斷。
解決方案不是僅僅看哪些單獨的處理器擁有更低的能耗。例如,如果某個處理器的功率是 200W,另一個處理器的功率是 130W,這並不表示 130W 的處理器系統更好。如果 200W 的系統能以 20 倍的速度更快地完成任務,那麼它的能效更大。
每瓦特推斷數還取決於訓練過程和推斷過程中的延遲因素。能效不僅取決於過程中的純能耗,還取決於吞吐量。能效是另一個展示 PLASTER 元素相互關聯的例子,並且必須在完整的推斷性能圖景中被考慮到。
學習率
近年來,企業開始實施開發運營,使用更強大的系統和更高級的編程工具,讓開發和業務變得更加緊密。雖然深度學習仍處於起步階段,但很多等待利用深度學習的學術、政府和商業機構卻並非如此。他們想要的不是利用空洞而靜態的數據訓練出來的推斷引擎。「AI」中包含了智能(intelligence)一詞,用戶希望神經網路能在合理的期限內進行學習和適應。為了讓複雜的深度學習系統推動商業發展,軟體工具開發者必須支持開發運營。
隨著組織機構繼續對深度學習和神經網路進行實驗研究,他們將學習如何更有效地構建和實現深度學習系統。由於推斷服務持續接收新數據並且服務本身也在增長和變化,深度學習模型必須周期性地重新訓練。為此,當新數據到達時,IT 機構和軟體開發者必須更快地重新訓練模型。多 GPU 伺服器配置已經使深度學習訓練時間從數周、數天降低到了數小時、數分鐘。更快的訓練時間意味著開發者可以更頻繁地重新訓練他們的模型以提高準確率或保持高準確率。目前一些深度學習實現已經可以每天重新訓練多次。
可編程性也是學習率的一個影響因素。為了減少開發者工作流,谷歌和英偉達近日發布了 TensorFlow 和 TensorRT 的集成。開發者可以在 TensorFlow 框架內調用 TensorRT 來優化已訓練的網路,從而在英偉達的 GPU 上高效運行。深度學習能夠更好地整合訓練過程和推斷過程,因而更易成為開發運營的解決方案,幫助機構在迭代他們的深度學習模型時快速地實現變化。
參考鏈接:https://blogs.nvidia.com/blog/2018/05/12/how-do-i-understand-deep-learning-performance/
本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。
------------------------------------------------
※CMU機器學習系主任Manuela Veloso加入摩根大通,華爾街金融巨頭的AI投資
※谷歌展示全新醫療診斷範式:深度學習+AR顯微鏡=實時檢測癌症
TAG:機器之心 |