應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點(diǎn)新聞
企業(yè)注冊(cè)個(gè)人注冊(cè)登錄

清華「計(jì)圖」、曠視「天元」紛紛重磅開源,國產(chǎn)深度學(xué)習(xí)框架迎來高光時(shí)刻

2020-03-27 14:01 csdn

導(dǎo)讀:1956年,美國的達(dá)特茅斯會(huì)議成為人工智能開啟的標(biāo)志性事件。同年,中國第一批自主制造的汽車——解放牌汽車在長春第一汽車廠出廠,才結(jié)束了我國不能生產(chǎn)汽車的歷史。

1956年,美國的達(dá)特茅斯會(huì)議成為人工智能開啟的標(biāo)志性事件。同年,中國第一批自主制造的汽車——解放牌汽車在長春第一汽車廠出廠,才結(jié)束了我國不能生產(chǎn)汽車的歷史。

2020年,中國汽車產(chǎn)銷量已經(jīng)連續(xù)多年蟬聯(lián)全球第一。與此同時(shí),人工智能的技術(shù)研究與應(yīng)用在中國已經(jīng)遍地開花,并涌現(xiàn)出了包括曠視、商湯、依圖、寒武紀(jì)等在內(nèi)的一大批具有代表性的AI初創(chuàng)公司。

而深度學(xué)習(xí)框架作為人工智能時(shí)代的操作系統(tǒng),一直被 Google 的 TensorFlow 和 Facebook 的 PyTorch所統(tǒng)治,因此深度學(xué)習(xí)框架的國產(chǎn)化替代也成為了政產(chǎn)學(xué)研界關(guān)注的焦點(diǎn)。

近日,清華開源的深度學(xué)習(xí)框架 Jittor(計(jì)圖)引起了廣泛關(guān)注,支撐曠視諸多業(yè)務(wù)和戰(zhàn)績的深度學(xué)習(xí)框架 MegEngine(天元) 也將在近日開源。據(jù)悉,華為也將開源自己的深度學(xué)習(xí)框架。加上百度的 PaddlePaddle(飛槳)等,國產(chǎn)深度學(xué)習(xí)框架的發(fā)展迎來了高光時(shí)刻。

從1.0到3.0:由靜到動(dòng),動(dòng)靜結(jié)合,深度學(xué)習(xí)框架進(jìn)化史

深度學(xué)習(xí)框架的技術(shù)發(fā)展史可以用一句話來形容:由靜到動(dòng)。依據(jù)采用動(dòng)態(tài)計(jì)算或是靜態(tài)計(jì)算的不同,可以將這些眾多的深度學(xué)習(xí)框架劃分成兩大陣營:其中靜態(tài)圖機(jī)制以 TensorFlow 1.0 為代表,動(dòng)態(tài)圖機(jī)制以 PyTorch 為代表。

圖片已獲授權(quán)

靜態(tài)計(jì)算則意味著程序在編譯執(zhí)行時(shí)將先生成神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),然后再執(zhí)行相應(yīng)操作,它是通過先定義后運(yùn)行的方式,之后再次運(yùn)行的時(shí)候就不再需要重新構(gòu)建計(jì)算圖,所以速度會(huì)比動(dòng)態(tài)圖更快。

動(dòng)態(tài)計(jì)算意味著程序?qū)凑瘴覀兙帉懨畹捻樞蜻M(jìn)行執(zhí)行。這種機(jī)制將使得調(diào)試更加容易,并且也使得我們將大腦中的想法轉(zhuǎn)化為實(shí)際代碼變得更加容易。

通常來說,靜態(tài)圖機(jī)制能夠?qū)φw性做編譯優(yōu)化,更有利于性能的提升,占用資源少且易于部署,符合工業(yè)部署應(yīng)用的需求;而動(dòng)態(tài)圖則非常便于用戶對(duì)程序進(jìn)行調(diào)試,簡單靈活且易于上手,符合科研探索的需求。

由于動(dòng)態(tài)圖的靈活性、易用性展現(xiàn)出對(duì)科研人員極大的吸引力,更多框架也開始支持動(dòng)態(tài)圖,比如 TensorFlow 2.0,清華的 Jittor。

不過,訓(xùn)練效率和規(guī)?;冀K是工業(yè)界最重要的問題,動(dòng)態(tài)圖下的性能優(yōu)化問題也需要解決。因此,各框架取長補(bǔ)短趨同性比較明顯,前端易用性、計(jì)算高效性、框架穩(wěn)定性成為持續(xù)優(yōu)化方向。

而這一趨勢(shì)也意味著,動(dòng)靜結(jié)合正在成為 3.0 時(shí)代的解決方案。

以曠視即將開源的MegEngine 為例,其運(yùn)行時(shí)管理層包括兩個(gè)模塊,分別是內(nèi)核調(diào)度和內(nèi)存管理和優(yōu)化兩大模塊。在內(nèi)存管理和優(yōu)化模塊中,MegEngine 采用了動(dòng)態(tài)、靜態(tài)內(nèi)存分配并存的方式,因此可同時(shí)支持動(dòng)態(tài)圖和靜態(tài)圖模式。

因此,MegEngine 整合了動(dòng)態(tài)圖與靜態(tài)圖各自的優(yōu)勢(shì),在充分利用動(dòng)態(tài)圖模型訓(xùn)練優(yōu)勢(shì)時(shí),通過動(dòng)靜態(tài)一鍵轉(zhuǎn)換功能,以靜態(tài)圖的形式完成生產(chǎn)和部署;此外,MegEngine 還支持動(dòng)靜態(tài)的混合編程,靈活性更強(qiáng)。曠視研究人員在接受采訪時(shí)稱,即便是新同學(xué)不到1個(gè)月就可以快速上手。

從研究到部署,深度學(xué)習(xí)框架大比拼

圖片已獲授權(quán)

TensorFlow:Google 出品,2015 年開源,是目前主流的深度學(xué)習(xí)框架之一。開發(fā)者群體龐大,應(yīng)用成熟,在部署效率和異構(gòu)設(shè)備支持上表現(xiàn)突出。然而自 TensorFlow 2.0 推出之后,由 API 混亂,眾多 issue 得不到解決等問題引起的討論,其霸主地位正受到競爭者的挑戰(zhàn)。

Keras:Google 工程師 Fran?ois Chollet 作品,是一個(gè)由Python編寫的開源人工神經(jīng)網(wǎng)絡(luò)庫,對(duì)新手友好。自2017年起,Keras得到了Tensorflow團(tuán)隊(duì)的支持,其大部分組件被整合至Tensorflow的Python API中。在2018年Tensorflow 2.0.0公開后,Keras被正式確立為Tensorflow 高階API,即tf.keras 。

MxNet:AWS AI 首席科學(xué)家李沐作品,支持動(dòng)態(tài)圖,支持Python,R,Scala和C++等語言,而且有Gluon系列工具。不過相比 TensorFlow 和 PyTorch,開發(fā)者用戶明顯偏少,更適合自定義需求高的公司和研究人員。

PyTorch:Facebook 出品,開發(fā)社區(qū)非?;钴S,也很善于聽取開發(fā)者的意見。由于對(duì)動(dòng)態(tài)圖的支持, PyTorch 的靈活性相比 TensorFlow 大大提升,特別是用于快速驗(yàn)證和復(fù)算法復(fù)現(xiàn),因此備受學(xué)術(shù)界的青睞。在工業(yè)界,由于需要考慮兼容和部署等問題,PyTorch 也在原有的基礎(chǔ)上整合了為生產(chǎn)環(huán)境設(shè)計(jì)的 Caffe2 ,不過其實(shí)際效果還有待進(jìn)一步驗(yàn)證。

CNTK:微軟出品,所有API均基于C++設(shè)計(jì),因此在速度和可用性上很好。用戶基數(shù)小,學(xué)習(xí)曲線較陡,被吐槽其主要使用方式是 import keras,由于未來 Keras 將不再把重心放在支持多平臺(tái)上,預(yù)計(jì) CNTK 會(huì)受到影響。

PaddlePaddle(飛槳):百度出品,2016年開源。目前已經(jīng)升級(jí)為全面的深度學(xué)習(xí)開發(fā)套件,除了核心框架,還開放了VisualDL、PARL、AutoDL、EasyDL、AI Studio等一整套的深度學(xué)習(xí)工具組件和服務(wù)平臺(tái)。

除了以上的深度學(xué)習(xí)框架之外,即將開源的MegEngine也值得關(guān)注。MegEngine 架構(gòu)上具體分為計(jì)算接口、圖表示、優(yōu)化與編譯、運(yùn)行時(shí)管理和計(jì)算內(nèi)核五層。

圖片已獲授權(quán)

在頂層的計(jì)算接口上,MegEngine配置了C++和Python接口,解決框架學(xué)習(xí)接口各異,模型難以復(fù)現(xiàn)的問題

在圖表示層,MegEngine內(nèi)置動(dòng)靜態(tài)轉(zhuǎn)換功能,支持開發(fā)者混合使用動(dòng)態(tài)圖和靜態(tài)圖模式進(jìn)行編程。

在優(yōu)化與編譯層,MegEngine構(gòu)建了核心計(jì)算圖支持用戶高效交互,以進(jìn)一步優(yōu)化和編譯API表達(dá)的計(jì)算,具體包括自動(dòng)求導(dǎo)器、圖優(yōu)化和圖編譯功能。

在運(yùn)行時(shí)設(shè)備管理中, MegEngine 配置計(jì)算調(diào)度和內(nèi)存管理兩個(gè)模塊,通過計(jì)算調(diào)度模塊將設(shè)備抽象為執(zhí)行流,并通過調(diào)度器實(shí)現(xiàn)智能調(diào)度,在內(nèi)存優(yōu)化上,天元同時(shí)采用了動(dòng)態(tài)、靜態(tài)內(nèi)存分配并存的方式,支持自動(dòng)亞線性內(nèi)存優(yōu)化。

MegEngine底層擁有一個(gè)基于異構(gòu)架構(gòu),內(nèi)置高效計(jì)算機(jī)視覺算子的計(jì)算內(nèi)核,具備X86,CUDA等主流硬件設(shè)備智能適配能力。此外,MegEngine還配備高性能異構(gòu)通信庫,支持用戶在不同機(jī)器和計(jì)算卡之間進(jìn)行高性能的通信,以實(shí)現(xiàn)多機(jī)多卡、大規(guī)模、分布式的算法訓(xùn)練。

雖然目前 TensorFlow 和 PyTorch 等深度學(xué)習(xí)框架備受業(yè)界關(guān)注,但是中國AI應(yīng)用場(chǎng)景非常多樣,很多細(xì)分的需求也待進(jìn)一步滿足,很難說能有一家獨(dú)大,因此未來更貼近中國用戶需求的國產(chǎn)深度學(xué)習(xí)框架未來也有很大的機(jī)會(huì)。

工欲善其事,必先利其器

縱觀深度學(xué)習(xí)框架的發(fā)展,都在朝著降低開發(fā)者的門檻努力。但是由于各家框架的特性不一樣,而且都在不斷改進(jìn),因此開發(fā)者需要根據(jù)自己或者公司的切實(shí)需求來選擇框架,才能做到事半功倍。

首先,要易于上手,學(xué)習(xí)曲線不能太過陡峭;其次,要能真正幫助模型的部署和落地。

由于曠視的 MegEngine 具備 Pythonic 的 API ,并且支持PyTorch Module功能,可以直接導(dǎo)入模型,因此上手更快,學(xué)習(xí)成本和遷移成本都更低。此外,MegEngine 也整合了動(dòng)態(tài)圖與靜態(tài)圖各自的優(yōu)勢(shì),更具靈活性。

MegEngine 還支持訓(xùn)練推理一體化,既可支持研究員進(jìn)行算法訓(xùn)練,同時(shí)訓(xùn)練得到的模型和產(chǎn)物是可以直接進(jìn)行用于產(chǎn)品的推理、封裝,并且可以實(shí)現(xiàn)速度和精度的無損遷移,并且在部署時(shí)還可以自動(dòng)刪除冗余代碼,實(shí)現(xiàn)模型自動(dòng)優(yōu)化。

而且 MegEngine 也提供原語級(jí)別的支持,方便用戶進(jìn)行模型并行設(shè)置和執(zhí)行。最終,模型并行可以和數(shù)據(jù)并行模式混合使用。有了深度學(xué)習(xí)框架天生對(duì)分布式計(jì)算的支持,MegEngine 在訓(xùn)練和推理效率上達(dá)到了很高的水平。

對(duì)于開發(fā)者來說,MegEngine 或許是一個(gè)不錯(cuò)的嘗試。

預(yù)告:One More Thing

實(shí)際上,MegEngine 并不是曠視最新研發(fā)的產(chǎn)物,而是誕生于 2014 年,并經(jīng)受住了諸多業(yè)務(wù)的考驗(yàn)。

2013 年,由于 Theano 等早期開源框架無法滿足「煉丹」效率的需求。2014 年初,曠視研究院 3 名實(shí)習(xí)生從第一行代碼寫起,不到半年的時(shí)間,正式誕生了曠視自研的初版深度學(xué)習(xí)框架——MegEngine。2015 年年中,曠視完成了自研框架與公司內(nèi)部所有業(yè)務(wù)的接軌,公司業(yè)務(wù)線上的模型全部換成了自研框架訓(xùn)練出來的版本。

從自用走向開源,曠視意圖傳遞AI的普世價(jià)值。一直以來,人工智能都是一個(gè)具有很強(qiáng)的馬太效應(yīng)的產(chǎn)業(yè),繁榮背后其實(shí)是靠互聯(lián)網(wǎng)巨頭和曠視、商湯、依圖、寒武紀(jì)等明星AI企業(yè)在支撐,而明星AI企業(yè)背后通常也是靠個(gè)別或一小群天才在支撐。少數(shù)的一流天才支撐著少數(shù)的主流AI企業(yè),且呈現(xiàn)強(qiáng)者恒強(qiáng)的趨勢(shì)。另一方面,傳統(tǒng)廠商和中小企業(yè)卻對(duì)AI是望梅止渴,研發(fā)成本高、籠絡(luò)不到AI人才,也沒有大舉投入算法研發(fā)的決心。

因此,為了推動(dòng)AI技術(shù)加速落地,2019 年曠視開始籌備將其 Brain++ 平臺(tái)最核心的深度學(xué)習(xí)框架開源,還特意為 MegEngine 起了一個(gè)中文名字——天元,讓更多的開發(fā)者和企業(yè)用戶都能使用 AI “源力”,降本增效。

3月25日,曠視將通過線上直播開源其深度學(xué)習(xí)框架 MegEngine,進(jìn)一步展現(xiàn)框架更多的技術(shù)細(xì)節(jié)和效果,曠視核心深度學(xué)習(xí)框架的開源有望讓AI成為普惠性工具,助推AI從1.0邁向2.0時(shí)代。