<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          王敏捷 - 深度學(xué)習(xí)框架這十年!

          共 3726字,需瀏覽 8分鐘

           ·

          2020-07-28 12:28

          深度學(xué)習(xí)框架這十年


          王敏捷? ACM'07

          紐約大學(xué)博士,亞馬遜上海研究院應(yīng)用科學(xué)家


          內(nèi)容概覽?介紹了深度學(xué)習(xí)框架發(fā)展的三個(gè)時(shí)期:工具包時(shí)代(2014年前)、數(shù)據(jù)流時(shí)期(2014-2018)、新時(shí)代(2019年后)。強(qiáng)調(diào)了深度學(xué)習(xí)框架的重要性與推動(dòng)因素,介紹了3位ACM人李沐、陳天奇和他一起將各自的技術(shù)Parameter Server、CXXNet、Minerva融合并創(chuàng)造了新的深度學(xué)習(xí)框架MXNet。敏捷學(xué)長(zhǎng)也指出了在深度學(xué)習(xí)新時(shí)代,隨著可微分編程、圖神經(jīng)網(wǎng)絡(luò)等新領(lǐng)域的出現(xiàn)以及專(zhuān)用芯片的發(fā)展,深度學(xué)習(xí)框架會(huì)迎來(lái)更多機(jī)遇與挑戰(zhàn)。


          完整版演講視頻:


          深度學(xué)習(xí)的浪潮其實(shí)到現(xiàn)在僅僅發(fā)展了十幾年的時(shí)間。深度學(xué)習(xí)的火熱到底是什么在驅(qū)動(dòng)?


          原因主要來(lái)自于三個(gè)方面:

          (1)首先是規(guī)模很大的數(shù)據(jù)。俗話說(shuō)巧婦難為無(wú)米之炊,大數(shù)據(jù)使得我們?cè)谟?xùn)練神經(jīng)網(wǎng)絡(luò)的過(guò)程中有充分的資源可以利用;

          (2)其次,算法也是非常非常重要的突破。比如說(shuō)卷積神經(jīng)網(wǎng)絡(luò)、residual network、注意力機(jī)制這些算法的興起,也是促成深度學(xué)習(xí)浪潮的重要因素。

          (3)最后是算力。算力主要體現(xiàn)在兩個(gè)方面:軟件和硬件,其中軟件對(duì)應(yīng)的就是今天要講的深度學(xué)習(xí)框架。


          對(duì)于做人工智能方面的研究或者工業(yè)界的人士,或多或少都用過(guò)深度學(xué)習(xí)框架。在過(guò)去的幾十年里,有很多深度學(xué)習(xí)框架被提出,被使用,但最后銷(xiāo)聲匿跡。我們需要去了解一代又一代的深度學(xué)習(xí)框架被提出的原因,框架之間的關(guān)系及其演變的歷史,也就是今天的主題:深度學(xué)習(xí)框架這十年。


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

          講深度學(xué)習(xí)框架之前,可以先了解一下什么是Rube Goldberg’s Machine。這是一個(gè)在美國(guó)高中的科創(chuàng)文化中非常流行的概念。它的目的是設(shè)計(jì)一個(gè)復(fù)雜、可能有很多機(jī)關(guān)技巧的機(jī)器,但完成的卻是一個(gè)非常簡(jiǎn)單的工作。比如去年Rube Goldberg’s Machine比賽的題目是設(shè)計(jì)一個(gè)能把一枚硬幣放到儲(chǔ)蓄罐里的機(jī)器。另一個(gè)例子是self operating napkin,一個(gè)自動(dòng)遞紙巾的機(jī)器。這個(gè)機(jī)器的工作非常簡(jiǎn)單,但是流程卻非常復(fù)雜,比如客人把手放下,就要觸發(fā)各個(gè)機(jī)關(guān),最后把紙巾遞到面前。

          要理解一個(gè)復(fù)雜的system,最簡(jiǎn)單的方式是看system的上游和下游,比如上述的機(jī)器,雖然流程很復(fù)雜,但觸發(fā)條件就是客人放下手,下游就是把紙巾送嘴邊。


          深度學(xué)習(xí)系統(tǒng)也是類(lèi)似的思維。對(duì)于深度學(xué)習(xí)框架來(lái)說(shuō),系統(tǒng)上游是各種神經(jīng)網(wǎng)絡(luò)模型,系統(tǒng)的下游是各類(lèi)硬件,例如GPU、CPU等。理解了上下游后,深度學(xué)習(xí)系統(tǒng)的邊界和目的就變得簡(jiǎn)單而清晰了。深度學(xué)習(xí)框架就是使用最精簡(jiǎn)的設(shè)計(jì),靈活地支持各類(lèi)神經(jīng)網(wǎng)絡(luò),并且不同硬件條件下,也能讓神經(jīng)網(wǎng)絡(luò)高效執(zhí)行。


          Rube Goldberg’s Machine和深度學(xué)習(xí)框架兩者的區(qū)別在于:Rube Goldberg’s Machine將模型復(fù)雜化,而深度學(xué)習(xí)框架的目的是用最精簡(jiǎn)的方完成任務(wù)。The simple is the better。從這個(gè)角度上,我們可以把十幾年間涌現(xiàn)的大量深度學(xué)習(xí)框架劃分為三個(gè)時(shí)代,分別是:工具包時(shí)代、數(shù)據(jù)流時(shí)代新時(shí)代


          工具包時(shí)代

          工具包時(shí)代是接觸神經(jīng)網(wǎng)絡(luò)較早的時(shí)期,一般指2014年前,代表性的框架有Cuda-ConvNet2Caffe。


          特征

          這個(gè)時(shí)代的特點(diǎn)是計(jì)算機(jī)視覺(jué)領(lǐng)域的井噴。起源于07年的第一篇深度學(xué)習(xí)網(wǎng)絡(luò)論文在mnist數(shù)據(jù)集上得到了很好的效果,12年AlexNet誕生也鼓勵(lì)了深度學(xué)習(xí)的浪潮。在這個(gè)階段,卷積神經(jīng)網(wǎng)絡(luò)是很多工具包關(guān)注的要點(diǎn)。Cuda-ConvNet2或Caffe定義模型的方式也因此是以寫(xiě)configuration為主,和現(xiàn)在的框架有很大的區(qū)別。例如用Caffe寫(xiě)AlexNet時(shí),要定義 layer和它的name、type、input_param等參數(shù)。這樣設(shè)計(jì)的原因就是卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)系統(tǒng)上游的主流,那個(gè)時(shí)代對(duì)這方面的研究也非?;馃?。這些框架的interface是完全可以滿足需求的,因?yàn)楫?dāng)時(shí)的研究只是把不同的卷積層拼接,從而了解不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的效果。


          優(yōu)勢(shì)

          工具包時(shí)代的系統(tǒng)設(shè)計(jì)非常簡(jiǎn)單


          在用戶層,它僅僅是模型配置文件,在硬件層,系統(tǒng)通過(guò)手寫(xiě)GPU和CPU的神經(jīng)網(wǎng)絡(luò)算子來(lái)解決硬件問(wèn)題,例如Cuda能明顯實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)加速。


          隨著網(wǎng)絡(luò)和硬件的發(fā)展,個(gè)人作為單獨(dú)的團(tuán)隊(duì)來(lái)編寫(xiě)神經(jīng)網(wǎng)絡(luò)算子變得困難,所以大廠商,包括英偉達(dá)、英特爾,會(huì)開(kāi)發(fā)專(zhuān)門(mén)針對(duì)神經(jīng)網(wǎng)絡(luò)的算子庫(kù),比如說(shuō)CuDNN和MKLDNN,這些算子在現(xiàn)在的神經(jīng)網(wǎng)絡(luò)系統(tǒng)框架 ?中依然常用。


          這就是工具包時(shí)代的Cuda-ConvNet2和Caffe成功的原因。


          劣勢(shì)

          工具包時(shí)代的框架也存在一些缺點(diǎn)。


          首先是模型配置文件非常不靈活,很難表達(dá)復(fù)雜的模型例如RNN,雖然對(duì)于計(jì)算機(jī)視覺(jué)的網(wǎng)絡(luò)處理比較方便,但是對(duì)于變長(zhǎng)的數(shù)據(jù),例如文本的支持并不理想。


          其次,它并不是非常靈活的編程語(yǔ)言,隨著深度學(xué)習(xí)網(wǎng)絡(luò)可學(xué)習(xí)參數(shù)的增多,它難以利用多機(jī)和多GPU訓(xùn)練,因?yàn)榕渲梦募茈y去表達(dá)如何在多機(jī)和多GPU的環(huán)境下訓(xùn)練,同時(shí)算子庫(kù)也無(wú)法解決運(yùn)行時(shí)的問(wèn)題。


          最后,隨著模型復(fù)雜化,工具包對(duì)新出現(xiàn)的算子的支持也非常有限。?


          在這個(gè)時(shí)代如何去解決框架的問(wèn)題是值得思考的。


          數(shù)據(jù)流時(shí)代

          2014年在Denver,我、李沐和陳天奇三位ACM班的學(xué)生在OSDI開(kāi)會(huì)。李沐實(shí)現(xiàn)的是 parameter server,他的專(zhuān)業(yè)領(lǐng)域在于多機(jī)分布式訓(xùn)練。陳天奇的項(xiàng)目是CXXNet,包含了高效而豐富的算子庫(kù)。我的項(xiàng)目是Minerva核心思想是使用數(shù)據(jù)流的引擎,令多GPU的訓(xùn)練加速。我們共同的思想是如何設(shè)計(jì)更好的深度學(xué)習(xí)系統(tǒng),同時(shí)我們的項(xiàng)目和專(zhuān)業(yè)領(lǐng)域正好互補(bǔ)。于是我們的MXNet應(yīng)運(yùn)而生。


          接下來(lái)的一段時(shí)間(2014-2018年),就是數(shù)據(jù)流時(shí)期框架的爆發(fā)。主流的框架有MXNet、TensorFlow、PyTorch、Chainer、Caffe2。


          主導(dǎo)因素

          隨著深度學(xué)習(xí)的領(lǐng)域的不斷發(fā)展,NLP也進(jìn)入井噴階段,這是這些框架出現(xiàn)的一大誘因。同時(shí)隨著數(shù)據(jù)的增加,對(duì)并行的需求也隨之上升,因此在數(shù)據(jù)流時(shí)期,很多模型如ResNet在ImageNet上訓(xùn)練只需要一小時(shí),通過(guò)在大量機(jī)器上并行,甚至在分鐘、秒的量級(jí)上可以完成。這都得益于數(shù)據(jù)流的概念和數(shù)據(jù)流天然具有的并行性。


          時(shí)代特點(diǎn)

          數(shù)據(jù)流時(shí)代的模型和工具包時(shí)代的區(qū)別就是在用戶層和硬件層中間加了一層中間表達(dá):數(shù)據(jù)流圖。系統(tǒng)分為前端和后端,前端只關(guān)注用戶使用方面的問(wèn)題,而后端負(fù)責(zé)系統(tǒng)優(yōu)化。


          第二個(gè)區(qū)別是,前端也放棄模型配置文件了,Python成為了整個(gè)深度學(xué)習(xí)框架的一個(gè)標(biāo)桿,通過(guò)Python提供張量運(yùn)算的接口。隨著Pytorch為典型的用戶友好的框架的出現(xiàn),NN模型庫(kù),包括動(dòng)態(tài)自動(dòng)求導(dǎo)成為了整個(gè)深度學(xué)習(xí)框架的標(biāo)配。后端也逐漸把專(zhuān)用的算子替代成更豐富的張量算子庫(kù),同時(shí)增加了參數(shù)服務(wù)器,使得整個(gè)系統(tǒng)能夠在多機(jī)多GPU的環(huán)境下訓(xùn)練。


          新時(shí)代

          數(shù)據(jù)流時(shí)代其實(shí)就是新時(shí)代的開(kāi)端。雖然通用深度學(xué)習(xí)框架的設(shè)計(jì)趨向于穩(wěn)定,但是新的概念,新的模型不斷涌現(xiàn),讓系統(tǒng)的設(shè)計(jì)也有新的一些挑戰(zhàn)。


          第一個(gè)概念是可微分編程。這是近兩年提出的一個(gè)廣大的思路概念。在編寫(xiě)模型時(shí),程序本身是可微分編程的,很多系統(tǒng)設(shè)計(jì)的工作在往這個(gè)方向邁進(jìn)。第二點(diǎn)是新領(lǐng)域的出現(xiàn),例如圖神經(jīng)網(wǎng)絡(luò),圖神經(jīng)網(wǎng)絡(luò)可以處理原本難以解決的數(shù)據(jù),比如知識(shí)圖譜,制藥中分子的生物圖,新領(lǐng)域出現(xiàn),也對(duì)系統(tǒng)產(chǎn)生了新的挑戰(zhàn)。第三個(gè)概念是AI-chip,神經(jīng)網(wǎng)絡(luò)專(zhuān)用芯片。這是深度學(xué)習(xí)發(fā)展的大趨勢(shì),也是系統(tǒng)無(wú)可避免的問(wèn)題。


          在2019年后,系統(tǒng)的趨勢(shì)有了明顯的變化。


          首先是前端垂直化。開(kāi)發(fā)過(guò)程中,不再以通用系統(tǒng)為目標(biāo),而是基于通用系統(tǒng)開(kāi)發(fā)面向垂直領(lǐng)域的工具,包括計(jì)算機(jī)視覺(jué),自然語(yǔ)言處理,圖領(lǐng)域等領(lǐng)域,DGL、AutoGluon、Captum等垂直領(lǐng)域的工具包。


          其次,新概念也在慢慢滲透到系統(tǒng)設(shè)計(jì)中。對(duì)于Python,很多人提出Python并不是很好的選擇,也有很多的工作來(lái)優(yōu)化對(duì)應(yīng)的語(yǔ)言的編譯。對(duì)于數(shù)據(jù)流圖,它并不是一種非常強(qiáng)大的編程語(yǔ)言。而實(shí)現(xiàn)可微分編程需要更強(qiáng)大的中間表達(dá)比如Relay、MLIR。對(duì)于張量算子庫(kù),AI chip的出現(xiàn)讓張量算子編譯器應(yīng)運(yùn)而生,其代表作有TVM,TC等工作。


          總結(jié)

          深度學(xué)習(xí)框架雖然非常年輕,但已經(jīng)經(jīng)歷了多輪的演變,而每一輪的演變都是由于算法和硬件的新趨勢(shì)帶來(lái)的新的挑戰(zhàn)。


          2019年之后,新挑戰(zhàn)不斷涌現(xiàn),對(duì)于有志于投身這個(gè)領(lǐng)域的同學(xué)是非常好的時(shí)機(jī)。我們ACM班人在深度學(xué)習(xí)框架演變中也起到了非常重要的推動(dòng)作用,很多的學(xué)長(zhǎng)學(xué)姐在各個(gè)領(lǐng)域有非常好的成就,在研究過(guò)程中,如果能和同學(xué)或者學(xué)長(zhǎng)產(chǎn)生一些思維的火花,不要猶豫,可能你們要做的工作也能在歷史中留下印記。
          本文完整PPT 后臺(tái)回復(fù) 深度學(xué)習(xí)框架 下載

          “干貨學(xué)習(xí),點(diǎn)三連

          瀏覽 51
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩又大又粗精品 | 激情内射网 | 免费一级特黄大学生毛片 | 操少妇逼 | 午夜人妖另类 |