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