满足人工智能日益增长的要求
擴展機器學習,滿足人工智能日益增長的要求
更新時間: 2017 年 1 月 12 日
????????????????????????作者:Pradeep Dubey(英特爾)和 Amir Khosrowshahi 博士 (Nervana)
下載?[PDF 1.30MB]
人工智能 (AI) 的愿景非常簡單,使電腦像人類一樣思考和工作,和人類難以區分。人工智能離不開電腦,但它主要依賴人類的關注點、洞察力和啟發。人工智能以人為本,但是人類的關注集中于人類專家。對專家的依賴(尤其是最初應用人工智能領域的專家,如醫學領域的專家)給不斷發展的人工智能帶來了挑戰,因為專家不能擴展。
如今,人工智能依賴機器學習,后者是一類能夠隨著時間進行改善的算法,其關鍵是具備出色的數據處理能力,并不斷對硬件及方法進行完善。這是人工智能的一貫原則,但是由于需要處理和開發的數據規模較大,而現實中沒有這么多數據,這個原則并未貫徹執行。如今,數據的規模每年提升一倍,其增度超過了計算能力。這就是我們討論人工智能的真正原因,也驗證了機器學習是實現人工智能功能的有效手段。
人工智能、機器學習與神經網絡
神經網絡作為一種算法,屬于人工智能領域機器學習范圍。因此,神經網絡中包含一個組 - 深度神經網絡的“子子類”。包含兩個以上的輸入和輸出隱藏層。圖 1 顯示通過關系權重相連接的單個輸入和輸出層。實際上,深度神經網絡有 100 多個輸入和輸出層。
圖 1. 單層神經網絡
機器學習算法中的神經網絡子類是最受關注的算法。本文重點介紹了機器學習和機器學習算法的子類 - 神經網絡。關系如圖 2 所示。
圖 2. 機器學習與人工智能領域的神經網絡
?
將一張圖像輸入到深度神經網絡,它將找到并用方框(或輪廓)標記您要找的人。前提是網絡接受過相應的訓練。從輸入到輸出的任務稱做 “向前傳播”,術語稱之為 “推斷”。
必須對神經網絡進行訓練。訓練充滿挑戰。
訓練
訓練網絡需要哪些條件?首先,執行向前傳播,并查看結果。對比預想的結果和實際的結果,取其差值,并將差值傳播回去(圖 3)。這就是向后傳播。向后傳播算法是最難的。調整每個邊緣的權重。需要認真地逐層完成,針對多個訓練場景(本示例使用的是圖像)。
圖 3. 神經網絡輸入、節點、輸出與基準評判
?
當前一流的訓練方案有兩大挑戰:a) 依賴標記數據(監督式訓練);b) 算法并行性十分有限。標記用于訓練的數據,盡管需要大量人力,但是普通人即可完成(不需要專家),他們通常在目標對象周圍畫一個方框或輪廓。算法并行性主要用于批量處理圖像,以獲取某一點的平均屬性。訓練數據通常不適用于較大規模的批處理器,因此批量尺寸通常限制在 1000 左右。
由于輸入數據(圖像)較多,而且網絡深度廣,訓練主要以串行方式進行(一次一層),網絡本身也非常龐大(需要計算數百萬的不同權重),因此,訓練時間很長。對于多數的使用案例來說,訓練時間過長(數周,甚至數月)令人難以接受。如果缺乏訓練有素的模型,推斷的目標任務無法開始。因此,需要更快地周轉訓練,訓練時間成為衡量性能優劣的主要標準。
由于衡量標準是訓練模型的時間,我們如何縮短訓練時間?除非有完整的模型,否則機器學習無法自行啟動。
提高訓練質量有助于獲得優質的、緊湊的模型。作為對比,假設有一位漫畫家,能用 5 筆畫出人物。線條的形式有無限種。選擇哪 5 種線條,畫在哪里及如何畫屬于結果,即便藝術界的專家通常也無法解釋這個結果,所以無法復制這幅畫。如果利用充足的數據訓練機器學習算法,該算法可以學習正確的緊湊表示,不需要人類專家的幫助(如識別與重新創建原始圖像)。
自動駕駛汽車是機器學習過程的絕佳例證。車內有傳感器處理、傳感器數據捕獲、路徑規劃和駕駛控制功能。數據中心負責整個車隊的車輛終端管理、車輛模擬與驗證,對傳感器捕獲的數據進行分析。機器學習可能發生在任何一端。車輛擁有針對特定車輛的處理功能,數據中心擁有更廣泛的車輛間處理功能。大多數推斷和處理發生在邊緣設備和云中,但是必須經過端對端的流程,因此產生了跨設備學習。
神經網絡層
完全連接層是一個層內所有輸入和輸出相連接的層(輸出是結果)。每一層包含輸入、權重和輸出。完全連接層利用矩陣數學進行矩陣處理。在神經網絡中,通常利用矩陣乘法處理其它不完全連接卷積層。超過 90% 的計算都是矩陣乘法,主要是密集線性代數。也就是說,神經網絡的核心函數非常便于計算,任何用于密集線性代數計算的架構都會表現出色。
最后,所需的矩陣乘法如圖 4 所示。向前傳播 - 輸入矩陣、權重矩陣和輸出矩陣的計算。向后傳播研究輸出矩陣與權重矩陣,立即計算并返回輸入矩陣。對于權重更新,需要對比輸入和輸出的差異,計算新的權重(圖 4)。
圖 4.單層上的矩陣與矩陣計算
?
并行性
并行性包括數據并行性、模型并行性與混合并行性。
在數據并行性中,我們將數據分為兩部分,使用相同的權重在兩個不同的節點并行運行。權重沒有變化,輸入和輸出數據分割后并行運行。
模型并行性和數據并行性的原理基本一致,只是應用于模型(權重)。權重分為兩部分,數據在半個權重間并行運行。通常發生在完全連接層,此處的模型尺寸遠超過 (n2) 數據規模 (n)。
混合并行性(圖 5)是將模型和數據并行性結合在一起。
圖 5. 顯示混合并行性分割數據與權重,以并行運行
?
如何鑒別并行化系統的優劣?分割數據或模型后,矩陣發生變化,使用難度增大。例如,一個大型的規則矩陣(尺寸相似),幾次分割之后,變成了細長型矩陣(行數多而列數少)。前者便于在處理器高速緩存或內存中讀取數據塊,有較寬的 SIMD 并行性,后者沒有。有時,同一個節點的計算被分割,需要執行額外的操作,以確保同一個節點的計算保持在一起。對高度并行架構進行更精細的并行化時,節點間通信和偏差矩陣格式成為一個問題。
因此,一般情況下:
- 激活(輸出)>權重(模型)情況下使用數據并行性。
- 權重>激活情況下使用數據并行性。
分割的影響:
- 大規模數據并行使激活比權重小得多。
- 大規模模型并行使權重比激活小得多。
- 偏差矩陣(例如,10x4k 矩陣占用處理器時間,不受高速緩存限制)降低計算效率。
擴展
當我們進行大規模并行處理時,通信時間將會占據大部分的總體計算時間。因此,單個節點計算能力越強,工作負載性能(以總體訓練時間來衡量)的優勢越少。因此,我們需要超越樸素并行處理方案,才能從大型計算資源(如公有云)中受益,縮短訓練大型模型的時間。在此基礎上,推出兩個優化:采用混合并行化,限制及管理節點間通信。這兩種方法支持高效擴展。混合并行化有助于避免矩陣出現太多偏差。而且,為了限制節點間通信,建議創建節點組,可以在每個組內進行激活轉移,小組之間進行權重轉移。
深度學習的通信模式
讓我們深入研究節點間通信模式的不同類型。在節點間并行處理時,需要節點間通信。例如,在對點積進行乘加操作時,在一個節點上只有一個可用的矩陣元素。需要傳送并結合兩個不同節點的部分激活,才能得到想要的點積。如果數據不在下一層中,則無法計算數據。如欲了解此類節點間通信的詳細信息,請查看圖 6。
圖 6. 深度學習中的 MPI 集合
綠線 (Allreduce) 可以等待,紅線(Alltoall 等)對下一層計算至關重要。綠線代表不太重要的通信,因為數據是下一個向前傳播階段所必需的。紅線代表時間關鍵型通信,因為數據立即用于下一層計算,稍有延遲可能產生處理管道泡沫。效率下降將轉移到另一條并行中處理,但是紅線不會這樣。因此,紅線的信息需要優先調度。
總之,高效通信模式的必要步驟如下所示:
圖 7 顯示了優化 Allreduce 基元所引起的性能提升(關于當前英特爾 MPI 實施)。
圖 7. MPI Allreduce 性能
通信消耗的周期減少,而計算消耗的周期增加時,效率提升。圖 8 和圖 9 顯示了這些優化的有效性。
圖 8. 將高效通信集成到擴展效率
圖 9. 在 AlexNet 上將高效通信集成到擴展效率
這些優化相互結合,提升了各種神經網絡拓撲的總體擴展性和性能。圖 10 顯示了 4 種常見拓撲的擴展結果。上圖最多擴展至 128 個節點,但是我們正在研究擴展至數千節點。
圖 10. 4 個最受歡迎的拓撲與它們在英特爾? 至強融核? 處理器上的擴展效率
?
滿足訓練時間的要求后
我們充分開發,使訓練時間達到可接受的范圍后,會發生什么?這個模型非常緊湊,具有出色的速度和準確性。將訓練模型部署在邊緣設備上,運行并交付針對實際現場數據的準確推斷。推斷的記分卡返回服務器,服務器接收一定數量的新數據后重新自我訓練,創建更優秀的模型,將模型部署到更多的設備上。提高模型推斷的準確性,將模型部署到更多的邊緣設備上,服務器會收到更多的反饋,重新訓練并改善模型。這就是計算的良性循環(圖 11)。
圖 11. 計算的良性循環
提高模型推斷的準確性,將模型部署到更多的邊緣設備上,部署的設備越多,服務器收到的推斷數據越多(包括正確預測或錯誤預測),反過來增強服務器改進、提升模型推斷準確性的能力。這意味著模型有可能部署在更多的設備上,循環將繼續。這就是我們為之準備的計算的良性循環(圖 11)。
然而,將數據發送到設備后,才能完成循環。發送到設備需要稍微費些力氣,因為網絡總是受到限制。由于長時間的延遲和有限的網絡(將邊緣設備與數據中心相連接)帶寬,在數據中心基礎設施上實時、快速地重新訓練模型變得更加困難。隨著硬件、網絡和無線連接的完善,這個問題將更容易解決。
此外,非常有必要了解什么是邊緣設備。通常計算能力或可用內存受到限制,約束模型尺寸。而且必須以端到端的方式滿足工具要求和軟件支持需求。我們的深度學習工具套件考慮了此類模型部署的需求。
在邊緣設備部署模型存在 3 個高級權衡:壓縮、準確性和吞吐率(圖 12)。有些設備可能無法保存模型,需要壓縮、縮小或縮減模型(圖 13)。如何壓縮模型?需要稀疏模型1, 2
圖 12.3 軸模型性能基礎
圖 13. 壓縮(深藍色)與正常交付和性能的對比
在特定環境下,為了提高推斷吞吐率,需要犧牲推斷的準確性。(圖 14)。
圖 14. 降低準確性以提高吞吐率
?
也就是說,設備要求和使用環境是進行周密權衡的決定因素。
Nervana?
在 2016 年,英特爾收購了 Nervana?,后者是機器學習領域的領導者,也是硬件工程、系統軟件、機器學習和云領域的機器智能平臺。
Nervana 的目標是構建一個機器智能平臺。這意味著使用電腦來創建、處理大型數據集,并根據數據集進行推斷。目標是通過優化深度學習和其它算法來提高處理速度。
然而,機器學習致力于為人類的問題提供解決方案。所以讓我們來回答以下問題,人類打算如何使用機器學習?機器學習可以應用在哪些領域?以下是可以立即使用機器學習平臺的領域:
- 醫療 - 醫學成像是最大的應用領域。基于 MRI 與 CT 掃描的體積成像,甚至單張圖像都會出現問題。某些靜態醫學圖像每一邊的像素高達 200,000 個,單張圖像比性能指標評測數據集還要大。因此,電腦難題非常嚴峻,我們必須進行高效擴展。
- 農業 - 應用于基因組問題、氣候建模與機器人蔬菜收割機(有選擇地收獲農作物)。這些技術需要在邊緣、云等需要低延遲推斷的位置上進行特殊的擴展。
- 金融 - 擁有眾多使用案例,如金融機構面臨的大量 IT 問題。可以利用深度學習對不同方式獲得的各種金融工具進行交易,更加注重交易時間與交易方式。還可以預測潛在詐騙,以保護不良事件中的交易。
- 汽車 - 語音識別、駕駛員協助與自動駕駛。這些領域都具有大型數據集,收集更多的數據。擴展規模巨大,需要完整的解決方案,不僅在汽車邊緣上處理,還要在數據中心處理。
因此,深度學習是內核技術。Nervana 將 “Google Brain” 模型應用于每一位客戶,中心內核處理所有相關信息(圖 16)。
圖 16. Nervana 深度學習模型與 Google Brain 模型的對比
查看解決方案、解決方案工程師、部署等其他深度學習產品組成部分的方法,幫助客戶了解如何將深度學習看做是一種內核技術。
Nervana 深度學習方法的另一個重點是云部署。云支持以最快的速度部署深度學習解決方案。高帶寬、低延遲地連接至靈活、可擴展的云,可以簡化探索性數據科學與訓練數據模型。這是深度學習最簡單易懂的方式。采用此方法時,最好保證界面干凈,下載要求低,信息能便捷地提交到云服務。
英特爾在推動機器學習中發揮的作用
英特爾正致力于采用并改善硬件和軟件發展藍圖及框架更新。
硬件
英特爾? 至強融核? 處理器是現今最密集的計算解決方案,也是深度學習最好的平臺,因為它具有高度并行的架構(圖 17)。英特爾? 至強融核? 處理器和英特爾? 至強? 處理器非常相似。在英特爾至強處理器上完成的所有開發可以直接應用于至強融核處理器,因為兩者共用相同的計算模型。隨著內存子系統和結構的進一步集成,性能將顯著提升。
圖 17. 英特爾? 至強融核? 處理器在深度學習性能方面的價值
?
簡化編程、分攤編程(在整個英特爾至強和至強融核處理器中分攤)和并行架構為英特爾? 至強融核? 處理器 72xx 系列帶來了出色的性能和效率。
軟件
在多個節點間對訓練和推斷進行機器擴展,離不開硬件。每個節點的完成效果如何?英特爾? 數學核心函數庫(英特爾? MKL)是針對節點級優化的最重要的庫。使用英特爾 MKL后,改進的數量是使用前的 24 倍(圖 18)。
圖 18. 使用英特爾? 數學核心函數庫(英特爾? MKL)對單節點訓練進行性能優化
僅通過英特爾? MKL 就可以實現這種改進。英特爾 MKL 不需要重新編碼。針對多個節點的改進會更出色。所有常用的深度學習框架將在多個節點間獲得支持和擴展。但是不需要等待,您可以利用 Caffe* 和英特爾 MKL 立即開始。
英特爾還發布了一個深度學習工具套件,包含許多工具,能加快設計、訓練和部署深度學習解決方案的速度。
總結
人工智能的前景和功能是消除生活中繁重的腦力工作。機器學習將發掘人工智能的強大性能。數字數據的爆炸式增長和無所不在的連接使計算激增,機器學習極大地促進了計算的新型良性循環。機器學習將大規模擴大計算應用(如自動駕駛汽車、農業、健康和制造)的范圍。這些領域中,人類只需做簡單的決定。近期,機器學習和人工智能取得了許多進步,這些領域將不斷改進、轉變及變化。
深度學習的計算要求亟需滿足。復雜模型的訓練時間需要數月或數周,我們需要擴展,將訓練時間降低至數天或幾個小時。機器學習計算基礎設施必須符合開發人員所需的高性能和高效率的要求。必須利用云的效率。
由于突破了現有數據、模型并行性和節點間通信的極限,擴展分布式機器學習并非易事。英特爾的新版深度學習工具(將與 Nervana 云堆棧集成)專門用于在資源有限的邊緣設備上隱藏、降低強擴展訓練時間和模型部署之間平衡的復雜性,不會降低性能。
注
總結
以上是生活随笔為你收集整理的满足人工智能日益增长的要求的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宜信创始人唐宁:技术到处都是,关键看怎么
- 下一篇: 智能理财在国内国外的发展现状