繆希辰
摘 要 人工智能芯片是當前人工智能技術重要的載體之一,其實現人工智能的技術基礎是其搭載的神經網絡。文章從原理上對神經網絡和人工智能芯片進行探究,在介紹人工智能芯片原理的同時對當前的人工智能芯片發展情況作出介紹,并在文章末尾對當前的人工智能芯片技術做出反思。
關鍵詞 人工智能;芯片;GPU:FPGA;ASIC
中圖分類號 TP3 文獻標識碼 A 文章編號 1674-6708(2019)230-0135-03
2018年以來,各大科技公司不斷推出自己的人工智能芯片,例如谷歌的TPU、亞馬遜云的Inderentia、高通的驍龍芯片等[ 1 ],可以說今年是人工智能芯片技術高速發展并逐步走向成熟的一年[ 2 ]。那么人工智能芯片是什么呢?人工智能技術又跟人工智能芯片有什么關系呢?
1 什么是人工智能芯片
關于人工智能芯片的定義在歷史的不同階段都有過不同的定義,目前來看,最為從業人員所認可的定義為“AI加速器”或者稱之為“神經網絡加速芯片”[ 3 ]。即當前的人工智能芯片主要是為神經網絡的計算所服務的,這可能跟很多人(尤其是業外人士)的認識相悖:人工智能芯片難道不是一個大腦的作用嗎?為什么有著“計算加速器”之類的稱號呢?在這里,筆者將從兩個方面來介紹人工智能芯片。
1.1 神經網絡
人工智能的定義很早就有人提出,但直到本世紀初才逐漸成為社會熱點,尤其近幾年相關行業得到了井噴式的發展,相關人才也成為各大互聯網、科技公司爭相招聘的對象。似乎不跟人工智能掛鉤的公司就算不上有技術競爭力的公司。這種現象發生的直接原因是神經網絡算法的大規模開發應用,根本原因是計算機性能的大幅提高。
那么什么是神經網絡呢?神經網絡算法是機器學習諸多算法中的一支,這種算法其實很早就有應用,例如在經濟學中它常被用來建立模型,或者說常被用于解決“黑箱問題”。從本質上來說,神經網絡其實是通過大量的計算來擬合出一個函數,該函數符合我們為它設下的諸多限制。例如,在人臉識別問題中,我們為神經網絡的訓練準備了大量的“樣本”(樣本即訓練集,用于神經網絡的函數調整,每個訓練樣本都有一個“標簽”,該標簽就是評價我們的函數是否合理的重要指標)。在最初,我們的函數的各個參數都是隨機、錯誤的,完全不具備實際意義,但通過將我們的輸出結果與標簽作比較,就可以得到我們當前的函數與理想函數之間的差距。
通過對神經網絡各層權重的求偏導,就可以得到神經網絡的梯度,進而以實際函數與理想函數之間的差距作為參考,實現隨機梯度下降,進而實現計算結果與實際結果的差距越來越小。最終,我們可以得到一個經過擬合的函數,該函數可以相對準確地對輸入進行判斷和預測。
總結來說,神經網絡可以這樣理解:輸入數據就像生產原料,從源頭輸入,在不同的生產線得到了不同的加工,最后匯聚為一個整體的產品。而神經網絡的構建就像生產線的構建,需要反復的試驗才能得到一個效率最高、產能最好的生產線,而構建這個生產線的目的則是為了得到一個成熟的生產過程,使得我們后來的生產原料都能夠準確、快速地得到處理。因此,所謂的神經網絡過程其實分為兩個階段,第一個階段是神經網絡的訓練,該過程需要大量的、反復的計算;第二個階段是“預測”,或者說實際應用,在該階段中神經網絡已經“成熟”并投入應用,開始對新的數據進行預測。
顯然,上述過程(不論訓練還是預測)都伴隨著大量的計算,但我們需要注意的是這些計算雖然規模上很大,但是每一次計算都不復雜(即便將非線性的激活函數考慮進來),或者說都是由簡單的加減法和乘法組成的,這也為我們人工智能芯片的開發提供了重要的理論基礎。
1.2 為什么需要人工智能芯片
傳統的計算機芯片采用的馮諾依曼架構強調存儲程序、順序執行,即將大量的片上資源留給存儲結構,因此CPU就像是一個老教授,他邏輯嚴謹,辦事有條理,但囿于其只有一人,處理的絕對速度在客觀上受到了限制,因此不管怎樣提升CPU的性能,它在處理大量的計算(即便是簡單計算)也存在著天然的缺陷。
正如上文所說,神經網絡的訓練和預測都需要大量的計算,在這種應用場景下,CPU的性能就受到了限制,一方面,它擅長的邏輯、時序處理功能都沒有得到充分應用;一方面,它不擅長的并行數據處理卻被成為了致命的缺陷。在這種背景下,對于能夠并行處理數據、擅長大量運算的人工智能芯片的需求也就合理合情了[ 4 ]。
2 人工智能芯片分類
如上所述,神經網絡的訓練和預測都需要大量計算,但我們要注意,這兩種任務的運算又是有區別的。在訓練過程中,我們相當于只有建造生產線的原材料,對于生產線具體的流向、交叉、協作都是未知的,只有經過了大量的試錯、改進之后整個生產線才逐漸確定下來;而對于預測過程而言,我們的生產線已經建立且成熟了,我們要做的只是按部就班地對原材料進行處理。也就是說,訓練過程更加的“普遍”、更加的“泛用”,而預測過程則更加的“專用”“特例化”,這也對我們的人工智能芯片提出了不同的要求。人工智能芯片分為以下幾類。
2.1 GPU
圖像處理單元(Graphics Processing Unit,GPU)最初是為了進行圖像處理而被開發出來的芯片。圖像處理問題與神經網絡有著類似的特點:都需要進行大量的、重復而簡單的運算。因此GPU近幾年也越來越多地被應用于神經網絡問題。
在上文中,我們將CPU比作為一個老教授,而GPU就像是一幫小學生。它的突出特點是并行、及時處理,邏輯功能弱而計算能力強。我們可以假想這樣一個場景:老教授拿到一個復雜的數學問題后將該問題拆解為若干個簡單的計算問題并下發給小學生們進行計算,在小學生們完成各自的計算任務后將計算結果匯總并上報給任務傳達者。
由于GPU出色的計算性能和比較通用的計算結構,它常被用于神經網絡的訓練,當前運用較多的就是NVIDIA公司各種產品,比如我們常說的RTX2080等游戲顯卡就是一種典型的GPU。
2.2 ASIC
GPU雖然在計算性能上已經有了很大的提高,但歸根結底仍然是一種泛用化的芯片,在預測問題中很可能存在性能過剩(我們可以理解為工廠為了加速生產引起了一大批新設備,但在不同的生產任務中需要的設備數量是不一定的,這就使得在某些生產任務中設備無法得到充分使用,造成浪費),使得我們的芯片發揮不出他應有的性能;同時,這種通用化的結構設計也使得芯片在面對一些特殊結構的神經網絡時捉襟見肘。而面向具體應用的集成電路(Application Specific Integrated Circuit,ASIC)就是為了解決這個問題而誕生的,簡單來說,當我們的神經網絡訓練完成后,其結構也就確定了。
我們可以根據這個結構設計專用的芯片來承載該神經網絡,這不僅能夠最大效率地發揮芯片性能,更能提升計算速度,使得預測能夠進一步加速。但是要注意的是,芯片設計的成本是比較高的,因此如果是為了單次、少量的應用而開發ASIC是得不償失的。目前得到應用的ASIC芯片有Intel的Nights Mill,Google的TPU以及中國首款嵌入式神經網絡處理器芯片星光智能一號等。
2.3 FPGA
ASIC的突出特點是集成化、特例化,而現場可編程門陣列(Field-Programmable Gate Array,FPGA)的特點則是靈活性高,我們可以將GPGA理解為積木,采取不同的方式搭建,就能夠得到不同的結構,進而實現不同的功能。單純地從性能上來講,FPGA與ASIC差距甚小,但是FPGA有著致命的缺陷:面積太大。眾所周知,集成電路的“集成”二字強調的是“占用面積小”,過大的面積會使得集成電路喪失其本身的意義。因此,對于少量應用或者結構驗證等不會大量開發的結構搭建而言,FPGA是性價比最高的一種方式,但對于大規模開發、大規模生產問題而言,ASIC才是成本最低、收益最高的方式。
目前,FPGA在AI芯片上的應用有Xilinx的華為云以及Intel的5G無線和自動駕駛方面等。
3 反思和總結
人工智能芯片已經得到了大規模的應用,不管是美顏攝像頭還是智能駕駛都有著人工智能芯片的身影。實際上不管是蘋果的A系列芯片還是華為的麒麟芯片,它們都搭載了相應的神經網絡加速功能,由此可見,神經網絡很有可能會進一步與我們的生活相結合。但是我們也注意到,網上仍然有一些對人工智能芯片不看好的聲音,而這些聲音歸根結底來源于對神經網絡的不信任[ 5 ]。
如前文所說,神經網絡究其根本是一種函數擬合,或者說是一種統計上的概率預測,如果以“感知”二字來衡量人工智能的話,那么當前的神經網絡只是做到了“感”:對于我們給出的輸入,網絡可以給出相應的輸出,但為什么給出這樣的輸出呢?網絡并不能回答我們。并且即便只是感,也只局限于那些數學建模完備、經過了反復研究的工程問題上,而對于有那些復雜的、抽象的問題,神經網絡仍然是一籌莫展。因此,對人工智芯片的不認可應當說是有一定道理的,退一萬步說,AI芯片并不智能,它只是加速了一部分的數據運算,從這個角度上講,AI芯片確實有一種“泡沫”的嫌疑。
雖然神經網絡和AI芯片有著或多或少、這樣那樣的問題,但在當前的歷史階段,神經網絡仍然是最接近人工智能的工程方法,AI芯片也確實是實現人工智能的必由之路,因此,雖然對于互聯網人工智能熱潮應當懷有一定的警醒,但大可不必對神經網絡等如臨大敵。我們應當擁抱技術、擁抱時代,不斷用自己的努力去譜寫更加美好的未來。
參考文獻
[1]人工智能騰訊科技宇行.人工智能芯片軍備競賽開啟,谷歌等硅谷巨頭加入[J].信息與電腦(理論版),2017(8):23-24.
[2]劉偉,倪桑.2017年人工智能研發熱點回眸[J].科技導報,2018.
[3]尹首一,郭珩,魏少軍.人工智能芯片發展的現狀及趨勢[J].科技導報,2018,36(17):45-51.
[4]施羽暇.人工智能芯片技術研究[J].電信網技術,2016(12):11-13.
[5]張蔚敏,蔣阿芳,紀學毅.人工智能芯片產業現狀[J].電信網技術,2018(2).