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

**內(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é)長也指出了在深度學(xué)習(xí)新時(shí)代羡洛,隨著可微分編程挂脑、圖神經(jīng)網(wǎng)絡(luò)等新領(lǐng)域的出現(xiàn)以及專用芯片的發(fā)展,深度學(xué)習(xí)框架會(huì)迎來更多機(jī)遇與挑戰(zhàn)欲侮。

圖片

完整版演講視頻:
http://mpvideo.qpic.cn/0bf2oeaagaaayeaexuphezpfa4odanyqaaya.f10002.mp4?dis_k=3977c0780513b85b6f04e763ecfd1aea&dis_t=1608187659&vid=wxv_1386191585075134465&format_id=10002

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

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

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

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

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

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

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

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

圖片

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

深度學(xué)習(xí)系統(tǒng)也是類似的思維萌朱。對(duì)于深度學(xué)習(xí)框架來說,系統(tǒng)上游是各種神經(jīng)網(wǎng)絡(luò)模型策菜,系統(tǒng)的下游是各類硬件晶疼,例如GPU酒贬、CPU等。理解了上下游后翠霍,深度學(xué)習(xí)系統(tǒng)的邊界和目的就變得簡單而清晰了锭吨。深度學(xué)習(xí)框架就是使用最精簡的設(shè)計(jì),靈活地支持各類神經(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í)框架的目的是用最精簡的方完成任務(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ī)視覺領(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定義模型的方式也因此是以寫configuration為主务甥,和現(xiàn)在的框架有很大的區(qū)別牡辽。例如用Caffe寫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í)代的系統(tǒng)設(shè)計(jì)非常簡單窄俏。

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

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

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

劣勢

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

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

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

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

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

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

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

圖片

接下來的一段時(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í),通過在大量機(jī)器上并行,甚至在分鐘候学、秒的量級(jí)上可以完成藕筋。這都得益于數(shù)據(jù)流的概念和數(shù)據(jù)流天然具有的并行性。

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

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

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

新時(shí)代

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

第一個(gè)概念是可微分編程黔漂。這是近兩年提出的一個(gè)廣大的思路概念诫尽。在編寫模型時(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ò)專用芯片怕轿。這是深度學(xué)習(xí)發(fā)展的大趨勢偷崩,也是系統(tǒng)無可避免的問題。

在2019年后撤卢,系統(tǒng)的趨勢有了明顯的變化环凿。

首先是前端垂直化。開發(fā)過程中放吩,不再以通用系統(tǒng)為目標(biāo)智听,而是基于通用系統(tǒng)開發(fā)面向垂直領(lǐng)域的工具,包括計(jì)算機(jī)視覺渡紫,自然語言處理到推,圖領(lǐng)域等領(lǐng)域,DGL惕澎、AutoGluon莉测、Captum等垂直領(lǐng)域的工具包。

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

圖片

總結(jié)

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碘箍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鲸郊,更是在濱河造成了極大的恐慌丰榴,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秆撮,死亡現(xiàn)場離奇詭異四濒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)职辨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門盗蟆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舒裤,你說我怎么就攤上這事喳资。” “怎么了腾供?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵仆邓,是天一觀的道長。 經(jīng)常有香客問我伴鳖,道長节值,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任黎侈,我火速辦了婚禮察署,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘峻汉。我一直安慰自己贴汪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布休吠。 她就那樣靜靜地躺著扳埂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瘤礁。 梳的紋絲不亂的頭發(fā)上阳懂,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼岩调。 笑死巷燥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的号枕。 我是一名探鬼主播缰揪,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼葱淳!你這毒婦竟也來了钝腺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤赞厕,失蹤者是張志新(化名)和其女友劉穎艳狐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皿桑,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡毫目,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唁毒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒜茴。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浆西,靈堂內(nèi)的尸體忽然破棺而出粉私,到底是詐尸還是另有隱情,我是刑警寧澤近零,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布诺核,位于F島的核電站,受9級(jí)特大地震影響久信,放射性物質(zhì)發(fā)生泄漏窖杀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一裙士、第九天 我趴在偏房一處隱蔽的房頂上張望入客。 院中可真熱鬧,春花似錦腿椎、人聲如沸桌硫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铆隘。三九已至,卻和暖如春南用,著一層夾襖步出監(jiān)牢的瞬間膀钠,已是汗流浹背掏湾。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肿嘲,地道東北人融击。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像雳窟,于是被迫代替她去往敵國和親砚嘴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容