天天看點

歐姆定律+基爾霍夫電流定律=更好的人工智能?

作者:中科院實體所

用模拟電路在存儲器中進行神經網絡處理将有助于節能。

機器學習和人工智能(AI)已經深入到日常生活和工作中,我們可能已經忘記與機器的互動曾經是什麼樣子。以前,我們通過數字鍵盤、電子表格或程式設計語言求得的都是精确的定量答案,比如“10的平方根是多少?”“按照這種利率,未來五年我的收益是多少?”等。

但在過去的10年裡,我們已經習慣了機器回答那些隻向他人提出過的模糊定性問題,比如“我會喜歡這部電影嗎?”“今天的交通狀況如何?”“這筆交易是否存在欺詐?”等。

深度神經網絡(DNN)實作了這些新功能。深度神經網絡是一種通過正确答案訓練并學習如何對類似的新問題做出響應的系統,根據國際資料公司(IDC)的統計資料,深度神經網絡是推動全球人工智能硬體、軟體和服務市場快速增長的主要力量,去年該市場的估值為3275億美元,預計到2024年将超過5000億美元。

首先推動這場革命的是卷積神經網絡,它提供了非凡的圖像識别能力。在過去10年裡,用于自然語言處理、語音識别、強化學習和推薦系統的深度神經網絡新模型實作了許多其他的商業應用。

但不僅是應用數量在增長,網絡規模和所需的資料也在增長。深度神經網絡具有内在可擴充性——随着它們變大,訓練資料增多,它們提供的答案也更加可靠。但這樣做是有代價的。2010年至2018年間,訓練最佳深度神經網絡模型所需的計算增長了10億倍,這意味着能耗大幅增加。雖然每次對已受過訓練的深度神經網絡模型使用新資料(稱為“推理”)比訓練深度神經網絡模型本身所需要的計算量少得多,消耗的能量也少很多,但這種推理計算的數量非常大而且在不斷增加。人工智能如果要繼續改變人們的生活,就必須提高效率。

我們認為,可能需要從數字計算轉變到模拟計算。利用非易失性儲存設備和電氣工程的兩個基本實體定律,使用簡單的電路就可以實作深度學習最基本的計算,而且隻需要千萬億分之一焦耳的能量。在這項技術能夠應用于複雜的人工智能之前,還有大量的工程工作要做,但我們已經取得了很大的進步,并規劃出了一條前進的道路。

對大多數計算機來說,在外部存儲器和計算資源(如CPU和GPU)之間移動大量資料耗費的時間成本和能源成本最高。這就是被稱為“馮•諾依曼瓶頸”的存儲與邏輯分離的經典計算機結構。要大大減少深度學習所需要的能量,有一種方法是避免移動資料,即在存儲資料的地方進行計算。

深度神經網絡由多層人工神經元組成。每一層神經元根據神經元的“激活值”和連接配接下一層神經元的突觸“權值”這兩個值驅動下一層神經元的輸出。

大多數深度神經網絡計算由向量矩陣乘法(VMM)運算組成,即向量(一維數字數組)與二維數組相乘。在電路級,這些運算為乘積累加運算(MAC)。對于每個下遊神經元,所有上遊激活值必須與相應的權值相乘,然後将這些乘積相加。

大多數有用的神經網絡太大,無法存放在處理器記憶體中,計算每一層網絡時,都必須從外部存儲器導入權值,每一次計算都要受到馮•諾依曼瓶頸的束縛。這使得數字計算硬體更支援更少從存儲器中移動權值并能積極重複使用這些權值的深度神經網絡。

2014年,我們在IBM研究實驗室提出了一種全新的深度神經網絡硬體節能方式。我們和其他研究人員一直在研究非易失性存儲器(NVM)裝置的交錯陣列。交錯陣列是一種将器件(例如存儲單元)建構在兩組正交水準導體(即所謂的“位線”和“字線”)之間的垂直空間的結構。我們意識到,隻要稍作修改,我們的存儲系統将非常适合深度神經網絡計算,尤其是那些現有權值重複使用效果不佳的計算。我們将這一機遇稱為“模拟人工智能”,其他從事類似工作的研究人員也将其稱為“存儲計算一體化”(processing-in-memory)或“存内計算”(compute-in-memory)等。

非易失性存儲器有幾種不同的類型,每種類型的資料存儲方式不盡相同,但都通過測量裝置的電阻(或者電阻倒數,即電導)從這些裝置中讀出資料。磁阻式随機存取存儲器(MRAM)使用的是電子自旋,而閃存使用的是陷阱電荷。電阻式随機存取存儲器(RRAM)裝置通過在微小的金屬-絕緣體-金屬器件内産生并随後中斷導電細絲來存儲資料。相變存儲器(PCM)利用熱量在高導電晶相和低導電非晶相之間引發快速可逆的轉換。

閃存、電阻式随機存取存儲器和相變存儲器能夠提供傳統數字資料存儲所需的低電阻和高電阻狀态,以及模拟人工智能所需的中間電阻。但在高性能邏輯中,隻有随機存取存儲器和相變存儲器能夠放置在矽半導體上方布線的交錯陣列中,将存儲和邏輯之間的距離縮到最短。

我們将這些非易失性存儲器存儲單元組織在一個二維陣列中,稱為“瓦片”(tile)。瓦片上有控制非易失性存儲器裝置讀寫的半導體或其他器件。對于存儲應用而言,讀數電壓尋址到一行(字線),會産生與非易失性存儲器電導成正比的電流,在陣列邊緣的列(位線)上可檢測到這些電流,進而讀出存儲的資料。

為了讓這樣一個瓦片成為深度神經網絡的一部分,每一行都需要用一個電壓持續驅動一段時間,形成一個上遊神經元激活值的編碼。每一行的每個非易失性存儲器裝置則用其電導系數形成一個突觸權值編碼。通過歐姆定律(在這種情況下表示為“電流等于電壓乘以電導”),産生的讀電流就是勵磁和權值的有效乘積。然後,根據基爾霍夫電流定律将每個位線上的各個電流相加。這些電流産生的電荷随時間積聚在電容器上,産生乘積累加運算結果。

歐姆定律+基爾霍夫電流定律=更好的人工智能?

這些相同的模拟存内求和方法也可以使用閃存甚至是靜态随機存儲器(SRAM)單元來執行。靜态随機存儲器單元可以存儲多個數字位,但不能存儲模拟電導值。雖然我們不能将歐姆定律用于乘法那一步,但是我們可以使用一種方法擷取這些儲存設備的一位或兩位的動态範圍。然而,這種方法對噪聲非常敏感,是以我們在IBM一直堅持研究基于相變存儲器和電阻式随機存取存儲器的模拟人工智能。

與電導不同,深度神經網絡權值和激活值可以為正,也可以為負。為了實作有正負之分的權值,我們使用了兩條電流路徑,一條向電容器添加電荷,另一條減去電荷。為了實作有正負之分的勵磁,我們允許每行裝置根據需要轉換其連接配接路徑。

每列每執行一次乘積累加運算,瓦片會并行執行整個向量矩陣乘法。對于一個具有1024×1024權值的瓦片,意味着一次執行100萬次乘積累加運算。

在我們設計出來的系統中,我們預計所有這些計算隻需32納秒。由于每個乘積累加運算執行的計算相當于兩次數字運算(一次乘法和一次加法),是以每32納秒執行100萬次模拟乘積累加運算代表着每秒65萬億次運算。

我們已制作出能夠完成這一壯舉的瓦片,每次運算僅用36毫微微焦耳能量(相當于每焦耳28萬億次運算)。而我們最新的瓦片設計将這一數字降到了10毫微微焦耳以下,其效率是商用硬體的100倍,比最新定制的數字加速器系統級能效高10倍,那些加速器為了能效甚至要犧牲精度。

對我們來說,提高每個瓦片的能效非常重要,因為一個完整的系統也會在其他任務上消耗能量,比如移動激活值和支援數字電路。

要使這種模拟人工智能方法真正取得成功,還有許多重要挑戰需要克服。首先,根據定義,深度神經網絡具有多層結構。要實作多層級聯,我們必須通過人工神經元的激活作用(一種非線性函數)處理向量矩陣乘法瓦片的輸出,并将其傳遞給下一個瓦片。非線性有可能通過模拟電路執行,并且以下一層所需的持續時間形式傳達結果,但除了向量矩陣乘法的簡單級聯之外,大多數網絡還需要其他運算。這意味着我們需要高效的模數轉換(ADC),以及和瓦片之間進行适量的并行數字計算。新穎、高效的數模轉換有助于避免這些電路對整體效率産生過多影響。最近,我們推出了一種基于相變存儲器的高性能瓦片,使用了一種新型模數轉換方法,可以幫助瓦片實作每瓦10萬億次以上的運算。

歐姆定律+基爾霍夫電流定律=更好的人工智能?

第二個挑戰與非易失性存儲器裝置的特性有關,且更棘手。即使用相當低精度的數字描述它們的權值,數字深度神經網絡的準确性也已經得到了證明。CPU經常使用的32位浮點數對深度神經網絡是不必要的。使用8位浮點數甚至4位整數,深度神經網絡通常也能工作得很好,能耗也很低。這為模拟計算帶來了希望,隻要我們能夠保持類似的精度即可。

鑒于電導精度的重要性,需要将表示模拟神經網絡中的權值的電導值慢慢地、仔細地寫入非易失性儲存設備。與傳統存儲器(如靜态随機存取存儲器和電阻式随機存取存儲器)相比,相變存儲器和電阻式随機存取存儲器的程式設計速度較慢,幾個程式設計周期後會出現磨損。幸運的是,推理不需要經常重新程式設計權值。是以,模拟人工智能可以使用耗時的寫驗證技術來提高相變存儲器和電阻式随機存取存儲器的程式設計精度,且不必擔心裝置磨損。

這種提升是非常必要的,因為非易失性存儲器具有内在的程式設計噪聲。電阻式随機存取存儲器的導電性取決于幾個原子形成細絲的運動;相變存儲器的導電性取決于多晶材料中晶粒的随機形成。這兩種随機性給數值的寫入、驗證和讀取帶來了挑戰。此外,在大多數非易失性存儲器中,電導會随溫度和時間而變化。除此之外,還有相變存儲器中的非晶相結構漂移、電阻式随機存取存儲器中的細絲松弛或閃存單元中捕獲的電荷洩漏等影響。

歐姆定律+基爾霍夫電流定律=更好的人工智能?

有幾種方式可以巧妙地解決這個問題。使用兩個電導對可以顯著改善權值程式設計問題。其中,一對用于儲存大部分信号,而另一對用于糾正主對上的程式設計錯誤。由于噪聲在多個裝置間平均,是以噪聲降低了。

我們最近對基于多相變存儲器的晶片測試了這種方法,每個權值使用一個和兩個電導對。我們用這種方法在多個深度神經網絡上證明了其具有卓越的準确性,甚至包括通常對權值程式設計錯誤很敏感的循環神經網絡。

不同的技術可以幫助改善讀數噪聲和漂移效應。但由于漂移是可預測的,也許最簡單的方法是在讀數過程中用與時間相關的增益來放大信号,這能夠抵消大部分誤差。另一種方法是開發同一技術,訓練深度神經網絡适應低精度數字推理。這些方法可調整神經網絡模型以比對底層硬體的噪聲局限。

正如我們提到的,網絡正變得很龐大。在數字系統中,如果網絡與加速器不适配,你可以從外部存儲晶片給每層深度神經網絡導入權值。但是非易失性存儲器的寫入限制使得這一機制變得很糟糕。不過,可将多個模拟人工智能晶片組合在一起,将部分網絡的中間結果從一塊晶片傳遞到下一塊晶片。這種機制會帶來一些額外的通信延遲和能耗,但其代價遠遠小于本身移動權值。

到目前為止,我們隻讨論了推理,即将新資料作用于已經過訓練的神經網絡。但是,模拟人工智能還有幫助訓練深度神經網絡的其他機會。

深度神經網絡訓練使用的是反向傳播算法。它結合了成熟的正向推理運算和另外兩個重要步驟——誤差反向傳播和權值更新。誤差反向傳播就像反向運作推理一樣,由網絡的最後一層到第一層;權值更新将運作原始正向推理的資訊與這些反向傳播誤差結合起來,調整網絡權值,使模型更加準确。

反向傳播步驟可以在瓦片上進行,但與推理的方式相反——按列施加電壓,按行積累電流。更新權值則是用正向推理的原始激活資料驅動行,同時使用反向傳播期間産生的誤差信号驅動列。

訓練涉及必須消除的衆多微小權值增減,但實作起來很困難,原因有兩個。首先回想一下,非易失性存儲器會因程式設計太多而産生損耗。其次,相同的電壓脈沖以相反極性施加給非易失性存儲器,存儲單元的電導變化量可能不同;它的反應是不對稱的。但是,對稱特性對于反向傳播産生精确網絡而言至關重要。由于訓練所需的電導變化幅度接近非易失性存儲器材料的固有随機水準,這将變得更具挑戰性。

有幾種辦法可以幫助解決這方面的問題。例如,有許多方法可累積多個訓練案例的權值更新,然後在訓練期間定期将這些更新傳輸給非易失性儲存設備。我們在IBM開發了一種叫做“Tiki-Taka”的新算法,通過這種技術,成功使用高度不對稱的電阻式随機儲存設備對深度神經網絡進行了訓練。最後,我們正在開發一種名為“電化學随機存取存儲器”(ECRAM)的裝置,它可以提供不僅對稱而且高度線性和漸進的電導更新。

模拟人工智能能否成功将取決于能否同時實作高密度、高吞吐量、低延遲和高能效。密度取決于非易失性存儲器內建到晶片半導體上方布線的緊密程度。瓦片級别的能源效率将受到模數轉換電路的限制。

但是,即使這些因素得到改善,越來越多的瓦片連接配接在一起,阿姆達爾定律(關于并行計算局限性的論點)也将對系統能效優化提出新的挑戰。先前不是特别重要的内容,如瓦片之間所需的資料通信和剩餘的數字計算,将産生越來越高的能耗預算,導緻瓦片本身的峰值能源效率與整個模拟人工智能系統的持續能源效率産生差距。當然,無論模拟還是數字人工智能,每一個人工智能加速器最終都将面臨這個問題。

前進的道路必然與數字人工智能加速器不同。數字的方法可降低精度,直到準确性衰降。但是,模拟人工智能必須首先提高内部模拟子產品的信噪比(SNR),直到足以證明其與數字系統的準确性相當。信噪比提高以後,可改進提高密度和能源效率。

這些令人振奮的問題都需要解決,而解決這些問題需要材料科學家、裝置專家、電路設計師、系統架構師和深度神經網絡專家的共同努力。人們對更節能的人工智能加速器有強烈且持續的需求,同時又沒有其他有吸引力的替代方式來滿足這一需求。考慮到各種各樣的潛在儲存設備和實作途徑,某種程度的模拟計算很可能會進入未來的人工智能加速器。

作者:Geoffrey W. Burr、Abu Sebastian、Takashi Ando、Wilfried Haensch

轉載内容僅代表作者觀點

不代表中科院實體所立場

如需轉載請聯系原公衆号

來源:悅智網

編輯:利有攸往

繼續閱讀