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