服務熱線
0755-83647532
發(fā)表日期:2019-07-19 文章編輯: 閱讀次數(shù):
2017 年 11 月 7 日,加州大學伯克利分校、德克薩斯大學和加州大學戴維斯分校的研究人員發(fā)表了他們的研究結果:在 CPU 上 31 分鐘(截至發(fā)表時間)訓練完 ResNet-50* 以及 11 分鐘訓練完 AlexNet*,使其達到一流的準確性,創(chuàng)造了紀錄。這些結果均在英特爾® 至強® 可擴展處理器(之前代號為 Skylake-SP)上實現(xiàn)。其中影響性能速度的主要因素包括:
1、英特爾至強可擴展處理器的計算和內存容量
2、面向深度神經網(wǎng)絡的英特爾® 數(shù)學核心函數(shù)庫(英特爾® MKL-DNN)和常用深度學習框架中的軟件優(yōu)化
3、面向監(jiān)督式深度學習工作負載的分布式訓練算法的最新技術成果
這種性能水平說明,英特爾至強處理器是實施深度學習訓練的理想硬件平臺。數(shù)據(jù)科學家現(xiàn)在可以采用現(xiàn)有的通用英特爾至強處理器集群執(zhí)行深度學習訓練,并繼續(xù)將其用于深度學習推理、經典機器學習和大數(shù)據(jù)工作負載。他們可以使用 1 個服務器節(jié)點實現(xiàn)卓越的深度學習訓練性能,并使用更多服務器節(jié)點以近線性的方式擴展至數(shù)百個節(jié)點,進一步縮短訓練時間。
本文由 4 個部分組成,主要探討幫助實現(xiàn)創(chuàng)紀錄的訓練速度的三個主要因素,并提供多個使用英特爾至強處理器實施深度學習訓練的商業(yè)用例。雖然本文主要介紹訓練性能的提升,但前兩個因素也會顯著提升推理性能。
第 1 部分:英特爾至強可擴展處理器的計算和內存容量
訓練深度學習模型通常需要大量的計算。例如,訓練 ResNet-50 總共需要完成一千兆兆次 (1018) 單精度運算。支持高計算吞吐量的硬件如果能夠實現(xiàn)較高的利用率,可大幅縮短訓練時間。高利用率要求較高的帶寬內存和巧妙的內存管理,以使芯片保持繁忙的計算狀態(tài)。新一代英特爾至強處理器具備以下特性:大量處理器頻率較高的內核、高速系統(tǒng)內存、大量每內核中級高速緩存(MLC 或 L2 高速緩存),以及新 SIMD 指令,因此新一代英特爾至強處理器是訓練深度學習模型的理想平臺。在第 1 部分中,我們將回顧英特爾至強可擴展處理器的主要硬件特性,包括計算和內存,并對比英特爾至強可擴展處理器與前代英特爾至強處理器運行深度學習工作負載的性能。
2017 年 7 月,英特爾推出了基于 14 納米制程技術構建的英特爾至強可擴展處理器家族。英特爾至強可擴展處理器支持每路(多達 8 路)28 個物理內核(56 線程),處理器基礎頻率為 2.50 GHz,最大睿頻頻率為 3.80 Ghz,并支持 6 條內存通道和高達 1.5 TB 2,666 MHz DDR4 內存。最高端的英特爾至強鉑金 8180 處理器可在雙路系統(tǒng)上提供高達 199GB/秒的 STREAM Triad 性能a,b。至于插槽內數(shù)據(jù)傳輸,英特爾至強可擴展處理器推出了全新的超級通道互聯(lián) (UPI) 技術,這種一致性互聯(lián)技術可取代快速通道互聯(lián) (QPI) 并將數(shù)據(jù)速率增至每 UPI 端口 10.4 GT/秒以及雙路配置下多達 3 個 UPI 端口。
其他改進包括 38.5 MB 共享非包含式末級高速緩存(LLC 或 L3 高速緩存),即內存讀取直接填充至 L2,而非 L2 和 L3,以及每內核 1MB 專有 L2 高速緩存。英特爾至強可擴展處理器內核目前包含 512 位寬融合乘加 (FMA) 指令作為大型 512 位寬矢量引擎的一部分,以及每內核 2 個并行計算的 512 位 FAM 單元(之前由英特爾至強融核™ 處理器產品線推出)1。相比前代英特爾至強處理器 v3 和 v4(之前代號分別為 Haswell 和 Broadwell)的 256 位寬 AVX2 指令,這種 FMA 指令能夠顯著提升性能,支持訓練和推理工作負載。
英特爾至強鉑金 8180 處理器支持每路高達 3.57 TFLOPS (FP32) 和 5.18 TOPS (INT8)2。512 位寬 FMA 可將英特爾至強可擴展處理器提供的 FLOPS 增加一倍,并顯著加快單精度矩陣算法的速度。對比 SGEMM 和 IGEMM 性能,我們發(fā)現(xiàn),相比前代英特爾至強處理器 v4,性能分別提升了 2.3 倍和 3.4 倍c,e。相比整個深度學習模型上的性能,我們發(fā)現(xiàn),將英特爾® neon™ 框架用于 ResNet-18 模型,使用 FP32 時的訓練和推理吞吐量相比前代英特爾至強處理器 v4 分別提升了 2.2 倍和 2.4 倍d,f。
第 2 部分:英特爾 MKL-DNN 和主要框架中的軟件優(yōu)化
軟件優(yōu)化對實現(xiàn)較高的計算利用率和性能提升至關重要。英特爾優(yōu)化的 Caffe*(有時稱為英特爾 Caffe)、TensorFlow*、Apache* MXNet* 和英特爾 neon 均面向訓練和推理優(yōu)化。Caffe2*、CNTK*、PyTorch* 和 PaddlePaddle* 等其他框架的優(yōu)化也正在進行中。在第 2 部分,我們將英特爾優(yōu)化和未經英特爾優(yōu)化的模型的性能進行了對比;介紹英特爾 MKL-DNN 庫如何幫助實現(xiàn)較高的計算利用率;探討英特爾 MKL 與英特爾 MKL-DNN 之間的區(qū)別;還將介紹為了進一步提升性能在框架層所進行的其他優(yōu)化。
兩年前,由于軟件優(yōu)化有限且計算利用率較低,英特爾® 處理器上的深度學習性能并未達到最佳。深度學習科學家誤以為 CPU 不適合運行深度學習工作負載。兩年來,英特爾一致努力優(yōu)化深度學習函數(shù),以實現(xiàn)較高的利用率,支持深度學習科學家使用現(xiàn)有通用英特爾處理器實施深度學習訓練。通過構建常用深度學習框架(該框架將自動默認下載和構建英特爾 MKL-DNN)時設置配置標記,數(shù)據(jù)科學家可充分利用英特爾 CPU 優(yōu)化。
英特爾至強處理器與英特爾 MKL-DNN 相結合,可將性能提升超過 100 倍。例如,借助英特爾至強處理器 E5-2666 v3 上的 Apache MXNet(c4.8xlarge AWS* EC2* 實例)在 AlexNet*、GoogleNet* v1、ResNet-50* 和 GoogleNet v3 上跨所有可用 CPU 內核執(zhí)行的推理分別實現(xiàn)了 111 倍、109 倍、66 倍和 92 倍的吞吐量提升。基于英特爾至強處理器 E5-2699 v4 上的 Caffe2 在 AlexNet 上跨所有 CPU 內核進行的推理實現(xiàn)了 39 倍的吞吐量提升。借助英特爾至強處理器 E5-2699 v4 上的 TensorFlow 訓練 AlexNet、GoogleNet 和 VGG* 分別實現(xiàn)了 17 倍、6.7 倍和 40 倍的吞吐量提升。借助英特爾至強可擴展鉑金 8180 處理器上的英特爾優(yōu)化的 Caffe 和英特爾 MKL-DNN 跨所有 CPU 內核訓練 AlexNet,相比未借助英特爾至強處理器 E5-2699 v3 上的英特爾 MKL-DNN 的 BVLC*-Caffe,吞吐量提升了 113 倍d,g。圖 1 和圖 2 對比了英特爾至強處理器 E5-2699 v4 和英特爾可擴展鉑金 8180 處理器采用面向 TensorFlow 和英特爾優(yōu)化的 Caffe 的英特爾 MKL-DNN 庫時的訓練和推理吞吐量。這些框架和其他框架的性能預計將隨著進一步的優(yōu)化而得以提升。所有這些數(shù)據(jù)都使用 fp32 精度計算得出。我們將稍后添加數(shù)值精度較低的數(shù)據(jù);低精度可提升性能。
這些優(yōu)化的核心是英特爾® 數(shù)學核心函數(shù)庫(Intel® MKL)以及英特爾 MKL-DNN 庫。深度學習模型有很多種,而且看起來有很大的不同。但大多數(shù)模型都通過有限的構建模塊(稱為基于張量運行的基元)而構建。其中部分基元包括內積、卷積、修正線性單元或 ReLU、批處理標準化等,以及操縱張量所需的函數(shù)。這些構建模塊或低級深度學習函數(shù)已面向英特爾 MKL 庫中的英特爾至強產品家族進行了優(yōu)化。英特爾 MKL 庫包含許多數(shù)學函數(shù),其中一部分可用于深度學習。為了有針對性更強的深度學習庫,并與深度學習開發(fā)人員協(xié)作,英特爾在 Apache 2 許可下發(fā)布了英特爾 MKL-DNN,其中包含構建復雜模型所需的所有關鍵構建模塊。英特爾 MKL-DNN 支持行業(yè)和學術型深度學習開發(fā)人員分配這些庫,并提供新函數(shù)或改進后的函數(shù)。英特爾 MKL-DNN 預計在性能方面處于領先地位,因為所有最新優(yōu)化都將率先用于英特爾 MKL-DNN。
深度學習基元在英特爾 MKL-DNN 庫中通過結合預取、數(shù)據(jù)布局、緩存模塊化、數(shù)據(jù)復用、矢量化和寄存器分塊策略,進行了優(yōu)化。高利用率要求數(shù)據(jù)可隨時用于執(zhí)行單元 (EU)。這要求在高速緩存中預取數(shù)據(jù)和復用數(shù)據(jù),而不是從主內存中多次提取相同的數(shù)據(jù)。對緩存模塊化來說,目標是最大限度地提高適合高速緩存(通常在 MLC 中)的給定數(shù)據(jù)塊的計算率。數(shù)據(jù)布局連續(xù)安排在內存中,以便最內層循環(huán)中的訪問盡可能的連續(xù),避免出現(xiàn)不必要的收集/分散操作。這樣可以提高緩存行(以及帶寬)的利用率,并提高預取程序的性能。循環(huán)模塊時,我們將模塊的外部維度限制為 SIMD 寬度的倍數(shù),并讓最內層維度在數(shù)組 SIMD 寬度上循環(huán),以支持高效矢量化。為了隱藏 FMA 指令的延遲,可能需要使用寄存器分塊3。
其他跨內核并行化對實現(xiàn)高 CPU 利用率非常重要,比如使用 OpenMP* 實現(xiàn)迷你批次的并行化。這要求改進負載均衡,以便每個內核都完成相同的工作量,并減少內核間的同步化事件。均衡、高效地使用所有內核要求給定層內實現(xiàn)額外的并行化。
這些優(yōu)化可確保所有關鍵的深度學習基元,比如卷積、矩陣乘法、批處理標準化等,都高效矢量化為最新 SIMD,并跨內核實現(xiàn)并行化。英特爾 MKL-DNN 基元均在 C 中實施,并支持 C 和 C++ API 綁定,以最廣泛地應用于深度學習函數(shù):
· 直接批量卷積
· 內積
· 池化:最大、最小、平均
· 標準化:跨通道局部響應歸一化 (LRN),批歸一化
· 激活:修正線性單元 (ReLU),softmax
· 融合基元:卷積+ReLU
· 數(shù)據(jù)操作:多維轉置(轉換)、拆分、合并、求和和縮放
· 即將推出:長短期記憶 (LSTM) 和門控循環(huán)單元 (GRU)
有多種深度學習框架,比如 Caffe、TensorFlow、MXNet、PyTorch 等??蚣軐拥男薷模ùa重新因子化)要求高效利用英特爾 MKL-DNN 基元??蚣苄⌒牡赜孟鄳挠⑻貭?MKL-DNN API 取代對現(xiàn)有深度學習函數(shù)的調用,以避免框架和英特爾 MKL-DNN 庫爭用相同的線程。在設置期間,框架管理從框架到 MKL-DNN 的布局轉換,并在相應的輸出輸入數(shù)據(jù)布局不匹配的情況下分配臨時陣列。為了提升性能,可能要求進行圖形優(yōu)化以最大限度地減少不同數(shù)據(jù)布局之間的轉換,如圖 3 所示。在執(zhí)行步驟期間,數(shù)據(jù)在 BCWH(批處理、通道、寬度、高度)這樣的平面布局中饋送到網(wǎng)絡中,并轉換為適用于 SIMD 的布局。當數(shù)據(jù)在層之間傳播時,數(shù)據(jù)布局被保留,并在需要執(zhí)行英特爾 MKL-DNN 不支持的操作時進行轉換。
另外,當通過將插槽和內核分區(qū)為獨立的計算設備并在每個插槽中運行多個實例(每臺計算設備一個實例)來執(zhí)行部分框架和工作負載時,內核利用率將會得到提升。Saletore 等人 介紹了 在不改變框架中任何一行代碼的情況下實施此方法的步驟。這些方法可基于現(xiàn)有軟件優(yōu)化,將訓練和推理性能分別提升 2 倍和 2.7 倍。
第 3 部分:面向監(jiān)督式深度學習的分布式訓練算法的技術成果
訓練大型深度學習模型通常需要耗費幾天,甚至幾周的時間。將計算要求分布于多個服務器節(jié)點可縮短訓練時間。但無論使用哪種硬件,都會遇到算法方面的挑戰(zhàn),不過分布式算法近期所取得的進展可解決這些挑戰(zhàn)。在第 3 部分中,我們將回顧梯度下降和隨機梯度下降 (SGD) 算法,并介紹用大型迷你批次進行訓練的局限性;探討模型和數(shù)據(jù)并行化;回顧同步 SGD (SSGD)、異步 SGD (ASGD) 和全歸約/廣播算法;最后展示近期支持大型迷你批次 SSGD 訓練并幫助獲得顯著成效的最新進展。
在監(jiān)督式深度學習中,輸入數(shù)據(jù)在模型中傳遞,輸出與地面真值或預期輸出進行對比。然后計算出懲罰或損失。訓練模型涉及調整模型參數(shù)以減少這種損失。有各種優(yōu)化算法可用來最大限度地減少損失函數(shù),比如梯度下降或隨機梯度下降、Adagrad、Adadelta、RMSprop、Adam 等變量。
在梯度下降 (GD)(亦稱最陡下降)中,由權重集合定義的特定模型的損失函數(shù)在整個數(shù)據(jù)集上計算。權重通過移至梯度的反方向而進行更新;即朝局部最小值移動:更新權重 = 當前權重 – 學習率 * 梯度。
在隨機梯度下降 (SGD) 中,更準確地稱為迷你批次梯度下降,數(shù)據(jù)集分為多個迷你批次。損失相對于迷你批次計算,而且權重使用與梯度下降相同的更新原則進行更新。還有許多其他變量,有的通過在與梯度相反的方向積累速度(稱為動量)而加快訓練過程,有的通過根據(jù)梯度的標準自動修改學習率,幫助數(shù)據(jù)科學家輕松選擇合適的學習率。有關這些變量的深入介紹可以在別處找到。
隨著迷你批次逐漸增大并在迷你批次大小等于整個數(shù)據(jù)集時變得相同,SGD 的行為接近 GD 的行為。GD 面臨三大挑戰(zhàn)(迷你批次很大時 SGD 也面臨這三大挑戰(zhàn))。第一,每個步驟或每次迭代的計算成本都很大,因為要求在整個數(shù)據(jù)集上計算損失。第二,梯度接近零或曲率變化時,鞍點或鞍區(qū)附近的學習變慢。第三,根據(jù)英特爾和西北大學研究人員的研究,優(yōu)化空間有多個尖銳最小值。梯度下降不探索優(yōu)化空間,而是直接移至起點以下的局部最小值,它通常為尖銳最小值。尖銳最小值無法推廣。盡管測試數(shù)據(jù)集的整體損失函數(shù)與訓練數(shù)據(jù)集的類似,但尖銳最小值處的實際成本可能大不相同。圖 4 形象地展示了這種不同,測試數(shù)據(jù)集的損失函數(shù)稍稍偏移了訓練數(shù)據(jù)集的損失函數(shù)。這種變化導致匯合于尖銳最小值的模型產生較高的測試數(shù)據(jù)集成本,意味著該模型無法進行推廣給訓練集以外的數(shù)據(jù)。另一方面,匯合于平坦最小值的模型的測試數(shù)據(jù)集成本較低,意味著該模型可以推廣給訓練集以外的數(shù)據(jù)。
小迷你批次 SGD (SMB-SGD) 可解決這些問題。首先,使用 SMB-SGD 的計算成本不高,因此每次迭代的速度都很快。整個數(shù)據(jù)集通常進行多次迭代,而 GD 中只執(zhí)行 1 次。在整個數(shù)據(jù)集上 SMB-SGD 要求的傳遞通常較少,因此訓練速度更快。第二,使用 SMB-SGD 時鞍點處不太可能出現(xiàn)堵塞情況,因為訓練集中部分迷你批次的梯度不可能為零,即使整個訓練集都梯度為零。第三,由于 SMB-SGD 能夠更好地探索解決空間,而不是直接移至起點以下的局部最小值,因此更能找到平坦最小值。另一方面,極小的迷你批次也不是最佳選擇,因為要實現(xiàn)較高的 CPU(或 GPU)利用率很難。將小迷你批次的計算工作負載分布于多個工作節(jié)點時,這種問題會變得更加嚴峻。因此,必須找到足夠大的迷你批次,以維持較高的 CPU 利用率,但也不能太大以避免出現(xiàn) GD 問題。這對下面要討論的同步數(shù)據(jù)并行 SGD 來說更加重要。
在多個工作節(jié)點中高效分布工作負載,可縮短整體訓練時間。所使用的技巧有兩種:模型并行化和數(shù)據(jù)并行化。在模型并行化中,模型在多個節(jié)點之間劃分,每個節(jié)點都處理相同的迷你批次。當內存要求超過 worker 的內存時,模型并行化可用于實踐。數(shù)據(jù)并行化方法更加常用,最適合權重較少的模型。在數(shù)據(jù)并行化中,迷你批次在工作節(jié)點中劃分,每個節(jié)點都有完整的模型并處理一段迷你批次,稱為節(jié)點批次。每個工作節(jié)點都計算節(jié)點批次的梯度。然后通過歸約算法聚集這些梯度,以計算整個迷你批次的梯度。然后更新模型權重,更新后的權重被傳播至各個工作節(jié)點。這也稱為歸約/傳播或僅全歸約方案(全歸約選項列表將在下文種介紹)。迷你批次的每次迭代或周期結束時,所有工作節(jié)點都有相同的更新模型,即節(jié)點實現(xiàn)了同步化。這被稱為同步 SGD (SSGD)。
異步 SGD (ASGD) 能夠消除同步化的開銷。但 ASGD 面臨其他挑戰(zhàn)。ASGD 要求更多地優(yōu)化超參數(shù)(比如動量),并要求更多訓練迭代。另外,它不匹配單節(jié)點性能,因此調試起來比較困難。在實踐中,尚未證明 ASGD 能夠在大型模型上進行擴展和保持準確性。斯坦福大學、LBNL 和英特爾研究人員已經證明,ASGD/SSGD 混合方法可以用于節(jié)點在多達 8 個組中完成集群化的情況。組內更新是同步的,組之間的更新是異步的。由于 ASGD 所面臨的挑戰(zhàn),超過 8 個組會使性能降低。
其中一種用于傳遞梯度的策略是,將一個節(jié)點指定為參數(shù)服務器,計算節(jié)點梯度的總和、更新模型,并將更新權重發(fā)送回各個 worker。但使用一個參數(shù)服務器收發(fā)所有梯度會存在瓶頸。除非使用 ASGD,否則不建議采用參數(shù)服務器策略。
全歸約和傳播算法用于傳遞和添加節(jié)點梯度,然后傳播更新權重。有各種全歸約算法,包括 Tree、Butterfly 和 Ring。Butterfly 是 O(log(P)) 迭代時進行延遲擴展的最佳選擇,其中 P 代表工作節(jié)點的數(shù)量,并結合了 reduce-scat 和廣播。Ring 是帶寬的最佳選擇;對大型數(shù)據(jù)通信來說,它可以通過節(jié)點數(shù)量在 O(1) 處進行擴展。在帶寬受限的集群中,AllReduce Ring 算法通常更加適用。有關 AllReduce Ring 算法的詳細介紹可在 別處找到。 圖 5 顯示了各種通信策略。
2014 年 11 月,Jeff Dean 談到了 谷歌將訓練時間從 6 周縮短至 1 天的研究目標。三年后,使用 CPU 可在 11 分鐘內訓練完 AlexNet。這是通過使用較大的迷你批次來實現(xiàn)的,這種迷你批次支持將計算工作負載分布至超過 1000 個節(jié)點。為了高效擴展,梯度通信和更新權重必須隱藏在梯度計算中。
可使用以下技巧增加整體迷你批次的規(guī)模:1) 按比例增加迷你批次的規(guī)模和學習率;2) 在訓練的最初部分慢慢提高學習率(稱為熱身學習率);3) 使用層自適應率縮放 (layer-wise adaptive rate scaling (LARS)) 算法使模型的各層擁有不同的學習率。下面我們來詳細了解每一種技巧。
迷你批次越大,梯度中的置信度越高,因此可使用的學習率也越大。作為一條經驗法則,學習率隨著迷你批次大小的增加而按比例增加4。這項技巧支持加州大學伯克利分校的研究人員使用 GoogleNet 模型,將迷你批次的大小從 256 增至 1024,并擴展至 128 個 K20-GPU 節(jié)點,將訓練時間從 21 天縮短至 10.5 小時,英特爾研究人員使用 VGG-A 模型,將迷你批次大小從 128 增加至 512,并擴展至 128 個英特爾至強處理器 E5-2698 v3 節(jié)點。
較大的學習率可能導致出現(xiàn)分散(損失隨迭代而增加,而非降低),尤其在初始訓練階段。這是因為在初始訓練階段,梯度范數(shù)大于權重范數(shù)。通過在初始訓練階段(例如在前 5 個 epoch 中)逐漸增加學習率可緩解這種情況,直到最后達到目標學習率。這種技巧支持 Facebook* 使用 ResNet-50,將迷你批次大小從 256 增至 8094,并擴展至 256 個 Nvidia* Tesla* P100-GPU 節(jié)點,將訓練時間從 29 個小時(使用 8 顆 P100-GPU)縮短至 1 小時。這種技巧也 支持 SurfSARA 和英特爾研究人員擴展至 512 顆雙路英特爾至強鉑金處理器,將 ResNet-50 訓練時間縮短至 44 分鐘。
NVidia 的研究人員發(fā)現(xiàn),在模型的各個層中,梯度與權重的比例各不相同。他們建議為各個層設置與該比例成反比的學習率。這種技巧(結合上述幾種技巧)支持他們將迷你批次的大小增加至 32K。
加州大學伯克利分校、德克薩斯大學和加州大學戴維斯分校的研究人員使用這些技巧刷新了訓練時間(截至 2017 年 11 月 7 日發(fā)稿時間)的記錄:在英特爾 CPU 上 11 分鐘訓練完 AlexNet*以及 31 分鐘訓練完 ResNet-50*,使其達到一流的準確性。 他們分別使用 1024 和 1600 臺采用英特爾 MKL-DNN 庫和英特爾優(yōu)化的 Caffe 框架5的雙路英特爾至強鉑金 8160 處理器服務器。
許多數(shù)據(jù)中心沒有高帶寬互聯(lián)或數(shù)千個節(jié)點。盡管如此,ResNet-50 仍然可以使用 10 Gbps 以太網(wǎng)完美地線性擴展至 32 臺,并 99.8% 地擴展至 62 臺雙路英特爾至強金牌 6148 處理器服務器i。運用這 64 臺服務器在 90 個 epoch 中達到預期 75.9% 位列第一的驗證準確性,所用的總訓練時間是 7.3 小時。
第 4 部分:商業(yè) CPU 用例
額外的計算和內存容量,加上軟件優(yōu)化和分布式訓練的進展,有利于行業(yè)采用現(xiàn)有英特爾至強處理器進行深度學習。在第 4 部分中,我們將介紹英特爾組裝和測試工廠、Facebook* 服務、deepsense.ai* 強化學習 (RL) 算法、京都大學藥物設計、Amazon* Web Services (AWS*) 分布式機器學習應用、克萊姆森* 大學自然語言處理、通用電氣* 醫(yī)療集團醫(yī)療成像、愛爾* 眼科醫(yī)院集團和 MedImaging* Integrated Solutions 糖尿病性視網(wǎng)膜病變、OpenAI* 進化策略 和各種使用 BigDL 的 Apache* Spark* 平臺中的幾個商業(yè)用例 。
英特爾組裝和測試工廠獲益于英特爾至強處理器上的英特爾優(yōu)化的 Caffe,改進了芯片制造包裝故障檢測。該項目旨在降低最終檢查點包裝表面損壞的人工審查率,同時將假陰性率保持在與人工審查率相同的水平。輸入是一組包裝照片,目標是對每張照片執(zhí)行二進制分類,指示每個包裝是被拒絕還是通過。他們對 GoogleNet 模型進行了修改以完成此項任務。使用 8 顆連接 10 Gb 以太網(wǎng)的英特爾至強鉑金 8180 處理器,在 1 小時內完成了訓練。假陰性率始終符合預期的人工準確性。自動完成這一流程為檢查員節(jié)省了 70% 的時間。
Facebook 利用 英特爾處理器進行推理,并利用 CPU 和 GPU 訓練將用于服務中的機器學習算法。訓練的頻率比推理低得多。推理階段每天運行數(shù)十萬億次,而且通常需要實時執(zhí)行。部分使用機器學習的重要服務包括新聞推送、廣告、搜索、Sigma(異常檢測)、Lumos(特征提取器)、Facer(面部識別)、語言翻譯和語音識別。新聞推送和 Sigma 在 CPU 上訓練,而 Facer 和搜索算法在 CPU 和 GPU 上訓練。
deepsense.ai 采用 英特爾處理器進行強化學習。他們訓練代理,在 64 顆 12 核英特爾 CPU 上播放各種 Atari 2600 游戲,有時游戲只需短短 20 分鐘就可實現(xiàn)完美地線性擴展(注:本文未指定所使用的特定英特爾處理器或互連)。
京都大學研究人員在英特爾處理器上使用深度學習預測基于化合物的相互作用,這是藥物設計中的一個重要步驟。對這種深度學習工作負載,他們 聲稱 that "英特爾 Haswell-EP(采用 128 GB 內存的 E5-2699v3×2)結合 Theano*,在性能和最大支持數(shù)據(jù)量兩個方面,表現(xiàn)都優(yōu)于 Nvidia Tesla(Ivy Bridge 托管的 K40)。請注意,英特爾至強 E5-2699v3 處理器和 Nvidia Tesla K40 均為前代 CPU 和 GPU。
英特爾與合作伙伴使用 Faster-RCNN* 和英特爾優(yōu)化的 Caffe 成功地執(zhí)行了太陽能電池板缺陷檢測任務。訓練中使用了 300 張增強了 36 度旋轉的原始太陽能電池板圖片。在英特爾至強鉑金 8180 處理器上進行的訓練耗費了 6 個小時,在部分不利環(huán)境因素的影響下檢測準確性達到了 96.3%。推理性能為每秒 188 張圖片。這種通用解決方案可用于市場上的各種檢測服務,包括石油與天然氣檢測、管道滲漏和泄露、公共設施檢查、輸電線路和變電站,以及緊急危機響應。
Amazon Web Services (AWS) GM Matt Wood 報道 ,AWS 和英特爾在 AWS EC2 C5 實例上借助最新版英特爾 MKL 和可用的英特爾至強可擴展處理器優(yōu)化深度學習,將推理性能提升了 100 倍,并開發(fā)可在 AWS 上輕松構建分布式深度學習應用的工具。Wood 解釋說:“例如,Novartis 使用 10,600 個 EC2 實例和大約 87000 個計算內核,在短短 9 個小時內完成了需耗時 39 年的化學計算;對照癌癥靶標掃描 1000 萬種化合物。這種顯著的提升將不斷改變著各行業(yè)的無限可能,例如醫(yī)療、生命科學、金融服務、科學研究、航天航空、自動化、制造業(yè)和能源。”
克萊姆森大學的研究人員在英特爾處理器上 應用 1.1M AWS EC2 vCPU 研究主題建模,它是自然語言處理的重要組成部分。他們通過近 50 萬例主題建模試驗,研究計算機如何處理人類語言。主題模型可用于發(fā)現(xiàn)文檔集合中存在的主題。
通用電氣* 醫(yī)療集團應用英特爾至強 E5-2650v4 處理器運行通用電氣的深度學習 CT 成像分類推理工作負載。他們使用英特爾的深度學習部署工具套件(英特爾 DLDT)和英特爾 MKL-DNN 將吞吐量平均提高了 14 倍(相比基準版解決方案),并將通用電氣在僅 4 個內核上實現(xiàn)的吞吐量目標提高了 6 倍。英特爾 DLDT 可提供統(tǒng)一的 API 來集成推理和應用邏輯,從而幫助部署深度學習解決方案。 這些發(fā)現(xiàn)為開啟智能醫(yī)療成像新時代鋪平了道路。
愛爾眼科醫(yī)院集團和 MedImaging* Integrated Solutions (MiiS) 采用 英特爾至強可擴展處理器和英特爾優(yōu)化的 Caffe 開發(fā)深度學習解決方案,以改進針對糖尿病視網(wǎng)膜病變和年齡相關性黃斑變性的篩查。中國政府計劃采用該解決方案在全國各地的診所和小型醫(yī)院進行高質量的眼部健康篩查。MiiS 首席執(zhí)行官 Stefan Zheng 說:“英特爾的專業(yè)知識、全新的英特爾至強可擴展處理器和面向英特爾架構優(yōu)化的 Caffe 相結合,取得了令人驚嘆的成效,我們正在借助英特爾至強銅牌處理器和英特爾優(yōu)化的 Caffe 框架穩(wěn)步前進。”愛爾眼科健康集團總經理 Xu Ming 說:“通過支持我們的診所提供快速、準確的眼部健康篩查,愛爾眼科可幫助解決眼科醫(yī)生短缺的問題,為農村地區(qū)只能通過鄉(xiāng)村診所看病的人們提供高質量的醫(yī)療服務。即使在大城市,我們也可以幫助眼部護理專業(yè)人員節(jié)省時間,讓他們能夠專注于治療病情更嚴重的患者。我們通過早期檢測,提供早期診斷和治療的機會,幫助保護視力。”
OpenAI 使用 CPU 訓練進化策略 (ES),在 RL 性能指標評測 (Atari/MuJoCo) 中實現(xiàn)了強勁的性能。通過使用由 80 臺機器和 1,440 個 CPU 內核組成的集群,OpenAI 工程師能夠在 10 分鐘內訓練 3D MuJoCo 人體輔助行走器。
BigDL 是英特爾開源分布式深度學習框架,可為 Apache Spark 提供全面的深度學習算法支持?;诟叨瓤蓴U展的 Apache* Spark* 平臺構建,BigDL 可輕松橫向擴展至數(shù)百或數(shù)千臺服務器。此外,BigDL 還集成了英特爾 MKL 和并行計算技術,以在英特爾至強處理器服務器上實現(xiàn)極高的性能。由于在基于至強的 Hadoop*/Spark 集群上運行 BigDL 可提供諸多優(yōu)勢,比如簡單性、可擴展性、低總體擁有成本等,BigDL 在業(yè)界和開發(fā)人員社區(qū)中得到了廣泛的應用。讀者可以參考詳細的教程,了解如何將 BigDL 部署于谷歌* 云平臺、 AWS* EMR*、Microsoft* Azure* Marketplace、 Microsoft Azure HDInsight、Microsoft 數(shù)據(jù)科學虛擬機、阿里巴巴* 云 E-MapReduce、Databricks*、Cray* Urika-XC* 分析軟件、Cloudera* 數(shù)據(jù)科學工作臺等。
中國銀聯(lián)實施神經網(wǎng)絡風險控制系統(tǒng),該系統(tǒng)使用英特爾至強處理器運行 BigDL 和 Apache Spark。該網(wǎng)絡利用 10 TB 訓練數(shù)據(jù)和 100 億個訓練樣本。該模型在 32 個英特爾至強處理器節(jié)點上訓練 ,而且相比傳統(tǒng)基于規(guī)則的風險控制系統(tǒng),該模型將風險檢測的準確性提高了 60%。
JD.com* 和英特爾團隊共同合作,在 BigDL 和 Apache Spark 上使用 SSD 和 DeepBit 模型構建大規(guī)模圖像特征提取管道。在此用例中,BigDL 為各種深度學習模型(比如對象檢測、分類等)提供支持。此外,它還支持復用 Caffe、Torch* 和 TensorFlow 的預先訓練的模型。整個應用管道經過全面優(yōu)化,可在基于英特爾至強處理器的 Hadoop 集群上提供顯著加速的性能,相比在 20 個 K40 GPU 卡上運行的相同解決方案,速度提高了約 3.83 倍。
MLSListings* 也和英特爾團隊合作,在 Microsoft Azure 的基于英特爾至強處理器的 BigDL 中構建基于圖像相似性的房屋推薦系統(tǒng)。他們使用 Places365* 數(shù)據(jù)集對 GoogleNet v1 和 VGG-16 進行微調,以生成用于計算圖像相似性的圖像嵌入。
Gigaspace* 已將 BigDL 集成至 Gigapsace 的 InsightEdge* 平臺。Gigaspace 構建了一個系統(tǒng),能在英特爾至強處理器上的 BigDL 中使用訓練的自然語言處理 (NLP) 模型,自動將用戶請求路由至呼叫中心內相應的專家。
Open Telefónica* Cloud 可提供 Map Reduce Service (MRS),BigDL 在其頂部運行。有關如何使用支持 BigDL 的平臺運行深度學習工作負載的步驟,請單擊此處。
結論
最新英特爾至強可擴展處理器和英特爾 MKL-DNN 庫中優(yōu)化的深度學習函數(shù)可為運行深度學習工作負載(推理、經典機器學習和其他人工智能算法除外)提供充足的計算能力。目前,常用的深度學習框架都集成了這些優(yōu)化,在有些用例中,單服務器提供的有效性能提升了超過 100 倍。分布式算法所取得的最新進展也支持使用數(shù)百臺服務器將訓練時間從幾周縮短至幾分鐘。數(shù)據(jù)科學家現(xiàn)在可以采用現(xiàn)有的通用英特爾至強處理器集群執(zhí)行深度學習訓練,并繼續(xù)將其用于深度學習推理、經典機器學習和大數(shù)據(jù)工作負載。他們可以使用 1 顆英特爾 CPU 實現(xiàn)卓越的深度學習訓練性能,并使用多個 CPU 節(jié)點以近線性的方式擴展至數(shù)百個節(jié)點,進一步縮短訓練時間。
文章摘自英特爾開發(fā)人員專區(qū)
想購買及了解最新英特爾產品,歡迎咨詢以下聯(lián)系方式!
寶通集團聯(lián)系方式
咨詢熱線:0755-82964380
寶通官網(wǎng):m.bjshst.cn
客戶垂詢郵箱:xinyuan.guo@ex-channel.com
客戶垂詢QQ:1953700525
地址:深圳市福田區(qū)深南大道1006號國際創(chuàng)新中心C座11樓
郵編:518026