IBM研究人員開(kāi)發(fā)出使用8位浮點(diǎn)數(shù)成功訓(xùn)練DNN的數(shù)字AI芯片,同時(shí)可在深度學(xué)習(xí)模型上保持原有的準(zhǔn)確性,而其模擬AI芯片也采用了8位精度的內(nèi)存乘法與相變內(nèi)存……
隨著在美國(guó)舊金山舉行的國(guó)際電子組件會(huì)議(IEDM)以及在加拿大蒙特利爾舉行的神經(jīng)信息處理系統(tǒng)大會(huì)(NeurlPS)雙雙啟動(dòng),對(duì)于任何希望迎頭趕上人工智能(AI)研發(fā)進(jìn)展步伐的人來(lái)說(shuō),最近正是把握龐大機(jī)會(huì)的最佳時(shí)刻。
例如,IBM研究人員介紹其打造數(shù)字和模擬AI芯片的新AI途徑。IBM聲稱(chēng)其數(shù)字AI芯片首次展現(xiàn)“使用8位浮點(diǎn)數(shù)成功訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)(DNN),同時(shí)在一系列深度學(xué)習(xí)模型和數(shù)據(jù)集上完整保持準(zhǔn)確性(accuracy)。”
另外,IBM研究人員在IEDM還展示了一款模擬AI芯片,采用了8位精度(precision)的內(nèi)存(in-memory)乘法以及相變內(nèi)存。
IBM Research-Almaden副總裁兼實(shí)驗(yàn)室主任Jeffrey Welser在接受《EE Times》訪(fǎng)問(wèn)時(shí)指出,“我們確實(shí)認(rèn)為目前進(jìn)行中的這些工作——例如試圖降低精度以提高性能提升并降低功率——對(duì)于持續(xù)推進(jìn)AI非常重要。”
這一點(diǎn)至關(guān)重要。Weiser解釋說(shuō),因?yàn)檫@個(gè)世界正從“狹義AI”(narrow AI)轉(zhuǎn)變?yōu)?ldquo;廣義AI”(broad AI),例如我們從“用AI在因特網(wǎng)上辨識(shí)貓”進(jìn)展到“分析醫(yī)學(xué)影像,或者我們希望能夠?qū)⑽谋竞统上裥畔⒄显谝黄穑蕴岢鼋鉀Q方案”。
他補(bǔ)充說(shuō):“所有這些更廣泛的問(wèn)題需要更大的神經(jīng)網(wǎng)絡(luò)、更大的數(shù)據(jù)集和多模態(tài)數(shù)據(jù)集……為此,我們需要改變架構(gòu)和硬件來(lái)實(shí)現(xiàn)這一切。”
Weiser認(rèn)為IBM發(fā)表的兩篇論文可看出“一連串有趣的進(jìn)展”,有助于使業(yè)界走向“廣義AI”的未來(lái)。
市場(chǎng)研究公司Linley Group總裁兼首席分析師Linley Gwennap說(shuō):“機(jī)器學(xué)習(xí)繼續(xù)迅速發(fā)展。現(xiàn)有硬件無(wú)法有效處理研究人員建構(gòu)的最大神經(jīng)網(wǎng)絡(luò),因此他們正在尋找各種新方法來(lái)提高性能和效率。”
Gwennap補(bǔ)充說(shuō),這些新的發(fā)展將會(huì)對(duì)于硬件供貨商帶來(lái)巨大壓力,因?yàn)樾酒?ldquo;必須靈活、快速地在這個(gè)混亂的市場(chǎng)中生存”。
IBM大膽預(yù)測(cè)GPU在AI領(lǐng)域的主導(dǎo)地位即將結(jié)束。
Welser說(shuō):“GPU能夠?yàn)槔L圖處理進(jìn)行大量的平行矩陣乘法運(yùn)算。這種矩陣乘法恰巧與神經(jīng)網(wǎng)絡(luò)所需的完全相同。”在他看來(lái),“這有點(diǎn)巧合,但它非常重要。因?yàn)闆](méi)有那些‘GPU’,我們永遠(yuǎn)無(wú)法達(dá)到我們目前已在AI實(shí)現(xiàn)的性能。”但是,Welser補(bǔ)充說(shuō),“隨著我們更能掌握關(guān)于如何實(shí)現(xiàn)AI的更多知識(shí),目前也正著手尋找方法設(shè)計(jì)一種更高效的硬件。”
提高效率的途徑之一是降低AI處理所需的精度。
Welser解釋說(shuō):“幾年前我們開(kāi)始意識(shí)到一個(gè)大方向是,雖然習(xí)慣于非常精確的計(jì)算——以32位計(jì)算浮點(diǎn)作為標(biāo)準(zhǔn),甚至64位,才能為真正準(zhǔn)確的計(jì)算類(lèi)型倍增精度,但這一點(diǎn)在AI中并不一定非常重要。”
他強(qiáng)調(diào),在AI中,“對(duì)于神經(jīng)網(wǎng)絡(luò)在意的是當(dāng)你展示一個(gè)影像或單詞時(shí),它是否能得到正確的答案。當(dāng)我們問(wèn)它是貓還是狗時(shí),它回答說(shuō)是一只貓。如果答案正確,你并不一定會(huì)注意到其間進(jìn)行的所有計(jì)算過(guò)程。”
理想情況下,AI應(yīng)該模仿人眼。Welser說(shuō):“如果你從一扇起霧的窗子看出去,你看到一個(gè)人走在街上。這是一個(gè)低度定位的影象……但是你可能經(jīng)常會(huì)說(shuō):‘喔,那是我媽走過(guò)來(lái)了!’所以,只要你得到正確的答案,視覺(jué)影像是否“正確精準(zhǔn)其實(shí)是無(wú)關(guān)緊要的。”
他解釋說(shuō),這就解釋了AI處理中精度逐漸較低的趨勢(shì)。
Welser繼續(xù)說(shuō)道:“對(duì)于32位計(jì)算,我必須在32位上進(jìn)行計(jì)算。如果我們可以在16位上進(jìn)行,那基本上只需要一半的計(jì)算能力,或者可能是芯片面積的一半甚至更少。如果你可以再降低至8位或4位,那就更好了。”他說(shuō),“所以,這讓我在面積、功率、性能和吞吐量方面獲得了巨大的勝利——我們能夠以多快的速度完成這一切。”
然而,Welser坦承,“很長(zhǎng)一段時(shí)間,我們認(rèn)為我們必須持續(xù)使用32位精度進(jìn)行AI培訓(xùn),當(dāng)時(shí)別無(wú)他法。”
2015年,IBM Research發(fā)表了針對(duì)傳統(tǒng)CMOS技術(shù)的新型數(shù)據(jù)流相關(guān)文章,推出為AI模型訓(xùn)練與推論而降低精度的途徑。IBM展示以16位精度的訓(xùn)練模型,其準(zhǔn)確度約相當(dāng)于32位訓(xùn)練模型,而不至于犧牲準(zhǔn)確度。
從那時(shí)起,IBM觀察到:“降低精度的方法很快地被采納為業(yè)界標(biāo)準(zhǔn),16位訓(xùn)練和8位推論如今已經(jīng)司空見(jiàn)慣,并促使新創(chuàng)公司和創(chuàng)投業(yè)者(VC)投資大量涌入,投入打造降低精度的AI芯片。”盡管存在這樣一種新興趨勢(shì),但由于人們需要保持模型的高準(zhǔn)確度,因此,小于16位的“訓(xùn)練”幾乎不可能實(shí)現(xiàn)。
Welser說(shuō)IBM開(kāi)發(fā)一連串讓研究人員可應(yīng)用于AI處理的方法,實(shí)現(xiàn)了這一目的。例如,他說(shuō):“我們確實(shí)有一部份以8位來(lái)做,有些部份采用16位進(jìn)行累積,而其他部份則以不同組件實(shí)現(xiàn),所以不至于失去精度。”
換句話(huà)說(shuō),比起普遍將8位計(jì)算應(yīng)用于整個(gè)操作,IBM團(tuán)隊(duì)的研究成果更加復(fù)雜,但研究人員找到了各種方法組合,分別應(yīng)用于流程的不同部份。
Welser證實(shí),“沒(méi)錯(cuò),這完全正確。例如,我們現(xiàn)在可以使用8位進(jìn)行所有的權(quán)重更新過(guò)程,但仍然使用16位進(jìn)行一些加法和累積步驟過(guò)程。事實(shí)證明這非常重要,因?yàn)?6位加法比16位乘法更容易,所以實(shí)際上以16位的方式執(zhí)行它是有幫助的。”
也許更重要的是,正如Welser所指出的,IBM的研究成果關(guān)鍵在于“提出一種數(shù)據(jù)流架構(gòu),讓數(shù)據(jù)以非常流暢的方式流經(jīng)芯片,而且以這種方式運(yùn)行最終也不至于造成瓶頸。”
最后,“我們證明您可以有效地使用8位浮點(diǎn),以取得較過(guò)去人們使用16位或32位相同的準(zhǔn)確度。”
Linley Group的Gwennap表示,最新的GPU和AI芯片支持使用IEEE定義格式的16位浮點(diǎn)(FP16)。
然而,他補(bǔ)充說(shuō),“盡管如此,大多數(shù)開(kāi)發(fā)人員還在使用FP32訓(xùn)練神經(jīng)網(wǎng)絡(luò)。”他說(shuō),“8位FP的問(wèn)題在于缺乏標(biāo)準(zhǔn)格式,只有幾種可能的指數(shù)組合和有意義的尾數(shù)。在標(biāo)準(zhǔn)(IEEE或某些非正式協(xié)議)建立之前,芯片制造商將發(fā)現(xiàn)難以在硬件中有效實(shí)施。”
那么在商業(yè)世界多久才開(kāi)始使用8位精度進(jìn)行訓(xùn)練?Welser說(shuō)目前還不得而知,因?yàn)?ldquo;我們現(xiàn)在看到第一次使用16位技術(shù)的情況越來(lái)越多,但是產(chǎn)業(yè)界大部份還是著眼于32位……”
然而,他強(qiáng)調(diào)說(shuō)他并未看到任何降低精度的實(shí)際障礙,“只要我們能夠顯示出相同輸出的結(jié)果。”他指出,從用戶(hù)的角度來(lái)看,“如果芯片速度更快、耗功更低,價(jià)格更便宜,而且也能得到同樣的答案,就沒(méi)什么好計(jì)較的了。”
當(dāng)然,在其下的軟件基礎(chǔ)設(shè)施修改必發(fā)揮作用。
Welser證實(shí),“你必須擁有能夠降低精度的軟件或算法,使其得以正確執(zhí)行。」由于現(xiàn)在所有的軟件架構(gòu)都是為使用GPU和32位而建構(gòu)的,「所有的一切都必須為接受16位或8位而進(jìn)行修改。”
在用戶(hù)存取實(shí)際硬件之前,業(yè)界可能持續(xù)使用已知的內(nèi)容。
IBM在IEDM展示該公司所謂的8位精度內(nèi)存乘法以及設(shè)計(jì)中的相變內(nèi)存(PCM)。
在IEDM上,IBM科學(xué)家發(fā)表了一項(xiàng)關(guān)于新型內(nèi)存內(nèi)運(yùn)算(in-memory computing;IMC)裝置的研究,它比起當(dāng)今的商業(yè)技術(shù)達(dá)到了更低100-1000倍的運(yùn)算能耗級(jí)。該組件非常適用于邊緣AI應(yīng)用,例如自動(dòng)駕駛、醫(yī)療保健監(jiān)控和安全性
工程界已經(jīng)意識(shí)到,降低能耗的關(guān)鍵是盡量減少運(yùn)算架構(gòu)中出現(xiàn)數(shù)據(jù)必須從內(nèi)存移至處理器進(jìn)行運(yùn)算的機(jī)會(huì)。這種移動(dòng)需要耗負(fù)大量的時(shí)間和精力。
對(duì)于更高效AI處理的需求促使許多人致力于研究?jī)?nèi)存內(nèi)運(yùn)算。Mythic在追逐這一點(diǎn)的AI芯片新創(chuàng)公司中脫穎而出,但其后還可能出現(xiàn)更多競(jìng)爭(zhēng)對(duì)手。
在Welser看來(lái),模擬技術(shù)“很自然地適于邊緣AI”。正如從運(yùn)算發(fā)展史的觀察,模擬運(yùn)算需要低功耗,證明它具有高能效。但它也不準(zhǔn)確。Welser說(shuō):“這就是為什么數(shù)字運(yùn)算最終勝過(guò)模擬運(yùn)算。”
但是,Tirias Research首席分析師Kevin Krewell表示,模擬正在回歸中,因?yàn)閮?nèi)存內(nèi)運(yùn)算與模擬運(yùn)算可以相互搭配。他解釋說(shuō):“內(nèi)存數(shù)組保持神經(jīng)網(wǎng)絡(luò)權(quán)重,模擬組件則執(zhí)行總和和觸發(fā)。”
Krewell補(bǔ)充說(shuō),“挑戰(zhàn)在于保持模擬的正確校準(zhǔn),以及過(guò)程和溫度變化的準(zhǔn)確性。此外,內(nèi)存和模擬組件也不像數(shù)字組件那樣擴(kuò)展。”
同樣地,Welser解釋說(shuō),模擬運(yùn)算中神經(jīng)網(wǎng)絡(luò)使用的權(quán)重是“存在于內(nèi)存內(nèi)部的阻值”。它們不必移入和移出,都是固定的。Welser說(shuō):“換句話(huà)說(shuō),由于采用內(nèi)存內(nèi)運(yùn)算架構(gòu),內(nèi)存單元兼作處理器,有效地實(shí)現(xiàn)了儲(chǔ)存和運(yùn)算的雙重任務(wù)。”
然而,Welser所說(shuō)的挑戰(zhàn)是:“我們將要使用的是什么阻值狀態(tài)?它能使我們?cè)谟?xùn)練時(shí)將其設(shè)置為各種不同的阻值嗎?它必須夠準(zhǔn)確才可用。”
Welser解釋說(shuō),雖然數(shù)字AI硬件會(huì)降低精度,但模擬至今一直受到內(nèi)部精度相對(duì)較低的限制,從而影響了模型精度。
在開(kāi)發(fā)接近8位精度的能力時(shí),IBM使用了相變內(nèi)存(PCM)。Welser說(shuō),PCM長(zhǎng)久以來(lái)一直用于模擬內(nèi)存。在此情況下,“我們使用PCM來(lái)回儲(chǔ)存更多不同的阻值。更重要的是,我們正使用一種新穎的架構(gòu)。”
IBM的論文詳細(xì)介紹在純量乘法運(yùn)算中實(shí)現(xiàn)8位精度的技術(shù)。該公司聲稱(chēng),這導(dǎo)致“以往的模擬芯片準(zhǔn)確度提高了大約一倍,而且也比同類(lèi)精度的數(shù)字架構(gòu)功耗更低33倍”。
Gwennap坦言IBM已經(jīng)在PCM上研究一段時(shí)間了,但他稱(chēng)之為“僅僅是一項(xiàng)研究計(jì)劃”。
Gwennap認(rèn)為這種PCM途徑的最大挑戰(zhàn)在于可制造性。“模擬特性因不同的晶體管以及產(chǎn)在線(xiàn)的不同芯片而異,這就是為什么大多數(shù)產(chǎn)業(yè)都使用較不易受這種變化影響的數(shù)字電路。”
《EE Times》向Linley Group和IBM分別詢(xún)問(wèn)了商用AI芯片(如Mythic)使用內(nèi)存內(nèi)運(yùn)算架構(gòu)的情況。Gwennap說(shuō):“Mythic似乎最接近于將這項(xiàng)技術(shù)投入生產(chǎn),但即使如此也還需要至少一年的時(shí)間。”
IBM承認(rèn),“Mythic采用了一種專(zhuān)注于使用內(nèi)存內(nèi)運(yùn)算的有趣方法。”然而,IBM也指出,Mythic的芯片“僅適用于推論應(yīng)用”。
根據(jù)IBM發(fā)言人,IBM的不同之處是:“我們相信完整的AI解決方案需要加速推論和訓(xùn)練。我們正在開(kāi)發(fā)可用于推論和訓(xùn)練的非揮發(fā)性?xún)?nèi)存組件,并使其發(fā)展得更成熟。”