早期的機(jī)器學(xué)習(xí)以搜索為基礎(chǔ),主要依靠進(jìn)行過一定優(yōu)化的暴力方法。但是隨著機(jī)器學(xué)習(xí)逐漸成熟,它開始專注于加速技術(shù)已經(jīng)很成熟的統(tǒng)計(jì)方法和優(yōu)化問題。同時(shí)深度學(xué)習(xí)的問世更是帶來原本可能無法實(shí)現(xiàn)的優(yōu)化方法。本文將介紹現(xiàn)代機(jī)器學(xué)習(xí)如何找到兼顧規(guī)模和速度的新方法。
AI領(lǐng)域的轉(zhuǎn)變
在本系列的第1部分中,我們探討了AI的一些歷史,以及從Lisp到現(xiàn)代編程語言以及深度學(xué)習(xí)等新型計(jì)算智能范式的歷程。我們還討論了人工智能的早期應(yīng)用,它們依賴于經(jīng)過優(yōu)化的搜索形式、在海量數(shù)據(jù)集上進(jìn)行訓(xùn)練的現(xiàn)代神經(jīng)網(wǎng)絡(luò)架構(gòu),同時(shí)解決了十年前還被認(rèn)為不可能的難題。然而目前仍有兩大難題有待解決,即:如何進(jìn)一步加速這些應(yīng)用,以及將它們限制在智能手機(jī)這樣的功耗優(yōu)化環(huán)境中。
今天,深度學(xué)習(xí)成為了多數(shù)加速技術(shù)的重點(diǎn)研究對(duì)象。深度學(xué)習(xí)是一種神經(jīng)網(wǎng)絡(luò)架構(gòu),它依賴于多層神經(jīng)網(wǎng)絡(luò),其中的每一層都可以支持不同的功能以進(jìn)行特征檢測。這些深層神經(jīng)網(wǎng)絡(luò)依賴于可方便運(yùn)用并行計(jì)算的矢量運(yùn)算, 并為神經(jīng)網(wǎng)絡(luò)層分布式計(jì)算以及同層諸多神經(jīng)元并行計(jì)算創(chuàng)造了條件。
通過GPU加速機(jī)器學(xué)習(xí)
圖形處理單元(GPU)最初并不是用于加速深度學(xué)習(xí)應(yīng)用。GPU是一種特殊的設(shè)備,用于加速輸出到顯示設(shè)備的幀緩沖區(qū)(內(nèi)存)的構(gòu)建。它將渲染后的圖像存入幀緩沖區(qū),而不是依靠處理器來完成。GPU由數(shù)以千計(jì)的獨(dú)立內(nèi)核組成,它們并行運(yùn)行并執(zhí)行矢量運(yùn)算等特定類型的計(jì)算。盡管最初GPU專為視頻應(yīng)用而設(shè)計(jì),但人們發(fā)現(xiàn)它們也可以加速矩陣乘法等科學(xué)計(jì)算。
開發(fā)人員既可以借助于GPU供應(yīng)商提供的API將GPU處理功能集成到應(yīng)用中,也可以采用適用于諸多不同環(huán)境的標(biāo)準(zhǔn)軟件包方式。R編程語言和編程環(huán)境包含與GPU協(xié)同工作來加快處理速度的軟件包,例如gputools、gmatrix和gpuR。GPU也可以通過numba軟件包或Theano等各種庫借助于Python進(jìn)行編程。
通過這些軟件包,任何有意將GPU加速應(yīng)用于機(jī)器學(xué)習(xí)的人都可以達(dá)成愿望。但是工程師們還在研究更專門的方法。2019年,英特爾?以20億美元的價(jià)格收購了Habana Labs, 一家致力于為服務(wù)器中的機(jī)器學(xué)習(xí)加速器開發(fā)定制芯片的公司。此外,英特爾還于2017年以150億美元收購了自動(dòng)駕駛芯片技術(shù)企業(yè)Mobileye。
定制芯片和指令
除了服務(wù)器和臺(tái)式機(jī)中的GPU加速之外,用于機(jī)器學(xué)習(xí)的加速器正在試圖超越傳統(tǒng)平臺(tái),進(jìn)軍功耗受限的嵌入式設(shè)備和智能手機(jī)。這些加速器形式多樣,包括U盤、API、智能手機(jī)神經(jīng)網(wǎng)絡(luò)加速器以及用于深度學(xué)習(xí)加速的矢量指令等。
適用于智能手機(jī)的深度學(xué)習(xí)
深度學(xué)習(xí)工具包已經(jīng)從PC端延伸到智能手機(jī),可為存在更多限制的網(wǎng)絡(luò)提供支持。TensorFlow Lite和Core ML等框架已經(jīng)部署在用于機(jī)器學(xué)習(xí)應(yīng)用的移動(dòng)設(shè)備上。Apple?最近發(fā)布了A12 Bionic芯片,這款芯片包括一個(gè)8核神經(jīng)網(wǎng)絡(luò)引擎,用于開發(fā)更加節(jié)能的神經(jīng)網(wǎng)絡(luò)應(yīng)用, 從而擴(kuò)展Apple智能手機(jī)上的深度學(xué)習(xí)應(yīng)用。
Google發(fā)布了適用于Android? 8.1并具有機(jī)器學(xué)習(xí)功能的神經(jīng)網(wǎng)絡(luò)API (NNAPI), 目前已應(yīng)用于Google Lens自然語言處理和圖像識(shí)別背景下的Google Assistant。NNAPI與其他深度學(xué)習(xí)工具包相似,但它是針對(duì)Android智能手機(jī)環(huán)境及其資源限制而構(gòu)建的。
深度學(xué)習(xí)USB
英特爾發(fā)布了其新版神經(jīng)計(jì)算棒,以U盤的形式加速深度學(xué)習(xí)應(yīng)用。TensorFlow、Caffe和PyTorch等眾多機(jī)器學(xué)習(xí)框架都可以使用它。當(dāng)沒有GPU可用時(shí),這將是一個(gè)不錯(cuò)的選擇,同時(shí)還可以快速構(gòu)建深度學(xué)習(xí)應(yīng)用原型。
深度學(xué)習(xí)指令
最后,在機(jī)器學(xué)習(xí)計(jì)算從CPU轉(zhuǎn)移到GPU的同時(shí),英特爾使用新的指令優(yōu)化了其Xeon指令集,來加速深度學(xué)習(xí)。這些被稱為AVX-512擴(kuò)展的新指令(所謂的矢量神經(jīng)網(wǎng)絡(luò)指令或VNNi)提高了卷積神經(jīng)網(wǎng)絡(luò)運(yùn)算的處理量。
總結(jié)
GPU在機(jī)器學(xué)習(xí)中的應(yīng)用實(shí)現(xiàn)了在眾多應(yīng)用中構(gòu)建和部署大規(guī)模深度神經(jīng)網(wǎng)絡(luò)的能力。機(jī)器學(xué)習(xí)框架使構(gòu)建深度學(xué)習(xí)應(yīng)用變得簡單。智能手機(jī)供應(yīng)商也不甘人后,為受到諸多限制的應(yīng)用集成了高能效的神經(jīng)網(wǎng)絡(luò)加速器(以及用于定制應(yīng)用的API)。現(xiàn)在市面上還有其他可轉(zhuǎn)移到USB硬件上的加速器,許多新的初創(chuàng)公司也在加大加速器領(lǐng)域的投入,為未來機(jī)器學(xué)習(xí)應(yīng)用做準(zhǔn)備。
審核編輯:郭婷
-
gpu
+關(guān)注
關(guān)注
28文章
4740瀏覽量
128948 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132635 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121162
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論