這幾天被Google I/O開發(fā)者大會(huì)刷屏,尤其是會(huì)上Google的現(xiàn)任CEO桑德爾·皮查伊(Sundar Pichai)公布了在AlphaGo戰(zhàn)勝李世石的“秘密武器”就是一塊晶片“TPU”(張量處理單元,Tensor Processing Unit,),它使得機(jī)器學(xué)習(xí)類深度神經(jīng)網(wǎng)絡(luò)模型在每瓦特性能性能支撐上優(yōu)于傳統(tǒng)硬件。
其實(shí)早在去年年底,Google就已開源深度學(xué)習(xí)系統(tǒng)TensorFlow。
關(guān)于深度學(xué)習(xí)開源軟件
簡(jiǎn)單回顧下TensorFlow——一個(gè)開源軟件庫使用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算。圖中的節(jié)點(diǎn)代表數(shù)學(xué)運(yùn)算,而圖形邊緣表示多維數(shù)據(jù)數(shù)組(張量)之間的溝通,靈活的架構(gòu)允許你計(jì)算部署到一個(gè)或多個(gè)CPU或GPU,雖然一開始谷歌大腦開發(fā)團(tuán)隊(duì)是主要進(jìn)行機(jī)器學(xué)習(xí)的目的,和深層神經(jīng)網(wǎng)絡(luò)的研究,但總體系統(tǒng)足以適用于各種各樣的其他領(lǐng)域。
這就已經(jīng)使得第一代系統(tǒng)DistBelief大幅度被簡(jiǎn)化。因?yàn)樵谏疃葘W(xué)習(xí)算法CNN流行之前,機(jī)器學(xué)習(xí)的特征學(xué)習(xí)主要是通過人類根據(jù)自身擁有的領(lǐng)域知識(shí)或經(jīng)驗(yàn)來提取合適的特征,而特征的好壞直接決定了機(jī)器學(xué)習(xí)運(yùn)用的成敗。
但是對(duì)于圖像或者語音而言,人類提取特征的標(biāo)準(zhǔn)也較難形容,譬如我們識(shí)別一朵紅玫瑰,我們會(huì)覺得紅玫瑰有刺、有顏色、有葉子、有花瓣和莖,而且這幾個(gè)部件之間有一定組織關(guān)聯(lián)以及空間約束,譬如刺在莖上的分布有一定的距離、花瓣在開放之后與尚未開放之前有一定的緊密度差距等,但是我們?cè)撚迷鯓拥恼Z言來描述人類“眼睛”呢?如果認(rèn)真想一想就會(huì)發(fā)現(xiàn)挺難的。
但是人類本質(zhì)上是小樣本監(jiān)督學(xué)習(xí),或者無監(jiān)督學(xué)習(xí),現(xiàn)有的深度學(xué)習(xí)還無法做到這一點(diǎn),這也是深度學(xué)習(xí)領(lǐng)域的研究著重需要突破的點(diǎn)。因?yàn)槲覀冎灰o幾張開放程度不同的紅玫瑰的照片給人看,他就可以學(xué)習(xí)到都些是什么樣的紅玫瑰。人似乎可以自動(dòng)“學(xué)習(xí)”出特征,或者說你給了他看幾張紅玫瑰的照片,然后問紅玫瑰有什么特征,他也會(huì)就可以隱約告訴你紅玫瑰有什么特征,甚至是不同開放程度特有的特征,這些特征是百合花、水仙花或者其他的花沒有的。
而深度學(xué)習(xí)就是人工神經(jīng)網(wǎng)絡(luò)ANN (Artificial Neural Network),是在借鑒一些人腦運(yùn)行的機(jī)制基礎(chǔ)上模擬神經(jīng)元的連接設(shè)計(jì)的。因?yàn)樯疃葘W(xué)習(xí)算法相較于傳統(tǒng)的機(jī)器學(xué)習(xí)在一些重要的任務(wù)上取得了大幅度的提升,以至于引發(fā)一場(chǎng)熱潮甚至形容為革命也不為過,但是深度學(xué)習(xí)需要海量已標(biāo)記的數(shù)據(jù)進(jìn)行長(zhǎng)時(shí)間的訓(xùn)練,其對(duì)計(jì)算能力的要求非常高。深度學(xué)習(xí)是計(jì)算密集型的算法,在近幾年,隨著計(jì)算能力的增強(qiáng),深度神經(jīng)網(wǎng)絡(luò)對(duì)比許多傳統(tǒng)機(jī)器學(xué)習(xí)數(shù)據(jù)集優(yōu)勢(shì)體現(xiàn)出來之后,逐漸用到圖像、語言,它不再需要人工提取特征,自動(dòng)學(xué)出特征后效果提升更明顯。
最初使用傳統(tǒng)的CPU(中央處理器,Central Processing Unit)計(jì)算時(shí),為了保證算法的實(shí)時(shí)性,會(huì)需要使用大量的CPU來進(jìn)行并行計(jì)算,就像Google Brain項(xiàng)目用了16000個(gè)CPU Core的并行計(jì)算平臺(tái)訓(xùn)練來保證算法的運(yùn)行速度。
深度學(xué)習(xí)是計(jì)算密集型的算法,所以在GPU (圖形處理器,Graphic Processing Unit)、FPGA(現(xiàn)場(chǎng)可編程門陣列,F(xiàn)ield-Programmable Gate Array)和TPU等超速處理硬件發(fā)展起來后,CPU 在機(jī)器學(xué)習(xí)上進(jìn)行的計(jì)算量大大減少,但是CPU并不會(huì)完全被取代,因?yàn)镃PU較為靈活,且擅長(zhǎng)于單一而有深度的運(yùn)算,還可以做其他事情。
比如當(dāng)使用GPU做深度學(xué)習(xí)計(jì)算時(shí),CPU還是需要在代碼中寫入并讀取變量、執(zhí)行指令、啟動(dòng)在GPU上的函數(shù)調(diào)用、創(chuàng)建小批量的數(shù)據(jù)等,但是不再需要取指、譯碼等,所以Google在I/O大會(huì)上也強(qiáng)調(diào)了其并沒完全拋棄CPU,TPU 只是在一些輔助使用在特定的應(yīng)用中。
TPU對(duì)谷歌意味著什么?
谷歌專門開發(fā)的應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)的軟件引擎。谷歌表示,按照摩爾定律的增長(zhǎng)速度,現(xiàn)在的TPU的計(jì)算能力相當(dāng)于未來七年才能達(dá)到的計(jì)算水平,每瓦能為機(jī)器學(xué)習(xí)提供更高的量級(jí)指令,這意味它可以用更少的晶體進(jìn)行每一個(gè)操作,也就是在一秒內(nèi)進(jìn)行更多的操作。并且谷歌將其與Deep learning系統(tǒng)平臺(tái)TensorFlow進(jìn)行了深度綁定,可以獲得更好的支持,做更強(qiáng)的生態(tài),包括搜索、無人駕駛汽車、智能語音等100多個(gè)需要使用機(jī)器學(xué)習(xí)技術(shù)的項(xiàng)目。
TPU是什么?
TPU就是 custom ASIC specifically for machine learning ,專門為機(jī)器學(xué)習(xí)設(shè)計(jì)的專用集成電路。在Google2016 I/O上首次提及,但是并沒有公布技術(shù)細(xì)節(jié),只是在其官方博客里有披露一些信息。
ASIC并不是新鮮的東西,只不過Google利用它來做來一個(gè)定制版的ASIC,但是具體技術(shù)細(xì)節(jié)是沒有披露的,而且以后會(huì)不會(huì)披露,會(huì)不會(huì)對(duì)消費(fèi)者開放,這都是有待觀察的,現(xiàn)在披露的消息是說會(huì)用在Google的云計(jì)算平臺(tái)上。
遺憾的是目前并沒有太多的故事可分享,唯一一個(gè)值得注意的就是Google已經(jīng)使用此芯片運(yùn)行了一年多的時(shí)間,而且已經(jīng)用在了其大量的產(chǎn)品上,說明TPU已經(jīng)是一個(gè)較為成熟的設(shè)計(jì)了。
到底會(huì)不會(huì)取代GPU或CPU呢?谷歌資深副總裁Urs Holzle透露,當(dāng)前谷歌TPU、GPU并用,這種情況仍會(huì)維持一段時(shí)間,但也語帶玄機(jī)表示,GPU過于通用,谷歌偏好專為機(jī)器學(xué)習(xí)設(shè)計(jì)的晶片。GPU可執(zhí)行繪畫的運(yùn)算工作,用途多元,TPU屬于ASIC,也就是專為特定用途設(shè)計(jì)的特殊規(guī)格邏輯IC,由于只執(zhí)行單一工作,速度更快,但缺點(diǎn)是成本較高。
TPU并非萬能
TPU的高效能的來源正是其非萬能的設(shè)計(jì)邏輯(極度單一的設(shè)計(jì)原則),正如上文所說的CPU是通用計(jì)算,而GPU相對(duì)來說雖然比CPU更不通用,但是因?yàn)镚PU本身是作為顯卡的處理器產(chǎn)生的,所以GPU也是相對(duì)通用的。而TPU為專用的邏輯電路,單一工作,速度快,但由于其是ASIC,所以成本高。
另外一點(diǎn)有可能是TPU的暫時(shí)的缺點(diǎn)就是TPU現(xiàn)在為Google專用,還不是消費(fèi)類產(chǎn)品,而要走向流行的消費(fèi)類產(chǎn)品,還需要現(xiàn)在市場(chǎng)的軟硬件進(jìn)行配合,這也是需要一定的時(shí)間的,而且會(huì)不會(huì)得到市場(chǎng)最終認(rèn)可也是存在疑問的。所以TPU非常不萬能。
只是TPU的發(fā)布,有一點(diǎn)很重要的意義:現(xiàn)在的深度學(xué)習(xí)生態(tài)環(huán)境已經(jīng)非常重視這些硬件的升級(jí)了,這些定制硬件的春天就要到來,最終這個(gè)市場(chǎng)鹿死誰手真是無法預(yù)料,而國(guó)內(nèi)在這方面并不落后,如寒武紀(jì),地平線這樣公司也正在這方面摩拳擦掌。
雖然TPU帶來了突破性進(jìn)步,但這并不代表會(huì)完全淘汰CPU和GPU,目前主要會(huì)用來解決集成電路存在的成本高、耐用性差的問題。值得期待的事,Google是互聯(lián)網(wǎng)性質(zhì)的企業(yè),在硬件制作上能否超越傳統(tǒng)的硬件產(chǎn)商(如Nvidia,Intel等), 我們可以靜觀其變。
目前的深度學(xué)習(xí)硬件設(shè)備還有哪些?與傳統(tǒng)CPU有何差異?
那么目前深度學(xué)習(xí)的主要硬件設(shè)備與傳統(tǒng)CPU的差異有哪些呢?
FPGA
FPGA最初是從專用集成電路發(fā)展起來的半定制化的可編程電路,它無法像CPU一樣靈活處理沒有被編程過的指令,但是可以根據(jù)一個(gè)固定的模式來處理輸入的數(shù)據(jù)然后輸出,也就是說不同的編程數(shù)據(jù)在同一片F(xiàn)PGA可以產(chǎn)生不同的電路功能,靈活性及適應(yīng)性很強(qiáng),因此它可以作為一種用以實(shí)現(xiàn)特殊任務(wù)的可再編程芯片應(yīng)用與機(jī)器學(xué)習(xí)中。
譬如百度的機(jī)器學(xué)習(xí)硬件系統(tǒng)就是用FPGA打造了AI專有芯片,制成了AI專有芯片版百度大腦——FPGA版百度大腦,而后逐步應(yīng)用在百度產(chǎn)品的大規(guī)模部署中,包括語音識(shí)別、廣告點(diǎn)擊率預(yù)估模型等。在百度的深度學(xué)習(xí)應(yīng)用中,F(xiàn)PGA相比相同性能水平的硬件系統(tǒng)消耗能率更低,將其安裝在刀片式服務(wù)器上,可以完全由主板上的PCI Express總線供電,并且使用FPGA可以將一個(gè)計(jì)算得到的結(jié)果直接反饋到下一個(gè),不需要臨時(shí)保存在主存儲(chǔ)器,所以存儲(chǔ)帶寬要求也在相應(yīng)降低。
GPU
GPU是相對(duì)于CPU的一個(gè)概念,是一個(gè)專門的圖形的核心處理器,計(jì)算機(jī)中的GPU是顯卡的“心臟”,也就是相當(dāng)于CPU在電腦中的作用。但是因?yàn)镚PU在浮點(diǎn)運(yùn)算、并行計(jì)算等部分的計(jì)算方面能夠提供數(shù)十倍至上百倍的CPU性能,所以開始利用GPU來運(yùn)行機(jī)器學(xué)習(xí)模型,以便于在云端進(jìn)行分類和檢測(cè),同樣的大訓(xùn)練集,相對(duì)于CPU耗費(fèi)的時(shí)間大幅度縮短,占用的數(shù)據(jù)中心的基礎(chǔ)設(shè)施也少很多,所以GPU在耗費(fèi)功率更低、占用基礎(chǔ)設(shè)施更少的情況下能夠支持遠(yuǎn)比單純使用CPU時(shí)10-100倍的應(yīng)用吞吐量。
譬如圖像識(shí)別領(lǐng)域的圖普科技,則是基于大規(guī)模GPU集群搭建了AI超算平臺(tái),能夠支持億萬級(jí)別圖像的全面實(shí)時(shí)處理,并且利用深度學(xué)習(xí)算法設(shè)計(jì)的智能程序能通過快速迭代擁有強(qiáng)大的學(xué)習(xí)能力,實(shí)現(xiàn)高精度的智能識(shí)別結(jié)果。
而語音識(shí)別領(lǐng)域的科大訊飛,目前在深度學(xué)習(xí)訓(xùn)練方面,幾乎所有的運(yùn)算包括CNN、RNN等都是放在GPU加速卡上的,并且其還計(jì)劃在語音識(shí)別業(yè)務(wù)中啟用FPGA平臺(tái),通過重新設(shè)計(jì)硬件架構(gòu)在未來建造一個(gè)上萬規(guī)模的FPGA語音識(shí)別系統(tǒng)。
所以可以說,要實(shí)現(xiàn)讓機(jī)器能像人類一樣思考,企業(yè)不僅需要在算法模型的精確度上下功夫,同時(shí)高性能計(jì)算能力的硬件系統(tǒng)也是非常需要關(guān)注的,這些異構(gòu)加速技術(shù)協(xié)助處理器運(yùn)算速度的快速提升,讓機(jī)器學(xué)習(xí)應(yīng)用領(lǐng)域的硬件層面難度降低。
但是現(xiàn)在這些只是一個(gè)開始,更多的軟硬件創(chuàng)新肯定還在進(jìn)行中,不知道是否有一天,這些創(chuàng)新是否也會(huì)幫助AI超越人類呢?
評(píng)論