因為專業(yè)
所以領(lǐng)先
近日,清華大學(xué)集成電路學(xué)院教授吳華強團隊研制出一顆新型芯片,能高效“片上學(xué)習(xí)”不少人工智能任務(wù)。這顆芯片的核心元器件是“憶阻器”,架構(gòu)是“存算一體”,創(chuàng)新點在于能耗只有常規(guī)系統(tǒng)的3%,研究水平很高,2023年9月14日在線發(fā)表在《科學(xué)》上。
美國芯片產(chǎn)業(yè)出口管制的背景下,芯片話題自帶熱度,清華的這個高水平芯片成果,引發(fā)了不少人的興趣,希望看到中國芯片技術(shù)的新突破,但又感覺看不懂,這里我們需要關(guān)注“存算一體”、“憶阻器”以及“片上學(xué)習(xí)”這三個點,以及它們的協(xié)同一體化。
日常的編程,大多是在軟件層面進行,其中“軟硬件結(jié)合”、“嵌入式編程”指的是開發(fā)者能夠?qū)鞲衅?、相機之類的硬件外設(shè)進行連接、SDK調(diào)用,但不需要知道硬件細節(jié)。
再深入,編程可以延伸到操作系統(tǒng)、指令集層面,這要求開發(fā)者對整個計算系統(tǒng)更為了解,用匯編語言之類的辦法或者繞開普通編程與界面工具的限制,直接對系統(tǒng)進行深層調(diào)用,進而提高效率,但這還是在軟件層面,思維都是基于0-1數(shù)值邏輯的。
繼續(xù)深入,就涉及到到芯片層面。由于芯片和系統(tǒng)架構(gòu)決定了計算系統(tǒng)的特性,有一定實力的公司會直接使用芯片進行開發(fā),甚至自研復(fù)雜的芯片。目前階段,制造芯片與傳統(tǒng)IT產(chǎn)業(yè)01邏輯有區(qū)別,更像是一個在硅片上以納米尺度繡花的物理化學(xué)過程,它的基礎(chǔ)是半導(dǎo)體元器件。所以,芯片設(shè)計,是IT業(yè)真正“軟硬兼修”的連接環(huán)節(jié)。它一頭要理解指令集、操作系統(tǒng)、程序邏輯、人工智能等軟件知識,一頭又要和元器件、芯片架構(gòu)等底層硬件知識打交道。
近年來,由于神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)的流行,業(yè)界在芯片設(shè)計層面對神經(jīng)網(wǎng)絡(luò)的研究也很熱門。清華的憶阻器芯片,就是把以上各類知識綜合到一起,深入理解之后的創(chuàng)新。在這個層面,如何存儲、更新數(shù)據(jù),都需要深入思索,并作出創(chuàng)新。
雖然憶阻器與交叉陣列展現(xiàn)了潛在的性能,但是要實際做出芯片應(yīng)用,體現(xiàn)憶阻器的優(yōu)點,還是個相當(dāng)有挑戰(zhàn)性的事——這需要對機器學(xué)習(xí)算法、系統(tǒng)架構(gòu)、元器件設(shè)計、芯片設(shè)計、芯片制造都有相當(dāng)?shù)牧私?,才能做出完整的驗證系統(tǒng)。而清華作者們就是具體實現(xiàn)了一個基于憶阻器交叉陣列的新架構(gòu)芯片,能算是完全集成(fully integrated)的憶阻器芯片,并通過一系列人工智能任務(wù)上展現(xiàn)了芯片架構(gòu)的優(yōu)點與潛力。
清華團隊開發(fā)的憶阻器芯片架構(gòu)叫STELLAR,有兩個憶阻器交叉陣列數(shù)組,大一些的是2T2R的,有1568*100個憶阻器,在神經(jīng)網(wǎng)絡(luò)模型中代表784*100的權(quán)重矩陣。小一些的是1T1R的,有100*20個憶阻器,代表100*10的權(quán)重矩陣(注意不是100*20)。兩個憶阻器交叉陣列組合成了784*100*10的一個三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用于完成一些小型的人工智能算法任務(wù)。
這兩個Crossbar各有特性。大的是2T2R的,里面的權(quán)重是“off-chip”離線訓(xùn)練好的,然后上傳到交叉陣列里面,它的特點是可以并行計算矩陣乘法,節(jié)點數(shù)多,展現(xiàn)了“存算一體”的優(yōu)良特性。小的是1T1R的,規(guī)模小,但是后面附帶權(quán)重更新邏輯,可以在芯片內(nèi)訓(xùn)練更新網(wǎng)絡(luò)權(quán)重,展現(xiàn)了“片上學(xué)習(xí)”(on-chip learning)的功能。
兩個憶阻器交叉陣列結(jié)合CMOS芯片制造工藝,真的造出來了,上圖是2T2R Crossbar的局部切片圖。這個生產(chǎn)工藝良率接近100%,切片圖像清晰。憶阻器元器件的制造應(yīng)該不是難題了,材料也從二氧化鈦變成了幾種物質(zhì)復(fù)合,元器件性能應(yīng)該還有提升空間。
芯片上面也是有許多CMOS晶體管的,有輔助核心模塊的周邊電路,處理神經(jīng)網(wǎng)絡(luò)前向推導(dǎo)、反向傳播學(xué)習(xí)的邏輯。還有ADC轉(zhuǎn)換,將兩個憶阻器交叉陣列的模擬物理量輸出轉(zhuǎn)換成數(shù)字。應(yīng)用這顆芯片,其實就是用里面兩個權(quán)重矩陣的推理與訓(xùn)練功能。
這芯片可以獨立地作為一個神經(jīng)網(wǎng)絡(luò)運作,也可以在外面再加上一些層,作為網(wǎng)絡(luò)的一部分。如實現(xiàn)CNN網(wǎng)絡(luò)時,前面需要在外接電腦上實現(xiàn)一些卷積層,用這兩個矩陣當(dāng)最后的全連接層輸出。
測試與訓(xùn)練時,需要外接的設(shè)備對這芯片傳入數(shù)據(jù)、接收結(jié)果。整個測試體系搭建起來后,就是一個完整的系統(tǒng),可以對芯片的性能進行完整的測試。測試的神經(jīng)網(wǎng)絡(luò)功能相對簡單但能展現(xiàn)特性,例如,輸出是10個節(jié)點,正好對應(yīng)0-9的10個數(shù)字,可以用來測MINST數(shù)據(jù)集里的手寫數(shù)字識別。
芯片架構(gòu)叫STELLAR,是“sign- and threshold-based learning”的簡稱,指的是訓(xùn)練中的創(chuàng)新。如上圖,W1是大的交叉陣列,輸入向量X進來,乘以矩陣W1,再用激活函數(shù)(Activation function)ReLU變換——其實很簡單,負數(shù)變0,正數(shù)不變——變成向量Y1。Y1再乘以矩陣W2,再ReLU變換,成為輸出向量Y2。Y2與訓(xùn)練樣本T比較,生成誤差向量E。
清華團隊的創(chuàng)新是,對W2的訓(xùn)練,先將Y1、Y2、E三個向量的符號抽出來,實施更好的權(quán)重更新辦法。其出發(fā)點是,一個權(quán)重是用一正一負兩個憶阻器存儲的,可以選擇性根據(jù)符號,一列一起更新。這是深入思考反向傳播的權(quán)重更新算法,結(jié)合元器件架構(gòu),實現(xiàn)了憶阻器潛在的并行功能。如圖,權(quán)重更新分為SET和RESET兩個步驟,SET步驟只對正的符號更新正Cell,對負的符號更新負Cell,而RESET正相反。這樣SET和RESET分別都可以按列并行加速了。
另一個創(chuàng)新是,在誤差向量E上加一個threshold,預(yù)先將一些微小的誤差過濾掉,這樣給出的符號向量,訓(xùn)練性能更優(yōu)。這個threshold是可配置的,對不同的網(wǎng)絡(luò)模型可以設(shè)置相應(yīng)的過濾門限值,這應(yīng)該是結(jié)合SET和RESET特性的進一步優(yōu)化。
這個STELLAR架構(gòu),是為展現(xiàn)高效的片上學(xué)習(xí)功能。清華團隊進行了多項測試,如追逐光點的運動小車。光點在前面一個車的尾燈上,后面的運動小車用攝像頭拍前面的圖像,用憶阻器芯片計算決定操控動作。夜晚的追光功能用CNN網(wǎng)絡(luò)事先訓(xùn)練好了,前6個卷積層在PC上實現(xiàn),后面512*100*10的兩個全連接層權(quán)重轉(zhuǎn)移到兩個憶阻器交叉陣列上了。
實驗表明,晚上跟尾燈表現(xiàn)不錯。但是白天因為沒訓(xùn)練,就追得不好。收集白天圖像,對后一個1T1R的憶阻器交叉陣列進行“片上學(xué)習(xí)”。只要100次訓(xùn)練就有大幅提升,白天也能跟好了,同時晚上也還是能更好。
另一個實驗是,事先將識別數(shù)字0、2-9的9個數(shù)字的網(wǎng)絡(luò)訓(xùn)練好,784*100*10的網(wǎng)絡(luò)權(quán)重轉(zhuǎn)移到憶阻器芯片里(正好全用上了),故意不訓(xùn)練數(shù)字1。之后再把1的樣本放上來,對后一個憶阻器交叉陣列進行訓(xùn)練,只要100個樣本,1也能認了,識別率從7%提升到93%,老的數(shù)字識別率只是從95.3%微降到93.2%,這說明芯片能適應(yīng)新類型的學(xué)習(xí)樣本。
還有語音識別演示,女聲提前訓(xùn)練好,男聲在片上學(xué)習(xí),也能學(xué)成。還通過ResNet網(wǎng)絡(luò)的例子,展示了架構(gòu)的可擴散性。這些人工智能任務(wù),以及網(wǎng)絡(luò)架構(gòu),按現(xiàn)在的深度學(xué)習(xí)進展來看,都是較為基礎(chǔ)的(都還算是實用),但是用憶阻器芯片來演示展現(xiàn)特性,是文章的創(chuàng)新。
在字符識別測試時,清華團隊還用48天進行了重復(fù)測試,結(jié)果是穩(wěn)定的。這說明憶阻器芯片里的權(quán)重是穩(wěn)定的,這是芯片能實用的重要特性。
可以看出,這顆憶阻器芯片是真的有“存算一體”的特性。矩陣權(quán)重就在芯片里,計算過程也是在芯片里完成的,而且還有神經(jīng)形態(tài)處理器的仿生特性。
通過STELLAR架構(gòu)并行加速等創(chuàng)新,相對專用集成電路(ASIC)加速的常規(guī)系統(tǒng),清華團隊實現(xiàn)了35倍的能耗效率,這是芯片架構(gòu)的突出亮點。STELLAR架構(gòu)里,不需要高能耗的write verification,在能耗效率上非常有優(yōu)勢。而且這是一顆相對完整獨立的憶阻器芯片,較為系統(tǒng)地展示了憶阻器在神經(jīng)網(wǎng)絡(luò)計算方面的潛力,對于邊緣計算有突破性意義。
通過以上的介紹,我們再看新聞通稿的內(nèi)容,就會明白多了(以下為通稿原文):
● 全球首顆全系統(tǒng)集成的、支持高效片上學(xué)習(xí)(機器學(xué)習(xí)能在硬件端直接完成)的憶阻器存算一體芯片,在支持片上學(xué)習(xí)的憶阻器存算一體芯片領(lǐng)域取得重大突破。
● 該芯片有望促進人工智能、自動駕駛、可穿戴設(shè)備等領(lǐng)域發(fā)展。
● 芯片包含支持完整片上學(xué)習(xí)所必需的全部電路模塊,成功完成圖像分類、語音識別和控制任務(wù)等多種片上增量學(xué)習(xí)功能驗證,展示出高適應(yīng)性、高能效、高通用性、高準確率等特點,有效強化智能設(shè)備在實際應(yīng)用場景下的學(xué)習(xí)適應(yīng)能力。
● 相同任務(wù)下,該芯片實現(xiàn)片上學(xué)習(xí)的能耗僅為先進工藝下專用集成電路(ASIC)系統(tǒng)的3%,展現(xiàn)出卓越的能效優(yōu)勢,極具滿足人工智能時代高算力需求的應(yīng)用潛力,為突破馮·諾依曼傳統(tǒng)計算架構(gòu)下的能效瓶頸提供了一種創(chuàng)新發(fā)展路徑。
通過以上的討論也能看出,清華憶阻器芯片主要還是在性能探索層面,大規(guī)模進入工業(yè)實用還需要進一步優(yōu)化。因為基于常規(guī)芯片的人工智能系統(tǒng)已經(jīng)大規(guī)模應(yīng)用了,深度學(xué)習(xí)取得突破后,識別性能相當(dāng)好,一些應(yīng)用成本很低。
目前來看,憶阻器芯片能夠承載的網(wǎng)絡(luò)規(guī)模還是有限,識別的準確率只是90%多,離100%還有不小的距離,和工業(yè)應(yīng)用的高可靠性標準還是有點差距。一些復(fù)雜應(yīng)用使用了規(guī)模很大的深度神經(jīng)網(wǎng)絡(luò)DNN,憶阻器交叉陣列只能在里面占部分環(huán)節(jié),整個應(yīng)用還是需要以傳統(tǒng)的馮·諾依曼結(jié)構(gòu)為基礎(chǔ)。
也就是說,簡單的神經(jīng)網(wǎng)絡(luò)應(yīng)用,傳統(tǒng)的架構(gòu)已經(jīng)夠好,能耗和成本都夠低。復(fù)雜的應(yīng)用,傳統(tǒng)架構(gòu)是有“馮·諾依曼瓶頸”,能耗高很需要改進,憶阻器芯片現(xiàn)階段還不足以在復(fù)雜應(yīng)用中充分發(fā)揮作用。但是,憶阻器芯片確實展現(xiàn)出了并行加速與高效存儲的特性,這讓人很感興趣,相信未來會有更多進展。