深度學(xué)習(xí)的重新思考克服了AI行業(yè)的主要障礙
賴(lài)斯大學(xué)的計(jì)算機(jī)科學(xué)家通過(guò)證明無(wú)需專(zhuān)門(mén)的加速硬件(例如圖形處理單元(GPU))就可以加速深度學(xué)習(xí)技術(shù),從而克服了新興的人工智能行業(yè)的主要障礙。賴(lài)斯的計(jì)算機(jī)科學(xué)家在英特爾合作伙伴的支持下,今天將在奧斯丁會(huì)議中心展示其結(jié)果,這是機(jī)器學(xué)習(xí)系統(tǒng)會(huì)議 MLSys的一部分。
許多 公司都在GPU和其他專(zhuān)用硬件上投入大量資金,以實(shí)施深度學(xué)習(xí),這是一種強(qiáng)大的人工智能形式,其背后是Alexa和Siri等數(shù)字助理,面部識(shí)別,產(chǎn)品推薦系統(tǒng)和其他技術(shù)。例如,Nvidia公司,該行業(yè)的黃金標(biāo)準(zhǔn)的制造商 特斯拉V100張量核群GPU, 最近報(bào)道在其第四季度收入增長(zhǎng)與上年相比,41%。
萊斯大學(xué)的研究人員創(chuàng)造了一種節(jié)省成本的替代GPU的方法,GPU是一種稱(chēng)為“亞線性深度學(xué)習(xí)引擎”(SLIDE)的算法,該算法使用通用處理器(CPU),而無(wú)需專(zhuān)門(mén)的加速硬件。
“我們的測(cè)試表明該幻燈片是CPU能夠超越與大完全連接架構(gòu)產(chǎn)業(yè)規(guī)模的推薦數(shù)據(jù)集GPU硬件加速的第一款智能算法實(shí)現(xiàn)深度學(xué)習(xí)的,”說(shuō) Anshumali Shrivastava,在賴(lài)斯的助理教授 工程布朗學(xué)院 誰(shuí)與研究生Beidi Chen 和 Tharun Medini發(fā)明了SLIDE 。
SLIDE不需要GPU,因?yàn)樗捎昧?完全不同的 深度學(xué)習(xí)方法。用于深度神經(jīng)網(wǎng)絡(luò)的標(biāo)準(zhǔn)“反向傳播”訓(xùn)練技術(shù)需要矩陣乘法,這是GPU的理想工作量。借助SLIDE,Shrivastava,Chen和Medini將神經(jīng)網(wǎng)絡(luò)訓(xùn)練變成了搜索問(wèn)題,可以用哈希表解決 。
與反向傳播訓(xùn)練相比,這從根本上減少了SLIDE的計(jì)算開(kāi)銷(xiāo)。 Shrivastava說(shuō),例如,像Amazon, Google和其他公司提供的基于云的深度學(xué)習(xí)服務(wù)的頂級(jí)GPU平臺(tái) 有八臺(tái)Tesla V100,價(jià)格約為100,000美元。
他說(shuō):“我們?cè)趯?shí)驗(yàn)室中只有一個(gè),在測(cè)試用例中,我們承受了非常適合V100的工作負(fù)載,其中一個(gè)負(fù)載在大型,完全連接的網(wǎng)絡(luò)中(具有GPU內(nèi)存)具有超過(guò)1億個(gè)參數(shù),”他說(shuō)。“我們使用最好的(軟件)軟件包Google的TensorFlow對(duì)其進(jìn)行了培訓(xùn),并且培訓(xùn)花費(fèi)了3 1/2個(gè)小時(shí)。
“然后我們證明了我們的新算法可以在一小時(shí)內(nèi)完成訓(xùn)練,而不是在GPU上,而是在44核Xeon級(jí)CPU上,” Shrivastava說(shuō)。
深度學(xué)習(xí)網(wǎng)絡(luò)受到生物學(xué)的啟發(fā),其核心功能人工神經(jīng)元是可以學(xué)習(xí)執(zhí)行特定任務(wù)的小型計(jì)算機(jī)代碼。深度學(xué)習(xí)網(wǎng)絡(luò)可以包含數(shù)百萬(wàn)甚至數(shù)十億個(gè)人工神經(jīng)元,并且通過(guò)它們的共同作用,他們可以簡(jiǎn)單地通過(guò)研究大量數(shù)據(jù)來(lái)學(xué)習(xí)做出人類(lèi)級(jí)別的專(zhuān)家決策。例如,如果訓(xùn)練一個(gè)深層神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別照片中的物體,則它將使用與識(shí)別校車(chē)不同的神經(jīng)元來(lái)識(shí)別貓的照片。
Medini說(shuō):“您無(wú)需在每種情況下都訓(xùn)練所有的神經(jīng)元。” “我們認(rèn)為,'如果我們只想選擇相關(guān)的神經(jīng)元,那就是搜索問(wèn)題。' 因此,從算法上講,這個(gè)想法是使用局部敏感的散列來(lái)擺脫矩陣乘法。”
散列是一種在1990年代為互聯(lián)網(wǎng)搜索而發(fā)明的數(shù)據(jù)索引方法。它使用數(shù)字方法將大量信息(例如整個(gè)網(wǎng)頁(yè)或一本書(shū)的章節(jié))編碼為一串稱(chēng)為哈希的數(shù)字。哈希表是可以非??焖俚厮阉鞯墓A斜?。
Chen說(shuō):“在TensorFlow或PyTorch上實(shí)現(xiàn)我們的算法是沒(méi)有意義的,因?yàn)樗麄円龅牡谝患戮褪菍⒛谧龅娜魏问虑檗D(zhuǎn)換為矩陣乘法問(wèn)題。” Chen說(shuō)。“這正是我們想要擺脫的。因此,我們從頭開(kāi)始編寫(xiě)自己的C ++代碼。”
Shrivastava說(shuō),SLIDE相對(duì)于反向傳播的最大優(yōu)勢(shì)在于它是數(shù)據(jù)并行的。
“通過(guò)并行數(shù)據(jù),我的意思是,如果我有兩個(gè)要訓(xùn)練的數(shù)據(jù)實(shí)例,假設(shè)一個(gè)是貓的圖像,另一個(gè)是公交車(chē)的圖像,它們可能會(huì)激活不同的神經(jīng)元,并且SLIDE可以更新或訓(xùn)練分別獨(dú)立于這兩個(gè),”他說(shuō)。“這可以更好地利用CPU的并行性。
他說(shuō):“與GPU相比,另一方面,我們需要更大的內(nèi)存。” “主內(nèi)存中有一個(gè)緩存層次結(jié)構(gòu),如果您不小心使用它,則可能會(huì)遇到一個(gè)名為“緩存抖動(dòng)”的問(wèn)題,在該問(wèn)題 中,您會(huì)遇到很多緩存未命中的情況。”
Shrivastava說(shuō),他的小組在SLIDE上進(jìn)行的 第一個(gè)實(shí)驗(yàn) 產(chǎn)生了明顯的緩存抖動(dòng),但是它們的訓(xùn)練時(shí)間仍然與GPU訓(xùn)練時(shí)間相當(dāng)或更快。因此,他,Chen和Medini 于2019年3月在arXiv上發(fā)布了 初步結(jié)果,并將其代碼上傳到GitHub。幾周后,英特爾與他們聯(lián)系。
他說(shuō):“我們來(lái)自英特爾的合作者意識(shí)到了緩存問(wèn)題。” “他們告訴我們,他們可以與我們合作,使其訓(xùn)練更快,他們是對(duì)的。在他們的幫助下,我們的結(jié)果提高了約50%。”
Shrivastava說(shuō)SLIDE尚未接近發(fā)揮其潛力。
他說(shuō):“我們只是擦傷了表面。” “我們還有很多要做的優(yōu)化工作。例如,我們沒(méi)有使用矢量化,也沒(méi)有在CPU中使用內(nèi)置加速器,例如Intel Deep Learning Boost。我們還有許多其他技巧可以使它變得更快。”
Shrivastava說(shuō)SLIDE很重要,因?yàn)樗砻鬟€有其他實(shí)現(xiàn)深度學(xué)習(xí)的方法。
Chen表示:“整個(gè)信息是,'不要被乘法矩陣和GPU內(nèi)存所困擾。' “我們可能是擊敗GPU的第一種算法方法,但我希望這不是最后一種。該領(lǐng)域需要新的想法,這是MLSys的重要組成部分。”