當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動化控制 > 人工智能
發(fā)布日期:2022-10-09 點(diǎn)擊率:44
用模擬電路在存儲器中進(jìn)行神經(jīng)網(wǎng)絡(luò)處理將有助于節(jié)能。
機(jī)器學(xué)習(xí)和人工智能(AI)已經(jīng)深入到日常生活和工作中,我們可能已經(jīng)忘記與機(jī)器的交互曾經(jīng)是什么樣子。以前,我們通過數(shù)字鍵盤、電子表格或編程語言求得的都是精確的定量答案,比如“10的平方根是多少?”“按照這種利率,未來五年我的收益是多少?”等。 但在過去的10年里,我們已經(jīng)習(xí)慣了機(jī)器回答那些只向他人提出過的模糊定性問題,比如“我會喜歡這部電影嗎?”“今天的交通狀況如何?”“這筆交易是否存在欺詐?”等。 深度神經(jīng)網(wǎng)絡(luò)(DNN)實(shí)現(xiàn)了這些新功能。深度神經(jīng)網(wǎng)絡(luò)是一種通過正確答案訓(xùn)練并學(xué)習(xí)如何對類似的新問題做出響應(yīng)的系統(tǒng),根據(jù)國際數(shù)據(jù)公司(IDC)的統(tǒng)計數(shù)據(jù),深度神經(jīng)網(wǎng)絡(luò)是推動全球人工智能硬件、軟件和服務(wù)市場快速增長的主要力量,去年該市場的估值為3275億美元,預(yù)計到2024年將超過5000億美元。 首先推動這場革命的是卷積神經(jīng)網(wǎng)絡(luò),它提供了非凡的圖像識別能力。在過去10年里,用于自然語言處理、語音識別、強(qiáng)化學(xué)習(xí)和推薦系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)新模型實(shí)現(xiàn)了許多其他的商業(yè)應(yīng)用。 但不僅是應(yīng)用數(shù)量在增長,網(wǎng)絡(luò)規(guī)模和所需的數(shù)據(jù)也在增長。深度神經(jīng)網(wǎng)絡(luò)具有內(nèi)在可擴(kuò)展性——隨著它們變大,訓(xùn)練數(shù)據(jù)增多,它們提供的答案也更加可靠。但這樣做是有代價的。2010年至2018年間,訓(xùn)練最佳深度神經(jīng)網(wǎng)絡(luò)模型所需的計算增長了10億倍,這意味著能耗大幅增加。雖然每次對已受過訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)模型使用新數(shù)據(jù)(稱為“推理”)比訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型本身所需要的計算量少得多,消耗的能量也少很多,但這種推理計算的數(shù)量非常大而且在不斷增加。人工智能如果要繼續(xù)改變?nèi)藗兊纳?,就必須提高效率?我們認(rèn)為,可能需要從數(shù)字計算轉(zhuǎn)變到模擬計算。利用非易失性存儲設(shè)備和電氣工程的兩個基本物理定律,使用簡單的電路就可以實(shí)現(xiàn)深度學(xué)習(xí)最基本的計算,而且只需要千萬億分之一焦耳的能量。在這項(xiàng)技術(shù)能夠應(yīng)用于復(fù)雜的人工智能之前,還有大量的工程工作要做,但我們已經(jīng)取得了很大的進(jìn)步,并規(guī)劃出了一條前進(jìn)的道路。
對大多數(shù)計算機(jī)來說,在外部存儲器和計算資源(如CPU和GPU)之間移動大量數(shù)據(jù)耗費(fèi)的時間成本和能源成本最高。這就是被稱為“馮?諾依曼瓶頸”的存儲與邏輯分離的經(jīng)典計算機(jī)結(jié)構(gòu)。要大大減少深度學(xué)習(xí)所需要的能量,有一種方法是避免移動數(shù)據(jù),即在存儲數(shù)據(jù)的地方進(jìn)行計算。
深度神經(jīng)網(wǎng)絡(luò)由多層人工神經(jīng)元組成。每一層神經(jīng)元根據(jù)神經(jīng)元的“激活值”和連接下一層神經(jīng)元的突觸“權(quán)值”這兩個值驅(qū)動下一層神經(jīng)元的輸出。 大多數(shù)深度神經(jīng)網(wǎng)絡(luò)計算由向量矩陣乘法(VMM)運(yùn)算組成,即向量(一維數(shù)字?jǐn)?shù)組)與二維數(shù)組相乘。在電路級,這些運(yùn)算為乘積累加運(yùn)算(MAC)。對于每個下游神經(jīng)元,所有上游激活值必須與相應(yīng)的權(quán)值相乘,然后將這些乘積相加。 大多數(shù)有用的神經(jīng)網(wǎng)絡(luò)太大,無法存放在處理器內(nèi)存中,計算每一層網(wǎng)絡(luò)時,都必須從外部存儲器導(dǎo)入權(quán)值,每一次計算都要受到馮?諾依曼瓶頸的束縛。這使得數(shù)字計算硬件更支持更少從存儲器中移動權(quán)值并能積極重復(fù)使用這些權(quán)值的深度神經(jīng)網(wǎng)絡(luò)。
2014年,我們在IBM研究實(shí)驗(yàn)室提出了一種全新的深度神經(jīng)網(wǎng)絡(luò)硬件節(jié)能方式。我們和其他研究人員一直在研究非易失性存儲器(NVM)設(shè)備的交錯陣列。交錯陣列是一種將器件(例如存儲單元)構(gòu)建在兩組正交水平導(dǎo)體(即所謂的“位線”和“字線”)之間的垂直空間的結(jié)構(gòu)。我們意識到,只要稍作修改,我們的存儲系統(tǒng)將非常適合深度神經(jīng)網(wǎng)絡(luò)計算,尤其是那些現(xiàn)有權(quán)值重復(fù)使用效果不佳的計算。我們將這一機(jī)遇稱為“模擬人工智能”,其他從事類似工作的研究人員也將其稱為“存儲計算一體化”(processing-in-memory)或“存內(nèi)計算”(compute-in-memory)等。
非易失性存儲器有幾種不同的類型,每種類型的數(shù)據(jù)存儲方式不盡相同,但都通過測量設(shè)備的電阻(或者電阻倒數(shù),即電導(dǎo))從這些設(shè)備中讀出數(shù)據(jù)。磁阻式隨機(jī)存取存儲器(MRAM)使用的是電子自旋,而閃存使用的是陷阱電荷。電阻式隨機(jī)存取存儲器(RRAM)設(shè)備通過在微小的金屬-絕緣體-金屬器件內(nèi)產(chǎn)生并隨后中斷導(dǎo)電細(xì)絲來存儲數(shù)據(jù)。相變存儲器(PCM)利用熱量在高導(dǎo)電晶相和低導(dǎo)電非晶相之間引發(fā)快速可逆的轉(zhuǎn)換。 閃存、電阻式隨機(jī)存取存儲器和相變存儲器能夠提供傳統(tǒng)數(shù)字?jǐn)?shù)據(jù)存儲所需的低電阻和高電阻狀態(tài),以及模擬人工智能所需的中間電阻。但在高性能邏輯中,只有隨機(jī)存取存儲器和相變存儲器能夠放置在硅晶體管上方布線的交錯陣列中,將存儲和邏輯之間的距離縮到最短。 我們將這些非易失性存儲器存儲單元組織在一個二維陣列中,稱為“瓦片”(tile)。瓦片上有控制非易失性存儲器設(shè)備讀寫的晶體管或其他器件。對于存儲應(yīng)用而言,讀數(shù)電壓尋址到一行(字線),會產(chǎn)生與非易失性存儲器電導(dǎo)成正比的電流,在陣列邊緣的列(位線)上可檢測到這些電流,從而讀出存儲的數(shù)據(jù)。 為了讓這樣一個瓦片成為深度神經(jīng)網(wǎng)絡(luò)的一部分,每一行都需要用一個電壓持續(xù)驅(qū)動一段時間,形成一個上游神經(jīng)元激活值的編碼。每一行的每個非易失性存儲器設(shè)備則用其電導(dǎo)系數(shù)形成一個突觸權(quán)值編碼。通過歐姆定律(在這種情況下表示為“電流等于電壓乘以電導(dǎo)”),產(chǎn)生的讀電流就是勵磁和權(quán)值的有效乘積。然后,根據(jù)基爾霍夫電流定律將每個位線上的各個電流相加。這些電流產(chǎn)生的電荷隨時間積聚在電容器上,產(chǎn)生乘積累加運(yùn)算結(jié)果。
這些相同的模擬存內(nèi)求和方法也可以使用閃存甚至是靜態(tài)隨機(jī)存儲器(SRAM)單元來執(zhí)行。靜態(tài)隨機(jī)存儲器單元可以存儲多個數(shù)字位,但不能存儲模擬電導(dǎo)值。雖然我們不能將歐姆定律用于乘法那一步,但是我們可以使用一種方法獲取這些存儲設(shè)備的一位或兩位的動態(tài)范圍。然而,這種方法對噪聲非常敏感,因此我們在IBM一直堅持研究基于相變存儲器和電阻式隨機(jī)存取存儲器的模擬人工智能。
與電導(dǎo)不同,深度神經(jīng)網(wǎng)絡(luò)權(quán)值和激活值可以為正,也可以為負(fù)。為了實(shí)現(xiàn)有正負(fù)之分的權(quán)值,我們使用了兩條電流路徑,一條向電容器添加電荷,另一條減去電荷。為了實(shí)現(xiàn)有正負(fù)之分的勵磁,我們允許每行設(shè)備根據(jù)需要轉(zhuǎn)換其連接路徑。 每列每執(zhí)行一次乘積累加運(yùn)算,瓦片會并行執(zhí)行整個向量矩陣乘法。對于一個具有1024×1024權(quán)值的瓦片,意味著一次執(zhí)行100萬次乘積累加運(yùn)算。 在我們設(shè)計出來的系統(tǒng)中,我們預(yù)計所有這些計算只需32納秒。由于每個乘積累加運(yùn)算執(zhí)行的計算相當(dāng)于兩次數(shù)字運(yùn)算(一次乘法和一次加法),因此每32納秒執(zhí)行100萬次模擬乘積累加運(yùn)算代表著每秒65萬億次運(yùn)算。 我們已制作出能夠完成這一壯舉的瓦片,每次運(yùn)算僅用36毫微微焦耳能量(相當(dāng)于每焦耳28萬億次運(yùn)算)。而我們最新的瓦片設(shè)計將這一數(shù)字降到了10毫微微焦耳以下,其效率是商用硬件的100倍,比最新定制的數(shù)字加速器系統(tǒng)級能效高10倍,那些加速器為了能效甚至要犧牲精度。 對我們來說,提高每個瓦片的能效非常重要,因?yàn)橐粋€完整的系統(tǒng)也會在其他任務(wù)上消耗能量,比如移動激活值和支持數(shù)字電路。
要使這種模擬人工智能方法真正取得成功,還有許多重要挑戰(zhàn)需要克服。首先,根據(jù)定義,深度神經(jīng)網(wǎng)絡(luò)具有多層結(jié)構(gòu)。要實(shí)現(xiàn)多層級聯(lián),我們必須通過人工神經(jīng)元的激活作用(一種非線性函數(shù))處理向量矩陣乘法瓦片的輸出,并將其傳遞給下一個瓦片。非線性有可能通過模擬電路執(zhí)行,并且以下一層所需的持續(xù)時間形式傳達(dá)結(jié)果,但除了向量矩陣乘法的簡單級聯(lián)之外,大多數(shù)網(wǎng)絡(luò)還需要其他運(yùn)算。這意味著我們需要高效的模數(shù)轉(zhuǎn)換(ADC),以及和瓦片之間進(jìn)行適量的并行數(shù)字計算。新穎、高效的數(shù)模轉(zhuǎn)換有助于避免這些電路對整體效率產(chǎn)生過多影響。最近,我們推出了一種基于相變存儲器的高性能瓦片,使用了一種新型模數(shù)轉(zhuǎn)換方法,可以幫助瓦片實(shí)現(xiàn)每瓦10萬億次以上的運(yùn)算。
第二個挑戰(zhàn)與非易失性存儲器設(shè)備的特性有關(guān),且更棘手。即使用相當(dāng)?shù)途鹊臄?shù)字描述它們的權(quán)值,數(shù)字深度神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確性也已經(jīng)得到了證明。CPU經(jīng)常使用的32位浮點(diǎn)數(shù)對深度神經(jīng)網(wǎng)絡(luò)是不必要的。使用8位浮點(diǎn)數(shù)甚至4位整數(shù),深度神經(jīng)網(wǎng)絡(luò)通常也能工作得很好,能耗也很低。這為模擬計算帶來了希望,只要我們能夠保持類似的精度即可。
鑒于電導(dǎo)精度的重要性,需要將表示模擬神經(jīng)網(wǎng)絡(luò)中的權(quán)值的電導(dǎo)值慢慢地、仔細(xì)地寫入非易失性存儲設(shè)備。與傳統(tǒng)存儲器(如靜態(tài)隨機(jī)存取存儲器和電阻式隨機(jī)存取存儲器)相比,相變存儲器和電阻式隨機(jī)存取存儲器的編程速度較慢,幾個編程周期后會出現(xiàn)磨損。幸運(yùn)的是,推理不需要經(jīng)常重新編程權(quán)值。因此,模擬人工智能可以使用耗時的寫驗(yàn)證技術(shù)來提高相變存儲器和電阻式隨機(jī)存取存儲器的編程精度,且不必?fù)?dān)心設(shè)備磨損。 這種提升是非常必要的,因?yàn)榉且资源鎯ζ骶哂袃?nèi)在的編程噪聲。電阻式隨機(jī)存取存儲器的導(dǎo)電性取決于幾個原子形成細(xì)絲的運(yùn)動;相變存儲器的導(dǎo)電性取決于多晶材料中晶粒的隨機(jī)形成。這兩種隨機(jī)性給數(shù)值的寫入、驗(yàn)證和讀取帶來了挑戰(zhàn)。此外,在大多數(shù)非易失性存儲器中,電導(dǎo)會隨溫度和時間而變化。除此之外,還有相變存儲器中的非晶相結(jié)構(gòu)漂移、電阻式隨機(jī)存取存儲器中的細(xì)絲松弛或閃存單元中捕獲的電荷泄漏等影響。
有幾種方式可以巧妙地解決這個問題。使用兩個電導(dǎo)對可以顯著改善權(quán)值編程問題。其中,一對用于保存大部分信號,而另一對用于糾正主對上的編程錯誤。由于噪聲在多個設(shè)備間平均,所以噪聲降低了。
我們最近對基于多相變存儲器的芯片測試了這種方法,每個權(quán)值使用一個和兩個電導(dǎo)對。我們用這種方法在多個深度神經(jīng)網(wǎng)絡(luò)上證明了其具有卓越的準(zhǔn)確性,甚至包括通常對權(quán)值編程錯誤很敏感的循環(huán)神經(jīng)網(wǎng)絡(luò)。 不同的技術(shù)可以幫助改善讀數(shù)噪聲和漂移效應(yīng)。但由于漂移是可預(yù)測的,也許最簡單的方法是在讀數(shù)過程中用與時間相關(guān)的增益來放大信號,這能夠抵消大部分誤差。另一種方法是開發(fā)同一技術(shù),訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)適應(yīng)低精度數(shù)字推理。這些方法可調(diào)整神經(jīng)網(wǎng)絡(luò)模型以匹配底層硬件的噪聲局限。 正如我們提到的,網(wǎng)絡(luò)正變得很龐大。在數(shù)字系統(tǒng)中,如果網(wǎng)絡(luò)與加速器不適配,你可以從外部存儲芯片給每層深度神經(jīng)網(wǎng)絡(luò)導(dǎo)入權(quán)值。但是非易失性存儲器的寫入限制使得這一機(jī)制變得很糟糕。不過,可將多個模擬人工智能芯片組合在一起,將部分網(wǎng)絡(luò)的中間結(jié)果從一塊芯片傳遞到下一塊芯片。這種機(jī)制會帶來一些額外的通信延遲和能耗,但其代價遠(yuǎn)遠(yuǎn)小于本身移動權(quán)值。
到目前為止,我們只討論了推理,即將新數(shù)據(jù)作用于已經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)。但是,模擬人工智能還有幫助訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的其他機(jī)會。
深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練使用的是反向傳播算法。它結(jié)合了成熟的正向推理運(yùn)算和另外兩個重要步驟——誤差反向傳播和權(quán)值更新。誤差反向傳播就像反向運(yùn)行推理一樣,由網(wǎng)絡(luò)的最后一層到第一層;權(quán)值更新將運(yùn)行原始正向推理的信息與這些反向傳播誤差結(jié)合起來,調(diào)整網(wǎng)絡(luò)權(quán)值,使模型更加準(zhǔn)確。 反向傳播步驟可以在瓦片上進(jìn)行,但與推理的方式相反——按列施加電壓,按行積累電流。更新權(quán)值則是用正向推理的原始激活數(shù)據(jù)驅(qū)動行,同時使用反向傳播期間產(chǎn)生的誤差信號驅(qū)動列。 訓(xùn)練涉及必須消除的眾多微小權(quán)值增減,但實(shí)現(xiàn)起來很困難,原因有兩個。首先回想一下,非易失性存儲器會因編程太多而產(chǎn)生損耗。其次,相同的電壓脈沖以相反極性施加給非易失性存儲器,存儲單元的電導(dǎo)變化量可能不同;它的反應(yīng)是不對稱的。但是,對稱特性對于反向傳播產(chǎn)生精確網(wǎng)絡(luò)而言至關(guān)重要。由于訓(xùn)練所需的電導(dǎo)變化幅度接近非易失性存儲器材料的固有隨機(jī)水平,這將變得更具挑戰(zhàn)性。 有幾種辦法可以幫助解決這方面的問題。例如,有許多方法可累積多個訓(xùn)練案例的權(quán)值更新,然后在訓(xùn)練期間定期將這些更新傳輸給非易失性存儲設(shè)備。我們在IBM開發(fā)了一種叫做“Tiki-Taka”的新算法,通過這種技術(shù),成功使用高度不對稱的電阻式隨機(jī)存儲設(shè)備對深度神經(jīng)網(wǎng)絡(luò)進(jìn)行了訓(xùn)練。最后,我們正在開發(fā)一種名為“電化學(xué)隨機(jī)存取存儲器”(ECRAM)的設(shè)備,它可以提供不僅對稱而且高度線性和漸進(jìn)的電導(dǎo)更新。
模擬人工智能能否成功將取決于能否同時實(shí)現(xiàn)高密度、高吞吐量、低延遲和高能效。密度取決于非易失性存儲器集成到芯片晶體管上方布線的緊密程度。瓦片級別的能源效率將受到模數(shù)轉(zhuǎn)換電路的限制。
但是,即使這些因素得到改善,越來越多的瓦片連接在一起,阿姆達(dá)爾定律(關(guān)于并行計算局限性的論點(diǎn))也將對系統(tǒng)能效優(yōu)化提出新的挑戰(zhàn)。先前不是特別重要的內(nèi)容,如瓦片之間所需的數(shù)據(jù)通信和剩余的數(shù)字計算,將產(chǎn)生越來越高的能耗預(yù)算,導(dǎo)致瓦片本身的峰值能源效率與整個模擬人工智能系統(tǒng)的持續(xù)能源效率產(chǎn)生差距。當(dāng)然,無論模擬還是數(shù)字人工智能,每一個人工智能加速器最終都將面臨這個問題。
前進(jìn)的道路必然與數(shù)字人工智能加速器不同。數(shù)字的方法可降低精度,直到準(zhǔn)確性衰降。但是,模擬人工智能必須首先提高內(nèi)部模擬模塊的信噪比(SNR),直到足以證明其與數(shù)字系統(tǒng)的準(zhǔn)確性相當(dāng)。信噪比提高以后,可改進(jìn)提高密度和能源效率。
這些令人振奮的問題都需要解決,而解決這些問題需要材料科學(xué)家、設(shè)備專家、電路設(shè)計師、系統(tǒng)架構(gòu)師和深度神經(jīng)網(wǎng)絡(luò)專家的共同努力。人們對更節(jié)能的人工智能加速器有強(qiáng)烈且持續(xù)的需求,同時又沒有其他有吸引力的替代方式來滿足這一需求。考慮到各種各樣的潛在存儲設(shè)備和實(shí)現(xiàn)途徑,某種程度的模擬計算很可能會進(jìn)入未來的人工智能加速器。
審核編輯 :李倩
下一篇: PLC、DCS、FCS三大控