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