蘋果最近舉行了發(fā)布會(huì),推出iPhone X和iPhone 8,同時(shí)蘋果還推出A11 Bionic芯片,這是一個(gè)6核CPU,它是蘋果的定制GPU,蘋果管它叫作“Neural Engine”(神經(jīng)引擎)。對(duì)于這個(gè)新硬件,蘋果沒有談太多,只是說:
“新A11 Bionic神經(jīng)引擎采用多核設(shè)計(jì),實(shí)時(shí)處理速度最高每秒可以達(dá)到6000億次。A11 Bionic神經(jīng)引擎主要是面向特定機(jī)器學(xué)習(xí)算法、Face ID、Animoji及其它一些功能設(shè)計(jì)的。”
上面所說的話基本都是宣傳資料。所謂的每秒運(yùn)算6000億次對(duì)你來說沒有任何意義。當(dāng)然,這個(gè)數(shù)字應(yīng)該是真實(shí)的,但是它并不能告訴我們底層架構(gòu)是怎樣的、真實(shí)性能又是怎樣的,因?yàn)槲覀儾恢捞O果所謂的“運(yùn)行”到底是什么意思。當(dāng)我們談?wù)揋PU性能,會(huì)用TFLOPs評(píng)估,例如,廠商會(huì)提供GPU在理想環(huán)境下執(zhí)行浮點(diǎn)運(yùn)算的速度。一般來說,執(zhí)行特定任務(wù)時(shí),GPU的表現(xiàn)與理論數(shù)據(jù)有差距,就蘋果芯片來說應(yīng)該也是一樣的。
到底蘋果硬件的具體規(guī)格如何?我們無法確切知道,盡管如此,我們還是可以推斷一下。
什么是機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)是AI技術(shù)的分支,它的目標(biāo)是創(chuàng)建算法,讓算法通過數(shù)據(jù)自動(dòng)學(xué)習(xí)。機(jī)器學(xué)習(xí)的種類很多,其中有兩種尤其引人關(guān)注,一種是監(jiān)督式學(xué)習(xí),一種是無監(jiān)督學(xué)習(xí)。
如果是監(jiān)督式學(xué)習(xí),處理的數(shù)據(jù)已經(jīng)貼上標(biāo)簽,分了類。例如,如果你擁有某個(gè)城市的數(shù)據(jù)庫(kù),它會(huì)告訴你公寓的租賃情況,還有每個(gè)公寓占地面積是多少。如果你將這些數(shù)據(jù)放進(jìn)算法,用于監(jiān)督式學(xué)習(xí),它會(huì)在占地面積與租賃情況之間構(gòu)建圖表,將二者聯(lián)系起來,你給它一個(gè)面積,它可以預(yù)測(cè)相對(duì)應(yīng)的租賃情況,不需要再寫一個(gè)特定程序執(zhí)行相同的任務(wù)。你可能會(huì)向模型下命令,讓它預(yù)測(cè)1000平方英尺的公寓租金是多少,然后查看1000平方英尺的公寓實(shí)際租金是多少,用查到的數(shù)據(jù)對(duì)預(yù)測(cè)進(jìn)行檢查。輸入模型的數(shù)據(jù)越多,模型越出色,預(yù)測(cè)的結(jié)果越精準(zhǔn)。
如果是無監(jiān)督學(xué)習(xí),輸給算法訓(xùn)練的數(shù)據(jù)沒有貼標(biāo)簽。在監(jiān)督式學(xué)習(xí)中,你知道自己想在面積與月租金之間建立聯(lián)系。如果是非監(jiān)督式學(xué)習(xí),你不知道每個(gè)數(shù)值與什么有關(guān)。此時(shí)算法會(huì)在數(shù)據(jù)內(nèi)尋找關(guān)系。
讓我們舉一個(gè)例子。假設(shè)你有一個(gè)更大的數(shù)據(jù)庫(kù),不只包含平方面積和公寓租賃數(shù)據(jù),還有其它數(shù)據(jù)。比如本地房產(chǎn)的估價(jià)數(shù)據(jù)、犯罪率數(shù)據(jù)、人口統(tǒng)計(jì)數(shù)據(jù)、學(xué)校質(zhì)量數(shù)據(jù)、月租金數(shù)據(jù)、信用評(píng)估數(shù)據(jù)。所有這些因素都會(huì)影響公寓的租賃價(jià)格,不過各因素的影響到底有多大呢?很難確定。此時(shí),你可能想開發(fā)一套算法,將各因素的關(guān)系勾勒出來,將相似的結(jié)果歸成一類,讓關(guān)系突顯出來。這就是所謂的“clustering”(分類歸并),它是無監(jiān)督學(xué)習(xí)算法的一種基本類型。
上圖告訴我們同一數(shù)據(jù)集分類歸并之前和之后的形態(tài)。Clustering只是一種類型的無監(jiān)督學(xué)習(xí)算法,沒有任何一種算法是完美的,各有優(yōu)缺點(diǎn),有時(shí)算法找到的關(guān)系只是“背景噪音”,沒有價(jià)值。Netflix、亞馬遜用推薦引擎推薦產(chǎn)品和服務(wù),它用的就是這種類型的算法。
例如,如果你正在觀看《星際迷航》,Netflix怎么知道你喜歡《神盾局特工》呢?因?yàn)镹etflix拿到了觀眾的數(shù)據(jù),知道它們有關(guān)系。如果你知道《星際迷航》影迷有90%看了漫威劇集,你就知道自己應(yīng)該向他們推薦更多漫威影片。如果處理的數(shù)據(jù)點(diǎn)只有一個(gè)或者兩個(gè),要找到這種聯(lián)系似乎很簡(jiǎn)單。如果有成百上千個(gè)數(shù)據(jù)點(diǎn)呢?那就麻煩了,此時(shí)機(jī)器學(xué)習(xí)能發(fā)揮作用。
面部識(shí)別是深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、AI的主要研究領(lǐng)域之一。正因如此,蘋果才會(huì)說它的神經(jīng)引擎用在Face ID上,或者說它是它是專門用來執(zhí)行特定算法的。Animojis到底有什么作用?現(xiàn)在還不太清楚,讓我們先放在一邊不去理會(huì)。
蘋果曾說過,F(xiàn)ace ID不只使用了傳統(tǒng)攝像頭。按照蘋果的描述,新技術(shù)用3萬個(gè)紅外光點(diǎn)給面部繪圖,這些圖像存儲(chǔ)起來,當(dāng)你解鎖設(shè)備,系統(tǒng)會(huì)將存儲(chǔ)的圖像與它看到的臉部圖像對(duì)比。整個(gè)過程有大量數(shù)據(jù)需要處理,而且還不能消耗太多的電能。
為什么開發(fā)特殊硬件
有許多公司也在研究如何將AI、深度學(xué)習(xí)、機(jī)器學(xué)習(xí)技術(shù)應(yīng)用于硬件。谷歌開發(fā)了Tensorflow、英特爾開發(fā)了MIC、Nvidia開發(fā)Volta、富士通也在搭建自己的解決方案,甚至連AMD都想將深度學(xué)習(xí)技術(shù)放進(jìn)Radeon Instinct產(chǎn)品。這些硬件解決方案到底有何區(qū)別,我沒法一一介紹。深度學(xué)習(xí)的推斷方式、訓(xùn)練深度學(xué)習(xí)的模型是不同的,這些平臺(tái)的能力也不一樣,它們無法裝進(jìn)相同的硬件,解決相同的問題。
并不是說它們沒有相似的地方。大體來說,這些技術(shù)瞄準(zhǔn)的都是硬件的特定功能,目標(biāo)是縮短計(jì)算時(shí)間,降低計(jì)算能耗。與Nvidia Volta和AMD Radeon Instinct對(duì)比,蘋果A11 Bionic的TDP(熱設(shè)計(jì)功耗)肯定不同,降低每次運(yùn)行的能耗至關(guān)重要。下面的圖表告訴我們執(zhí)行特定運(yùn)算需要消耗多少電能。AMD與Nvidia積極倡導(dǎo)16位運(yùn)算,為什么?看看下圖就知道了,左邊“Operation”一欄指的是執(zhí)行的運(yùn)算,“Energy”指的是能耗,“Relative Energy Cost”說的是執(zhí)行運(yùn)算需要的能耗;“Area”代表面積,“Relative Area Cost”指出執(zhí)行相應(yīng)運(yùn)算硬件需要多少面積。
要提高機(jī)器學(xué)習(xí)的運(yùn)算性能與效率,將數(shù)據(jù)存放在本地也很關(guān)鍵。總線中傳輸?shù)臄?shù)據(jù)越少,能耗越低。為了構(gòu)建一個(gè)“低能耗網(wǎng)絡(luò)”,企業(yè)們花了很多精力研究。蘋果之所以想為設(shè)備引進(jìn)AI與機(jī)器學(xué)習(xí)技術(shù)也是出于這個(gè)原因,因?yàn)殡娔苡邢?,提高效率至關(guān)重要,它還可以為AI、HPC留下發(fā)展空間。如果能夠構(gòu)建低能耗網(wǎng)絡(luò),未來可以輕松將CPU放進(jìn)更大的設(shè)備,或者提高CPU的運(yùn)行速度,但是不會(huì)產(chǎn)生更多的熱量。
要提高機(jī)器學(xué)習(xí)的運(yùn)算性能與效率,將數(shù)據(jù)存放在本地也很關(guān)鍵??偩€中傳輸?shù)臄?shù)據(jù)越少,能耗越低。目前我們看到的架構(gòu)全都是高度并行的架構(gòu),它們同步計(jì)算大型數(shù)據(jù)集,目標(biāo)不是提高頻率、減少線程。
為什么現(xiàn)在推出?
在過去幾年里,許多企業(yè)開始研究深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、AI。當(dāng)中一些用來執(zhí)行特殊任務(wù),比如讓無人駕駛汽車行駛。為什么會(huì)出現(xiàn)這樣的熱潮呢?之前硅芯片的性能提升很快,2004年之后形勢(shì)變了,之后很長(zhǎng)一段時(shí)間增長(zhǎng)變慢。從2004年到2011年,企業(yè)增加CPU內(nèi)核、改進(jìn)架構(gòu),進(jìn)步的速度還算可以。但是到了2011年之后,高端CPU的單線程速度止步不前,前進(jìn)速度像烏龜一樣。AMD Ryzen做得不錯(cuò),它在消費(fèi)市場(chǎng)恢復(fù)了一點(diǎn)生機(jī),但在純粹的單線程性能上AMD還沒有打敗英特爾。
如何讓芯片繼續(xù)前進(jìn)呢?有三種趨勢(shì)越來越明顯。
首先,要提高計(jì)算性能,只能開發(fā)新的軟件模型,用新的特殊內(nèi)核運(yùn)行軟件模型。曾幾何時(shí)通用CPU飛速進(jìn)步,如果這種進(jìn)步無法重現(xiàn),也許特殊、執(zhí)行特定任務(wù)的內(nèi)核可以讓性能快速提升。
其次,晶體管密度繼續(xù)提高,能耗繼續(xù)降低,芯片可以收集更多數(shù)據(jù),以更快的速度處理數(shù)據(jù),之前我們做不到,因?yàn)槭艿侥芎牡闹萍s,也沒有可以處理的硬件。
再次,消費(fèi)PC相當(dāng)于處理“中心”,但是云數(shù)據(jù)中心對(duì)數(shù)據(jù)集中處理,正因如此,微軟、谷歌等企業(yè)才會(huì)想著開發(fā)特殊硬件,執(zhí)行特定處理任務(wù)。英特爾不會(huì)開發(fā)一款特殊CPU,為搜索引擎的后端處理做優(yōu)化,制造這樣的芯片沒有市場(chǎng)。微軟不同,早在2015年,它就用FPGAs技術(shù)提高必應(yīng)的性能。
蘋果所走的道路與數(shù)據(jù)中心所走的路沒有什么不同,不過走這條路的不只有蘋果。高通之前也曾說過,驍龍835是一個(gè)平臺(tái),里面有許多計(jì)算功能開發(fā)者可以拿去用。未來蘋果會(huì)如何強(qiáng)化該技術(shù),我們拭目以待。雖然蘋果已經(jīng)遠(yuǎn)離外設(shè)業(yè)務(wù),不代表它未來某一天不會(huì)回來,它可能會(huì)推出高頻版A11 Bionic,裝進(jìn)附件,手機(jī)對(duì)TDP有要求,對(duì)外形有要求,附件不會(huì)有這樣的要求。