新聞中心

EEPW首頁 > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 怎樣加速“深度學(xué)習(xí)”?GPU、FPGA還是專用芯片?

怎樣加速“深度學(xué)習(xí)”?GPU、FPGA還是專用芯片?

作者: 時(shí)間:2018-03-27 來源:網(wǎng)絡(luò) 收藏

  計(jì)算機(jī)發(fā)展到今天,已經(jīng)大大改變了我們的生活,我們已經(jīng)進(jìn)入了智能化的時(shí)代。但要是想實(shí)現(xiàn)影視作品中那樣充分互動(dòng)的人工智能與人機(jī)互動(dòng)系統(tǒng),就不得不提到深度學(xué)習(xí)。

本文引用地址:http://butianyuan.cn/article/201803/377456.htm

  深度學(xué)習(xí)

  深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究。含多隱層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)。深度學(xué)習(xí)通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。

  深度學(xué)習(xí)的概念由Hinton等人于2006年提出?;谏钚哦染W(wǎng)(DBN)提出非監(jiān)督貪心逐層訓(xùn)練算法,為解決深層結(jié)構(gòu)相關(guān)的優(yōu)化難題帶來希望,隨后提出多層自動(dòng)編碼器深層結(jié)構(gòu)。此外Lecun等人提出的卷積神經(jīng)網(wǎng)絡(luò)是第一個(gè)真正多層結(jié)構(gòu)學(xué)習(xí)算法,它利用空間相對關(guān)系減少參數(shù)數(shù)目以提高訓(xùn)練性能。

  深度學(xué)習(xí)是機(jī)器學(xué)習(xí)研究中的一個(gè)新的領(lǐng)域,其動(dòng)機(jī)在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),例如圖像,聲音和文本。

  同機(jī)器學(xué)習(xí)方法一樣,深度機(jī)器學(xué)習(xí)方法也有監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)之分.不同的學(xué)習(xí)框架下建立的學(xué)習(xí)模型很是不同.

  例如,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,簡稱CNNs)就是一種深度的監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型,而深度置信網(wǎng)(Deep Belief Nets,簡稱DBNs)就是一種無監(jiān)督學(xué)習(xí)下的機(jī)器學(xué)習(xí)模型。

  Artificial Intelligence,也就是人工智能,就像長生不老和星際漫游一樣,是人類最美好的夢想之一。雖然計(jì)算機(jī)技術(shù)已經(jīng)取得了長足的進(jìn)步,但是到目前為止,還沒有一臺(tái)電腦能產(chǎn)生“自我”的意識(shí)。是的,在人類和大量現(xiàn)成數(shù)據(jù)的幫助下,電腦可以表現(xiàn)的十分強(qiáng)大,但是離開了這兩者,它甚至都不能分辨一個(gè)喵星人和一個(gè)汪星人。

  圖靈(圖靈,大家都知道吧。計(jì)算機(jī)和人工智能的鼻祖,分別對應(yīng)于其著名的“圖靈機(jī)”和“圖靈測試”)在 1950 年的論文里,提出圖靈試驗(yàn)的設(shè)想,即,隔墻對話,你將不知道與你談話的,是人還是電腦。這無疑給計(jì)算機(jī),尤其是人工智能,預(yù)設(shè)了一個(gè)很高的期望值。但是半個(gè)世紀(jì)過去了,人工智能的進(jìn)展,遠(yuǎn)遠(yuǎn)沒有達(dá)到圖靈試驗(yàn)的標(biāo)準(zhǔn)。這不僅讓多年翹首以待的人們,心灰意冷,認(rèn)為人工智能是忽悠,相關(guān)領(lǐng)域是“偽科學(xué)”。

  但是自 2006 年以來,機(jī)器學(xué)習(xí)領(lǐng)域,取得了突破性的進(jìn)展。圖靈試驗(yàn),至少不是那么可望而不可及了。至于技術(shù)手段,不僅僅依賴于云計(jì)算對大數(shù)據(jù)的并行處理能力,而且依賴于算法。這個(gè)算法就是,Deep Learning。借助于 Deep Learning 算法,人類終于找到了如何處理“抽象概念”這個(gè)亙古難題的方法。


  2012年6月,《紐約時(shí)報(bào)》披露了Google Brain項(xiàng)目,吸引了公眾的廣泛關(guān)注。這個(gè)項(xiàng)目是由著名的斯坦福大學(xué)的機(jī)器學(xué)習(xí)教授Andrew Ng和在大規(guī)模計(jì)算機(jī)系統(tǒng)方面的世界頂尖專家JeffDean共同主導(dǎo),用16000個(gè)CPU Core的并行計(jì)算平臺(tái)訓(xùn)練一種稱為“深度神經(jīng)網(wǎng)絡(luò)”(DNN,Deep Neural Networks)的機(jī)器學(xué)習(xí)模型(內(nèi)部共有10億個(gè)節(jié)點(diǎn)。這一網(wǎng)絡(luò)自然是不能跟人類的神經(jīng)網(wǎng)絡(luò)相提并論的。要知道,人腦中可是有150多億個(gè)神經(jīng)元,互相連接的節(jié)點(diǎn)也就是突觸數(shù)更是如銀河沙數(shù)。曾經(jīng)有人估算過,如果將一個(gè)人的大腦中所有神經(jīng)細(xì)胞的軸突和樹突依次連接起來,并拉成一根直線,可從地球連到月亮,再從月亮返回地球),在語音識(shí)別和圖像識(shí)別等領(lǐng)域獲得了巨大的成功。

  項(xiàng)目負(fù)責(zé)人之一Andrew稱:“我們沒有像通常做的那樣自己框定邊界,而是直接把海量數(shù)據(jù)投放到算法中,讓數(shù)據(jù)自己說話,系統(tǒng)會(huì)自動(dòng)從數(shù)據(jù)中學(xué)習(xí)?!绷硗庖幻?fù)責(zé)人Jeff則說:“我們在訓(xùn)練的時(shí)候從來不會(huì)告訴機(jī)器說:‘這是一只貓?!到y(tǒng)其實(shí)是自己發(fā)明或者領(lǐng)悟了“貓”的概念?!?/p>


  2012年11月,微軟在中國天津的一次活動(dòng)上公開演示了一個(gè)全自動(dòng)的同聲傳譯系統(tǒng),講演者用英文演講,后臺(tái)的計(jì)算機(jī)一氣呵成自動(dòng)完成語音識(shí)別、英中機(jī)器翻譯和中文語音合成,效果非常流暢。據(jù)報(bào)道,后面支撐的關(guān)鍵技術(shù)也是DNN,或者深度學(xué)習(xí)(DL,DeepLearning)。

  用什么加快計(jì)算速度?異構(gòu)處理器

  在摩爾定律的作用下,單核標(biāo)量處理器的性能持續(xù)提升,軟件開發(fā)人員只需要寫好軟件,而性能就等待下次硬件的更新,在2003年之前的幾十年里,這種“免費(fèi)午餐”的模式一直在持續(xù)。2003年后,主要由于功耗的原因,這種“免費(fèi)的午餐”已經(jīng)不復(fù)存在。為了生存,各硬件生產(chǎn)商不得不采用各種方式以提高硬件的計(jì)算能力,以下是目前最流行的幾種方式是。

  1) 讓處理器一個(gè)周期處理多條指令 ,這多條指令可相同可不同。如Intel Haswell處理器一個(gè)周期可執(zhí)行4條整數(shù)加法指令、2條浮點(diǎn)乘加指令,同時(shí)訪存和運(yùn)算指令也可同時(shí)執(zhí)行。

  2) 使用向量指令 ,主要是SIMD和VLIW技術(shù)。SIMD技術(shù)將處理器一次能夠處理的數(shù)據(jù)位數(shù)從字長擴(kuò)大到128或256位,也就提升了計(jì)算能力。

  3) 在同一個(gè)芯片中集成多個(gè)處理單元 ,根據(jù)集成方式的不同,分為多核處理器或多路處理器。多核處理器是如此的重要,以至于現(xiàn)在即使是手機(jī)上的嵌入式ARM處理器都已經(jīng)是四核或八核。

  4) 使用異構(gòu)處理器,不同的架構(gòu)設(shè)計(jì)的處理器具有不同的特點(diǎn),如X86 處理器為延遲優(yōu)化,以減少指令的執(zhí)行延遲為主要設(shè)計(jì)考量(當(dāng)然今天的X86 處理器設(shè)計(jì)中也有許多為吞吐量設(shè)計(jì)的影子);如NVIDIA 和AMD 則為吞吐量設(shè)計(jì),以提高整個(gè)硬件的吞吐量為主要設(shè)計(jì)目標(biāo)。

  加速

  相比之前在游戲、視覺效果中的應(yīng)用,GPU正在成為數(shù)據(jù)中心、超算中心的標(biāo)配,并廣泛應(yīng)用于深度學(xué)習(xí)、大數(shù)據(jù)、石油化工、傳媒娛樂、科學(xué)研究等行業(yè)。GPU計(jì)算正在加速著深度學(xué)習(xí)革命,作為深度學(xué)習(xí)研究技術(shù)平臺(tái)領(lǐng)導(dǎo)廠商,NVIDIA將為中國的深度學(xué)習(xí)提供更多的技術(shù)平臺(tái)和解決方案,并繼續(xù)與中國的合作伙伴一起積極參加和推動(dòng)深度學(xué)習(xí)生態(tài)鏈的構(gòu)建。


  基于GPU加速的深度學(xué)習(xí)算法,百度、微軟和Google的計(jì)算機(jī)視覺系統(tǒng)在ImageNet圖像分類和識(shí)別測試中分別達(dá)到了5.98% (2015年1月數(shù)據(jù))4.94%(2015年2月數(shù)據(jù))、4.8%(2015年2月數(shù)據(jù))、的錯(cuò)誤率,接近或超過了人類識(shí)別水平——跑分競賽雖然有針對已知數(shù)據(jù)集進(jìn)行特定優(yōu)化之嫌,但優(yōu)化結(jié)果對工業(yè)界的實(shí)踐仍然具有參考價(jià)值。

  人工智能從過去基于模型的方法,變成現(xiàn)在基于數(shù)據(jù)、基于統(tǒng)計(jì)的方法,主要得益于GPU高度并行的結(jié)構(gòu)、高效快速的連接能力。事實(shí)證明GPU很適合深度學(xué)習(xí)。

  幾乎所有深度學(xué)習(xí)的研究者都在使用GPU

  熟悉深度學(xué)習(xí)的人都知道,深度學(xué)習(xí)是需要訓(xùn)練的,所謂的訓(xùn)練就是在成千上萬個(gè)變量中尋找最佳值的計(jì)算。這需要通過不斷的嘗試實(shí)現(xiàn)收斂,而最終獲得的數(shù)值并非是人工確定的數(shù)字,而是一種常態(tài)的公式。通過這種像素級的學(xué)習(xí),不斷總結(jié)規(guī)律,計(jì)算機(jī)就可以實(shí)現(xiàn)像像人一樣思考。如今,幾乎所有的深度學(xué)習(xí)(機(jī)器學(xué)習(xí))研究者都在使用GPU進(jìn)行相關(guān)的研究。當(dāng)然,我說的是“幾乎”。除了GPU之外,包括MIC和也提供了不同的解決方案。NVIDIA如何看待不同的硬件架構(gòu)對深度學(xué)習(xí)的影響,又是如何評價(jià)這些技術(shù)的呢?

  NVIDIA中國區(qū)解決方案架構(gòu)工程總監(jiān)羅華平認(rèn)為:“技術(shù)發(fā)展和科技的發(fā)展,是需要不同的技術(shù)一起來參與。無論是GPU也好、也好或者是專用的神經(jīng)網(wǎng)芯片也好,它的主要目的都是推動(dòng)深度學(xué)習(xí)(機(jī)器學(xué)習(xí))這個(gè)方向的技術(shù)發(fā)展。那么我們在初期,確實(shí)可以嘗試不同的技術(shù),來探討哪種技術(shù)可以更好的適合這項(xiàng)應(yīng)用。從目前來看,深度學(xué)習(xí)大量的使用,主要集中在訓(xùn)練方面。那么在這個(gè)領(lǐng)域,GPU確實(shí)是非常適合的,這也體現(xiàn)在所有的這些工業(yè)界的大佬如BAT、谷歌,F(xiàn)acebook等等,都在使用GPU在做訓(xùn)練?!倍擞?xùn)練之外,在實(shí)際的應(yīng)用方面,NVIDIA也正在結(jié)合中國地區(qū)IDC機(jī)房普遍具備的功耗、網(wǎng)絡(luò)等特點(diǎn),“考慮是否設(shè)計(jì)低功耗的GPU,來滿足用戶的需求”。

  除了硬件方面的因素之外,英偉達(dá)中國區(qū)技術(shù)經(jīng)理賴俊杰也從軟件方面解答了GPU對于深度學(xué)習(xí)應(yīng)用的價(jià)值。首先從深度學(xué)習(xí)應(yīng)用的開發(fā)工具角度,具備CUDA支持的GPU為用戶學(xué)習(xí)Caffe、Theano等研究工具提供了很好的入門平臺(tái)。其實(shí)GPU不僅僅是指專注于HPC領(lǐng)域的Tesla,包括Geforce在內(nèi)的GPU都可以支持CUDA計(jì)算,這也為初學(xué)者提供了相對更低的應(yīng)用門檻。除此之外,CUDA在算法和程序設(shè)計(jì)上相比其他應(yīng)用更加容易,通過NVIDIA多年的推廣也積累了廣泛的用戶群,開發(fā)難度更小。最后則是部署環(huán)節(jié),GPU通過PCI-e接口可以直接部署在服務(wù)器中,方便而快速。得益于硬件支持與軟件編程、設(shè)計(jì)方面的優(yōu)勢,GPU才成為了目前應(yīng)用最廣泛的平臺(tái)。

  深度學(xué)習(xí)發(fā)展遇到瓶頸了嗎?

  我們之所以使用GPU加速深度學(xué)習(xí),是因?yàn)樯疃葘W(xué)習(xí)所要計(jì)算的數(shù)據(jù)量異常龐大,用傳統(tǒng)的計(jì)算方式需要漫長的時(shí)間。但是,如果未來深度學(xué)習(xí)的數(shù)據(jù)量有所下降,或者說我們不能提供給深度學(xué)習(xí)研究所需要的足夠數(shù)據(jù)量,是否就意味著深度學(xué)習(xí)也將進(jìn)入“寒冬”呢?對此,賴俊杰也提出了另外一種看法。“做深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要大量模型,然后才能實(shí)現(xiàn)數(shù)學(xué)上的收斂。深度學(xué)習(xí)要真正接近成人的智力,它所需要的神經(jīng)網(wǎng)絡(luò)規(guī)模非常龐大,它所需要的數(shù)據(jù)量,會(huì)比我們做語言識(shí)別、圖像處理要多得多。假設(shè)說,我們發(fā)現(xiàn)我們沒有辦法提供這樣的數(shù)據(jù),很有可能出現(xiàn)寒冬”。

  不過他也補(bǔ)充認(rèn)為——從今天看到的結(jié)果來說,其實(shí)深度學(xué)習(xí)目前還在蓬勃發(fā)展往上的階段。比如說我們現(xiàn)階段主要做得比較成熟的語音、圖像方面,整個(gè)的數(shù)據(jù)量還是在不斷的增多的,網(wǎng)絡(luò)規(guī)模也在不斷的變復(fù)雜?,F(xiàn)在我沒有辦法預(yù)測,將來是不是會(huì)有一天數(shù)據(jù)真不夠用了。

  對于NVIDIA來說,深度學(xué)習(xí)是GPU計(jì)算發(fā)展的大好時(shí)機(jī),也是繼HPC之后一個(gè)全新的業(yè)務(wù)增長點(diǎn)。正如Pandey所提到的那樣,NVIDIA將世界各地的成功經(jīng)驗(yàn)帶到中國,包括國外的成功案例、與合作伙伴的良好關(guān)系等等,幫助中國客戶的快速成長?!耙?yàn)楝F(xiàn)在是互聯(lián)網(wǎng)的時(shí)代,是沒有跨界的時(shí)代,大家都是同等一起的。”

  GPU、 還是專用芯片?

  盡管深度學(xué)習(xí)和人工智能在宣傳上炙手可熱,但無論從仿生的視角抑或統(tǒng)計(jì)學(xué)的角度,深度學(xué)習(xí)的工業(yè)應(yīng)用都還是初階,深度學(xué)習(xí)的理論基礎(chǔ)也尚未建立和完善,在一些從業(yè)人員看來,依靠堆積計(jì)算力和數(shù)據(jù)集獲得結(jié)果的方式顯得過于暴力——要讓機(jī)器更好地理解人的意圖,就需要更多的數(shù)據(jù)和更強(qiáng)的計(jì)算平臺(tái),而且往往還是有監(jiān)督學(xué)習(xí)——當(dāng)然,現(xiàn)階段我們還沒有數(shù)據(jù)不足的憂慮。未來是否在理論完善之后不再依賴數(shù)據(jù)、不再依賴于給數(shù)據(jù)打標(biāo)簽(無監(jiān)督學(xué)習(xí))、不再需要向計(jì)算力要性能和精度?

  退一步說,即便計(jì)算力仍是必需的引擎,那么是否一定就是基于GPU?我們知道,CPU和FPGA已經(jīng)顯示出深度學(xué)習(xí)負(fù)載上的能力,而IBM主導(dǎo)的SyNAPSE巨型神經(jīng)網(wǎng)絡(luò)芯片(類人腦芯片),在70毫瓦的功率上提供100萬個(gè)“神經(jīng)元”內(nèi)核、2.56億個(gè)“突觸”內(nèi)核以及4096個(gè)“神經(jīng)突觸”內(nèi)核,甚至允許神經(jīng)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)負(fù)載超越了馮·諾依曼架構(gòu),二者的能耗和性能,都足以成為GPU潛在的挑戰(zhàn)者。例如,科大訊飛為打造“訊飛超腦”,除了GPU,還考慮借助深度定制的人工神經(jīng)網(wǎng)絡(luò)專屬芯片來打造更大規(guī)模的超算平臺(tái)集群。

  不過,在二者尚未產(chǎn)品化的今天,NVIDIA并不擔(dān)憂GPU會(huì)在深度學(xué)習(xí)領(lǐng)域失寵。首先,NVIDIA認(rèn)為,GPU作為底層平臺(tái),起到的是加速的作用,幫助深度學(xué)習(xí)的研發(fā)人員更快地訓(xùn)練出更大的模型,不會(huì)受到深度學(xué)習(xí)模型實(shí)現(xiàn)方式的影響。其次,NVIDIA表示,用戶可以根據(jù)需求選擇不同的平臺(tái),但深度學(xué)習(xí)研發(fā)人員需要在算法、統(tǒng)計(jì)方面精益求精,都需要一個(gè)生態(tài)環(huán)境的支持,GPU已經(jīng)構(gòu)建了CUDA、cuDNN及DIGITS等工具,支持各種主流開源框架,提供友好的界面和可視化的方式,并得到了合作伙伴的支持,例如浪潮開發(fā)了一個(gè)支持多GPU的Caffe,曙光也研發(fā)了基于PCI總線的多GPU的技術(shù),對熟悉串行程序設(shè)計(jì)的開發(fā)者更加友好。相比之下,F(xiàn)PGA可編程芯片或者是人工神經(jīng)網(wǎng)絡(luò)專屬芯片對于植入服務(wù)器以及編程環(huán)境、編程能力要求更高,還缺乏通用的潛力,不適合普及。








關(guān)鍵詞: GPU FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉