0
本文作者: 谷磊 | 2017-06-07 16:51 |
近日,周志華教授開源了其在深度學(xué)習(xí)領(lǐng)域研究的新型算法——gcForest。他在論文中提到,不同于DNN的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它是一種基于決策樹集成的方法。同時相比DNN,gcForest的訓(xùn)練過程效率高且可擴(kuò)展,在僅有小規(guī)模訓(xùn)練數(shù)據(jù)的情況下也照常運(yùn)轉(zhuǎn)。不僅如此,作為一種基于決策樹的方法,gcForest 在理論分析方面也應(yīng)當(dāng)比深度神經(jīng)網(wǎng)絡(luò)更加容易。
除此之外,周志華在論文最后特別提到,對于他的新方法,英特爾的KNL可能提供了像GPU之于DNN那樣的潛在加速。
究竟是什么原因產(chǎn)生了這樣的結(jié)果?帶著這個疑問,雷鋒網(wǎng)采訪了英特爾中國研究院院長宋繼強(qiáng),以期為廣大讀者深入剖析KNL在gcForest算法方面的計算優(yōu)勢。
宋繼強(qiáng)告訴雷鋒網(wǎng),樂見類似gcForest這樣的新算法思路出現(xiàn),因為這種多樣性對于推動AI技術(shù)的發(fā)展大有裨益。對于人工智能算法的硬件加速,宋繼強(qiáng)表示,并不存在一個通用的方案可以包打天下。對于不同的應(yīng)用場景,應(yīng)該選擇不同的硬件平臺。他從技術(shù)的角度系統(tǒng)地闡釋了KNL和GPU之間各自適用的范圍,并不諱言GPU在深度神經(jīng)網(wǎng)絡(luò)方面的計算能力,而是從辯證的角度說明了KNL相對GPU在gcForest甚至是DNN計算上的優(yōu)勢所在。
他還剖析了英特爾在人工智能芯片領(lǐng)域的包括KN系列、Lake Crest、FPGA在內(nèi)的三條重要的產(chǎn)品線的定位,并給出了相應(yīng)的選擇建議,對于甚囂塵上的AI芯片架構(gòu)之爭是個很好的回應(yīng)。
同時,采訪中還涉及到了英特爾中國研究院下半年在AI方面的計劃,研究院和剛成立不久的AIPG之間的定位關(guān)系,以及與周志華團(tuán)隊的合作情況等話題。
宋繼強(qiáng)
宋繼強(qiáng)博士現(xiàn)任英特爾中國研究院院長。他的研究興趣包括智能機(jī)器人與外界的交互技術(shù),多種形態(tài)的智能設(shè)備創(chuàng)新,移動多媒體計算,移動平臺的性能優(yōu)化,新型人機(jī)界面,并為新的應(yīng)用使用模式創(chuàng)建軟件和硬件環(huán)境。
宋博士于2008年加入英特爾中國研究院,時任清華大學(xué)-英特爾先進(jìn)移動計算中心應(yīng)用研發(fā)總監(jiān),是創(chuàng)造英特爾Edison產(chǎn)品原型的核心成員。在Edison成功產(chǎn)品化之后,他推動開發(fā)了基于Edison的智能設(shè)備開發(fā)套件來促進(jìn)Edison技術(shù)在創(chuàng)客社區(qū)的普及,并發(fā)明了稱為交互式瓷器的新的設(shè)備類別。目前他致力于研發(fā)基于英特爾技術(shù)的智能服務(wù)機(jī)器人平臺。
從2001年至2008年,他歷任香港中文大學(xué)博士后研究員、香港應(yīng)用科技研究院(ASTRI)首席工程師、北京簡約納電子有限公司多媒體研發(fā)總監(jiān)等職。2003年,他研發(fā)的算法獲得IAPR GREC 國際圓弧識別算法競賽一等獎。2006年,他參加的計算機(jī)讀圖技術(shù)研究榮“獲教育部高等學(xué)校科學(xué)技術(shù)二等獎” (第二完成人)。他是IEEE和CCF高級會員,在IEEE TPAMI、IEEE TCSVT、Pattern Recognition、CVPR、ICPR等國際期刊與會議上發(fā)表學(xué)術(shù)論文40余篇。
宋繼強(qiáng)于2001年獲得南京大學(xué)計算機(jī)專業(yè)博士學(xué)位,博士論文被評為全國優(yōu)秀博士論文。
以下是宋繼強(qiáng)院長接受采訪實錄,雷鋒網(wǎng)做了不改變原意的整理:
雷鋒網(wǎng):如何看待深度森林(gcForest)和深度神經(jīng)網(wǎng)絡(luò)(DNN)?
宋繼強(qiáng):gcForest現(xiàn)在還處在剛剛開始的階段,就像2006年的深度神經(jīng)網(wǎng)絡(luò)一樣?,F(xiàn)在周老師把gcForest開源給整個學(xué)術(shù)界、工業(yè)界,這是非常好的事情。目前來看它相對于DNN的優(yōu)勢體現(xiàn)在兩方面,一方面在于可解釋性,一方面在于適用的領(lǐng)域。
神經(jīng)網(wǎng)絡(luò)目前來看還是一個黑箱,里面有很多超參數(shù),初始的設(shè)置包括后來調(diào)優(yōu)的過程,人們不好去琢磨它的理論基礎(chǔ)。雖然現(xiàn)在也有一個研究熱點,就是做神經(jīng)網(wǎng)絡(luò)的可解釋性,但這還是在剛剛起步階段。
如果把它換成其他一些中間學(xué)習(xí)的部件,比如像gcForest這種基于決策樹做的一系列工作,最大的好處就是,從特征過來的時候,會在每一個分支下做判斷。比如這個特征要大于某一個值的時候向左分支,小于某一個值的時候向右分支,所以天然就有一些規(guī)則在那兒。它的參數(shù)空間就會小很多,訓(xùn)練出來以后可以去分析和解釋。這也是為什么目前在著名的Kaggle數(shù)據(jù)科學(xué)比賽平臺上,多數(shù)獲勝者的模型還是基于決策樹擴(kuò)展和集成(比如XGBoost)做出來的。
如果這件事情能從理論上解釋得通,我們對這個模型就有充分的信心了。機(jī)器學(xué)習(xí)真正出來一個結(jié)果后,我可以把它變成知識,而不只是停留在模型的層面。因為從讓機(jī)器去學(xué),到最后變成人可以認(rèn)可的理論和知識,這是一個完整的過程。
其實周老師在他論文的開始也提到了一個問題,在深度學(xué)習(xí)的領(lǐng)域,大家比較認(rèn)可的是,做表示學(xué)習(xí)的時候,模型如果深、層級多,就可以更好的去表示這樣的問題。為了達(dá)到這樣的結(jié)果,就需要模型的容量夠大,但是不是一定要采用神經(jīng)網(wǎng)絡(luò)去訓(xùn)練?這個是可以商榷的。
我認(rèn)為不是所有的情況下神經(jīng)網(wǎng)絡(luò)都是最優(yōu)的訓(xùn)練學(xué)習(xí)模型,因為有時候用它反而把事情復(fù)雜化了。
?? 英特爾對AI領(lǐng)域的分類
另一方面,深度神經(jīng)網(wǎng)絡(luò)雖然非常適合語音和圖像的識別,但AI領(lǐng)域其實不只包含這些,還包括理解,推理并做相應(yīng)的決策。整個過程都構(gòu)造好了,那才是讓人工智能完全可以完成任務(wù)。
現(xiàn)在深度神經(jīng)網(wǎng)絡(luò)幫助我們解讀了視覺信息,因為視覺信息是一幀一幀的圖象,還有很好的空間關(guān)系。我們本身看見的東西都是像素點構(gòu)成的,中間是有空間的關(guān)系。而用卷積這種方式提取特征,是很適合去提取空間關(guān)系的,并且構(gòu)造了多個維度、不同方向上的,多個分辨率的提取特征的方式,最后放到巨大的多層網(wǎng)絡(luò)里去找它相應(yīng)的關(guān)聯(lián)。
到下面一個層級,時間軸發(fā)生變化。比如這里是一個人,那里是一張桌子,那邊是一把椅子,隨著時間的推移,人在動,桌子上可能多了一個東西,所以要繼續(xù)理解這個場景的時候,未必能完全依靠現(xiàn)在的神經(jīng)網(wǎng)絡(luò)的方式去提取特征,這時候就需要依靠別的。
gcForest論文里面用的幾個測試集就很有意思,幾個測試集在圖象層級上的處理,其實跟深度神經(jīng)網(wǎng)絡(luò)差不多,稍微能打平,甚至是數(shù)據(jù)集大的時候,深度神經(jīng)網(wǎng)絡(luò)還是會比它好。
但是在涉及到時間維度上,有連續(xù)性的東西,或者是要把情感從雜亂無章的文本里抽取出來的時候,這種空間關(guān)系不是那么好的數(shù)據(jù),發(fā)現(xiàn)它的提升還是蠻大的。比如說一個簡單的識別,這里面有一個叫hand moment recognition,通過機(jī)電信號去識別手勢,比別的方法提高了大概接近百分之百。這是非常有說服力的,也就說明它在處理這些連續(xù)有規(guī)則信號方面(因為這個手勢是具有一定規(guī)則的),非常的簡潔高效。
總之,在進(jìn)一步去探索AI的技術(shù)的方向上,第一,基于決策樹的模型更具有可解釋性;第二,深度森林可以幫我們?nèi)ダ斫夂芏嘣跁r序上和空間上都有規(guī)則的事情。
所以我覺得這是一個新的思路。從英特爾層面來講,是歡迎有這種新的思路存在,因為這樣的話才能真正體現(xiàn)出多樣性。
雷鋒網(wǎng):能從解讀產(chǎn)品的角度來談?wù)劄槭裁丛谶\(yùn)行g(shù)cForest方面,KNL相比GPU會有優(yōu)勢嗎?KNL和GPU甚至是TPU的區(qū)別和聯(lián)系表現(xiàn)在哪里?對于AI芯片的架構(gòu)爭論,您怎么看?
宋繼強(qiáng):實際上我們應(yīng)該把這個問題放在不同的應(yīng)用領(lǐng)域來看。在AI芯片這個領(lǐng)域,凡是有人說有一個通用的方案的,其實都是不對的,英特爾從來不會說我們有一個東西能包打天下。
所以英特爾在端層面,有Movidius;在Edge層面我們用像FPGA這樣的方案;在云端我們有KNL、Lake Crest這些。
對于不同的應(yīng)用,我們要給用戶最適合的解決方案,這種方案里同時考慮數(shù)據(jù)的加速,帶寬的處理,甚至考慮到通訊怎么處理,在前端要考慮功耗怎么樣等等。
具體的拿gcForest來說,它的特點是里面有很多不同的樹,每棵樹本身的訓(xùn)練是可以分開做的,所以本身就有很大的模型的并行度。KNL和GPU都可以用,但是KNL的好處是它本身就有72個核,每個核上還可以出4個Hyper tread,等于本身就可以提供288個線程,是理想的模型級并行的加速器。
?? KNL的硬件架構(gòu)圖
同時對于樹的處理來講,中間本身有很多條件判斷跳轉(zhuǎn)。在原來X86的架構(gòu)上這反而是非常容易的,因為X86是基于指令運(yùn)算去做加速的,單指令多數(shù)據(jù)流和單指令單數(shù)據(jù)都是它處理的強(qiáng)項。
而GPU里面對于處理這種跳轉(zhuǎn)多的情況實際上會導(dǎo)致很大資源的浪費(fèi),因為它大部分是在做多指令多數(shù)據(jù)流同時的并行處理,要把很多數(shù)據(jù)準(zhǔn)備好了打包,成形后一并做處理運(yùn)算。
這時如果中間有很多的Branch,Branch的意思是指令可能要跳轉(zhuǎn)到另一個地方去執(zhí)行,數(shù)據(jù)級的并行度就被打破了,打破之后會導(dǎo)致很多問題,有可能數(shù)據(jù)在另外一個內(nèi)存的地方,要重新拿過來。對于這種處理,KNL就有天然的優(yōu)勢。
所以周老師在他第二版論文中最后一頁專門提出:
GPU對于DNN是合適的加速器;
但是如果考慮到像決策樹這種情況,KNL作為加速器才更加適合。
我們對比的時候就會看到,在不同數(shù)據(jù)處理的模式下,應(yīng)該選擇不同的加速模式。
KNL可以很好地分配內(nèi)存和高速內(nèi)存里的數(shù)據(jù),因為新的KNL允許用戶去配置高速內(nèi)存的使用方式,它對算法怎么樣使用數(shù)據(jù)是有比較好的靈活度的。
同時用上OPA這種新的數(shù)據(jù)互聯(lián)加速,打破原來去訪問內(nèi)存和多節(jié)點互聯(lián)的瓶頸。因為我們知道,GPU擴(kuò)大到多GPU節(jié)點的時候,會有一個IO上限,到了上限,再增加GPU,訓(xùn)練的性能得不到太多提升。因為IO已經(jīng)成為瓶頸了。但是如果說用KNL的方式,就可以突破這種瓶頸,增加到甚至上千個節(jié)點,仍然保持接近線性的增加。同時包含一些比如IO存儲方面新的技術(shù),可以帶來不同種類的伸縮性能。
對于TPU,它跟英特爾的AI路線圖里面的Lake Crest是同一個級別的東西,都是屬于專門為深度神經(jīng)網(wǎng)絡(luò)定制的加速器,定制的程度是非常高的,如果換成深度森林,就未必能很快的適應(yīng)。
所以我們講的話,不會直接講KNL比GPU好,或者是GPU比KNL好,要放在到底是加速什么樣的應(yīng)用下。
雷鋒網(wǎng):那是否能說對于深度神經(jīng)網(wǎng)絡(luò)的加速,GPU比KNL更適合?
宋繼強(qiáng):不是說KNL不能加速深度神經(jīng)網(wǎng)絡(luò),我們曾經(jīng)試過,去年在AI Day的時候也發(fā)布過這樣的數(shù)據(jù),就是當(dāng)時把一個Caffe的代碼放在KNL上的時候,得到一個初級的性能。后來經(jīng)過我們軟件部門做了軟件的并行優(yōu)化之后,它在KNL上提升了400倍的性能。
可見做不做軟件層級的優(yōu)化差別是很大的,對于深度神經(jīng)網(wǎng)絡(luò)我們也可以提高很多倍的優(yōu)化性能。同時再配合上硬件的性能不斷提升,因為KNL比KNC已經(jīng)提高了3倍,今年下半年會出來的KNM,比KNL硬件本身能力又提高4倍。所以對于使用KN系列的算法研究者來講,他們是可以享受到這個紅利的。
一方面使用軟件優(yōu)化,另一方面可以享受到KN系列的硬件逐年性能提升帶來的紅利。
對于深度學(xué)習(xí)這個領(lǐng)域來講,如果模型容量很大的話,肯定是需要利用到像KNL、KNM這種級別的加速的。GPU是一個協(xié)處理器,模型和數(shù)據(jù)一般放在顯存中?,F(xiàn)在顯卡最新的一般是16G,最大的可能有24G,但很難買得到. 有一些場合需要特別大的模型,可能就放不進(jìn)顯存去,這時候就有很大的問題。但是對于KNL來說,可能會是比較好一點的方式。
至于它中間部件到底采用GPU還是KNL比較好?其實要看情況分析。比如說周老師這邊講到,他覺得可能做前面特征的掃描放在GPU上也很好,因為那一塊有很多的數(shù)據(jù)操作,比如說塊操作,可以把它整合。
回過頭來想,我們的KNL上,其實每一個Core上也提供了兩個512位寬的叫做矢量加速器(AVX-512)。這個矢量加速器如果用好的話,對于處理這種塊并行的操作也是很有效的。其實如果說使用得當(dāng)?shù)脑?,在KNL上去做矢量的加速計算,我們稱為SIMD的計算,和這種需要去做很多分支處理的計算,都可以并行很好的話,這個性能還是非常值得期待的。從原來沒有優(yōu)化過的性能到后來提升到千倍以上是可以達(dá)到的。
雷鋒網(wǎng):關(guān)于Lake Crest和KNL,在產(chǎn)品定位方面是一個怎樣的關(guān)系?能不能這樣說,Lake Crest是英特爾對于英偉達(dá)的GPU推出的競爭產(chǎn)品?而KNL是基于可以和CPU更好的配合關(guān)系,所以更適用于決策樹模型算法的一個硬件。
宋繼強(qiáng):這樣說還不太準(zhǔn)確。
Lake Crest是專門針對深度神經(jīng)網(wǎng)絡(luò)深度定制的產(chǎn)品,目的是為了得到更快的加速比。它的定制需要綜合DNN所需要的計算和帶寬的需求,還有擴(kuò)展節(jié)點數(shù)量等因素。因為Lake Crest里面也有很多計算節(jié)點,每個Lake Crest芯片可以和另外12個芯片互聯(lián),形成超網(wǎng)格,而且互聯(lián)帶寬是非常高的。所以在深度學(xué)習(xí)大規(guī)模模型訓(xùn)練的方面,速度會非常強(qiáng)悍。
舉個例子,假如是對海量的視頻做處理,這個時候不停的會有新的問題進(jìn)來,就需要反復(fù)地訓(xùn)練模型。而且數(shù)據(jù)量會比以前大的很多,因為像“平安城市”這樣的場景,會布置大量的攝像頭,這些數(shù)據(jù)重新訓(xùn)練回來以后會比以前有大幅度的提升,所以一定要需要在云端有這樣的能力去做快速的訓(xùn)練,更新模型下發(fā)到前端。
以后除了在云端的攝像頭數(shù)據(jù),無人車每天產(chǎn)生的數(shù)據(jù),里面也會產(chǎn)生很多的特殊情況,是現(xiàn)在解決不了的。比如不同國家的行人、不同國家地面上面的物體其實都不太一樣,必須反復(fù)訓(xùn)練,而且這個數(shù)據(jù)量也非常大。
我們不認(rèn)為現(xiàn)在的GPU方案就是一個終點了,一定需要更快、更節(jié)省能源的方式。目前TPU和Lake Crest全部是ASIC解決方案,它是性能功耗比最優(yōu)的方案,因為是深度定制。所以如果是想解決最終的那種海量的數(shù)據(jù),并且對數(shù)據(jù)中心來講保持低的運(yùn)營成本,也就是說用電量比較少,ASIC一定是最終的方案,而且它的擴(kuò)展性會很好。
如果說未來有新的算法可以處理更多的其他應(yīng)用,比如說gcForest是其中一個例子,對于這些新的方法,TPU、Lake Crest都未必是最好的加速器。這時我們可以用KNL、KNM。
而對于NVIDIA來說,實際上GPGPU也是可以去支持不同領(lǐng)域的東西,只不過是相比其他領(lǐng)域,它對深度神經(jīng)網(wǎng)絡(luò)可以提供最高的加速比。
類似GPU一樣,也需要有人在上面做專門的優(yōu)化。其實CUDA這個項目,NVIDIA已經(jīng)運(yùn)作了十年,最后才找出了深度學(xué)習(xí)這一個killer APP。如果有新的Killer APP出來未必在CUDA平臺上是最優(yōu)的。為了應(yīng)對未來不可知的新的Killer App,可以說FPGA和KNL都是很好的方案。
所以我覺得應(yīng)該這樣去劃分,才能夠比較完整地解釋英特爾在AI芯片這個領(lǐng)域所做的重要布局。
對于現(xiàn)在已知的Killer App,就是用深度神經(jīng)網(wǎng)絡(luò)去做類似視覺方面處理的時候,Lake Crest是一個當(dāng)然之選。
如果是為了應(yīng)對還不太知道的Killer APP或者是已知道的很多生命科學(xué)、金融方面的分析,或者是其他的天氣氣象原本就是高性能計算的應(yīng)用,KNL本身就是在做這個事情,而且它會繼續(xù)去支持這些需要靈活調(diào)優(yōu)但還沒有到做ASIC這個程度的應(yīng)用,都是可以用KNL去做的。
如果用戶已經(jīng)對硬件加速有所了解,但還不是很確定的時候,可以用FPGA去試。FPGA是比ASIC更快的可以去做硬件級別實驗的一個平臺。
雷鋒網(wǎng):KNL有一個上一代的產(chǎn)品KNC,相比之下,KNL有哪些升級?
宋繼強(qiáng):這個升級還是蠻大的。我來講幾個關(guān)鍵的點。
第一,整體性能提升了2.5倍到3倍的級別,每個單核芯的性能也提升了接近3倍。KNL最多可以到72個核心,就計算能力來說,KNL處理器的雙精度浮點為3TFlops左右,單精度浮點可以到6TFlops左右。
比起原來的KNC,現(xiàn)在KNL采用了新的二維的網(wǎng)格架構(gòu)。它可以允許指令亂序執(zhí)行,這時處理器執(zhí)行指令的時候就能夠更好的去填掉比如說Cache miss、Branch等造成的空檔,可以更好的提高指令處理的并行度。
現(xiàn)在的KNL把矢量加速單元AVX擴(kuò)展到512個Bite寬,可以同時處理64個字節(jié)一起做矢量運(yùn)算。同時它在內(nèi)存這一塊也有一個改進(jìn),增加了高速內(nèi)存,高速內(nèi)存是多通道的內(nèi)存。這里面集成了16GB,用戶可以把它配置成是Cache,也可以把它配置成自己去管理的內(nèi)存。比如說用戶要放一些經(jīng)常要被處理器Core存取的數(shù)據(jù),不想讓它通過Cache的方式自動映射。因為Cache會產(chǎn)生Cache miss,把它變成自己管理,由用戶來負(fù)責(zé)它的數(shù)據(jù)的加載和重新存取。
這個速度帶寬就高達(dá)500G字節(jié)/秒,是原來DDR4的4-5倍,這都是大幅的提高。而且現(xiàn)在在KNL里面第一次集成了Omni-Path,就是高速的網(wǎng)絡(luò)互聯(lián)。KNC的定位為一個協(xié)處理器,它一定要有一個Host來跟它配合。這個Host可以是至強(qiáng),也可以是Core系列的處理器。
KNL分為兩種:
一種可以繼續(xù)作為協(xié)處理器;
另一種是單獨的處理器,不需要一個Host,這也是它的新的特性。
這些相比來講,會更加方便用戶。而且我們提供不同等級的KNL的SKU(銷售型號),在價格上有不同的選擇,相應(yīng)來說它會有一些偏重于計算,有一些偏重于數(shù)據(jù)的I/O等。
同時,從去年開始我們在美國已經(jīng)實驗的,在云端給用戶提供一個Educational Cluster的平臺。因為對于在校學(xué)生,多節(jié)點的KNL還是蠻貴的,但是有了這個云平臺,用戶可以在那里提交自己的任務(wù)去做實驗。
今年我們希望把云端這塊的實驗平臺在中國部署開放起來。屆時希望有兩種方式去支持大家做這種計算加速,還有節(jié)點擴(kuò)展加速的實驗,用不同的算法和不同的應(yīng)用去做相應(yīng)的實驗。這樣的話,我覺得可以推動更多的人去試更多的硬件。英特爾在軟件方面去提供的工具支持也會越來越多。
我覺得KNL還是非常有潛力的硬件加速產(chǎn)品,它對于很多模型本身就有并行度,而且數(shù)據(jù)之間也有一定的并行度,并且中間還要有一些決策的時候特別有幫助。
雷鋒網(wǎng):很多深度學(xué)習(xí)的用戶都表示,比起芯片底層的硬件架構(gòu),他們更加關(guān)注軟硬件在一起的生態(tài),對此,英特爾是如何做的?
宋繼強(qiáng):在軟件生態(tài)方面,英特爾支持AI應(yīng)用的通用軟件堆棧(雷鋒網(wǎng)按:如下圖所示),中間三層用來屏蔽底層硬件的實現(xiàn)差異、支持流行開源框架和與加速應(yīng)用方案的工具。
?? 英特爾提供的AI解決方案
具體來說,英特爾準(zhǔn)備在軟件層提供比較一致的軟件接口。
如果是已經(jīng)在使用開源框架的用戶,比如現(xiàn)在流行的TensorFlow、MXNet、Caffe,英特爾的策略是我們有一個對它們的統(tǒng)一接口,開發(fā)者可以用他們熟悉的開源的框架去訓(xùn)練模型。
同時底下我們會對接上英特爾的中間層,中間層可以把它映射成我們英特爾的MKL的加速和我們稱為擴(kuò)展性加速的庫。擴(kuò)展性加速是干什么的呢?因為MKL是加速數(shù)學(xué)運(yùn)算的,比如說張量運(yùn)算。但是如果要把它擴(kuò)展到多個節(jié)點上,比如說擴(kuò)展到72個核,甚至擴(kuò)展到1000個核上的時候,這時候就需要用擴(kuò)展加速,它去幫用戶解決互聯(lián)之間的數(shù)據(jù)傳輸和控制的傳輸?shù)囊恍┘铀?,而不用用戶去管它?/p>
這時雖然用戶使用的是開源框架,但是他可以很容易的使用到底下的硬件加速能力,用KNL也好,用Lake Crest也好,會映射到不同的硬件上去。
如果是新的學(xué)習(xí)者,他可以有兩個選擇,一個選擇使用開源的框架,一個是選擇使用英特爾提供的基于Neon的框架,它是Nervana原來還是獨立公司前的框架,也是排在前十的?,F(xiàn)在他們還繼續(xù)基于這個框架在做一些事情。
如果說用戶選擇這個框架的話,會直接能夠利用到底下很多的加速。同時Nervana還在做一個事情,當(dāng)然它現(xiàn)在是英特爾的AIPG。他們在做一個叫nGraph的軟件層次工具,也就是說用戶的程序里其實有很多可并行的地方,但是由于算法其實很復(fù)雜,要用戶自己去分析的話,未必能把它拆分得很好。
而這個nGraph工具就是來抽取里面可并行的部分,把它分到不同的硬件的加速單元上去。比如說分到不同的Lake Crest,里面有好多個加速的矢量計算單元。怎么分配?它來做優(yōu)化,有一點像我們傳統(tǒng)的在高性能計算的時候,英特爾的Parallel Studio里面有Thread Building Block,就等于幫你自動去把程序里面的可以并行的線程給你提取出來,放在不同的核上去。
對于初學(xué)者來講,他可以不用自己去搞定所有的軟件堆棧的每一層怎么去優(yōu)化,他可以先去使用開源的工具也好,使用我們英特爾提供的工具也好,把他的算法、模型先訓(xùn)練好,然后通過我們中間提供的這些工具鏈映射到不同的層級。
這是我們現(xiàn)在走的戰(zhàn)略,軟硬件結(jié)合去做。
雷鋒網(wǎng):除了深度森林和DNN以外,KNL還適合哪些應(yīng)用和算法?
宋繼強(qiáng):KNL在Life Science里面也有很多的應(yīng)用,比如像基因測序,精準(zhǔn)醫(yī)療。在一些零售的領(lǐng)域同時處理很多個不同用戶的一些請求,做一些相關(guān)的安全驗證等,都是可以的。其實應(yīng)用的領(lǐng)域非常適合讓多個核同時去做,因為它們本身就是需要去分割這些任務(wù)去處理。而且在處理的過程中并不都是圖像的塊與塊之間比對,生成很多完整的塊的vector然后再去逐步往后走的,還需要很多靈活性的程序在運(yùn)行。
雷鋒網(wǎng):能否詳細(xì)說說英特爾和周志華團(tuán)隊的合作?
宋繼強(qiáng):周老師是國內(nèi)人工智能領(lǐng)域的杰出學(xué)者,領(lǐng)軍人物。所以英特爾的產(chǎn)品部門、學(xué)術(shù)研究部門也都一直在關(guān)注。我們現(xiàn)在形成的是戰(zhàn)略合作關(guān)系,這個框架會包含幾方面內(nèi)容:
第一方面,學(xué)術(shù)界擅長于去定義算法和新的理論,但是如果要把性能直接提升到產(chǎn)業(yè)的標(biāo)桿級別,這還是有一定的困難。不同AI的應(yīng)用,需要不同種類的軟硬件加速方案去做。
而產(chǎn)業(yè)界有很強(qiáng)的工程化資源和計算能力,比如英特爾可以提供一些新的軟硬件,給學(xué)術(shù)界去做相應(yīng)的學(xué)術(shù)算法的驗證,我們的技術(shù)團(tuán)隊還可以配合他們做性能的優(yōu)化。這樣可以達(dá)到強(qiáng)強(qiáng)聯(lián)合,把新理論真正推動到市場應(yīng)用的級別。
另一方面,英特爾在AI這個領(lǐng)域想做三件事:
第一件事是Fuel AI,賦能AI。讓它不只局限于現(xiàn)在大家看到的幾個領(lǐng)域,讓它能夠更廣泛的應(yīng)用在各種新的行業(yè)里,這是增強(qiáng)AI的能力。
第二件事是Democratize AI,民主化。讓AI更多的為一般的工程開發(fā)人員所用。我們覺得像周老師這種開源是非常好的,開源以后有很多的學(xué)生、團(tuán)隊、老師可以去試用,試用以后用上英特爾這樣商業(yè)化的平臺。比如他們現(xiàn)在是在不同的PC上做,這樣的成本就相對來說低很多。如果愿意使用英特爾的KNL去做實驗的話,我們在國內(nèi)也會去發(fā)布基于云或者是基于實際計算設(shè)備的計劃,來輔助學(xué)術(shù)界去用KNL做實驗,把成本降低下來。
第三個事就是英特爾保證AI做正確的事,引導(dǎo)AI去做非常有益于社會的事情。
現(xiàn)在我們主要是關(guān)注前兩塊。
在業(yè)界,英特爾是具有領(lǐng)導(dǎo)力的公司。在學(xué)術(shù)界,周老師團(tuán)隊是具有號召力、影響力的學(xué)術(shù)團(tuán)隊。我們聯(lián)合起來,會把AI的生態(tài)環(huán)境推動的更好,這就是現(xiàn)在合作的情況。
雷鋒網(wǎng):今年英特爾成立了AIPG,在公司的層面上,研究院在推進(jìn)AI方面,和他們有什么樣的協(xié)作和分工?
宋繼強(qiáng):AIPG是個產(chǎn)品部門,它是英特爾對外提供人工智能所驅(qū)動的產(chǎn)品領(lǐng)域的直接對外出口。這個出口實際上會整合英特爾內(nèi)部軟件、硬件的甚至算法的很多的技術(shù)資源,把它形成解決方案往外推。
研究院相對來說是對內(nèi)的,不直接對外提供產(chǎn)品。我們所做的一些AI方面的研究可能會更前瞻,也更有一些變數(shù),我們會去看外邊學(xué)術(shù)界會發(fā)生什么,并相應(yīng)的做一些學(xué)術(shù)方面的研究。
除了跟隨外部的研究熱點外,甚至我們會找一些新的熱點做。我們在一些相應(yīng)的CV(計算機(jī)視覺)的比賽,比如情感識別,我們都能拿到世界冠軍。這些技術(shù)是在研究院里面去做的,達(dá)到一定程度,對產(chǎn)品部門的某些產(chǎn)品可以產(chǎn)生直接應(yīng)用的時候,產(chǎn)品部門就會把這些技術(shù)轉(zhuǎn)化到他們的產(chǎn)品里面去。
我覺得研究院和AIPG是一個很好的合作關(guān)系,大家在時間線上是不重疊的,并且是一個技術(shù)研究和輸出的關(guān)系。
雷鋒網(wǎng):下半年研究院有沒有什么新的打算?尤其是在AI方面。
宋繼強(qiáng):主要會在深度學(xué)習(xí)訓(xùn)練這塊,包括和美國的研究院一起,看如何去提升深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,并且把這個網(wǎng)絡(luò)壓縮。然后在新的硬件,就是KNL,Knight Mills、Knight Landing這些上面做一些新的實驗,這是一種,可能會用到更多的節(jié)點去做訓(xùn)練。
另外,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練好了以后,我們會做相應(yīng)的裁減,裁減以后往Lake Crest,F(xiàn)PGA, Movidius這樣的硬件上去落地。這樣的話,能把AI做深度學(xué)習(xí)的能力放到更小型設(shè)備上去。
所以這是兩個方向:在云端要做更大規(guī)模的訓(xùn)練,同時把訓(xùn)練時間縮短;最后訓(xùn)練的模型爭取能夠把它變小。
(完)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。