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

1956年,美國的達特茅斯會議成為人工智能開啟的標志性事件。同年,中國第一批自主制造的汽車——解放牌汽車在長春第一汽車廠出廠,才結(jié)束了我國不能生產(chǎn)汽車的歷史。
 
2020年,中國汽車產(chǎn)銷量已經(jīng)連續(xù)多年蟬聯(lián)全球第一。與此同時,人工智能的技術研究與應用在中國已經(jīng)遍地開花,并涌現(xiàn)出了包括曠視、商湯、依圖、寒武紀等在內(nèi)的一大批具有代表性的AI初創(chuàng)公司。
 
而深度學習框架作為人工智能時代的操作系統(tǒng),一直被 Google 的 TensorFlow 和 Facebook 的 PyTorch所統(tǒng)治,因此深度學習框架的國產(chǎn)化替代也成為了政產(chǎn)學研界關注的焦點。
 
近日,清華開源的深度學習框架 Jittor(計圖) 引起了廣泛關注,支撐曠視諸多業(yè)務和戰(zhàn)績的深度學習框架 MegEngine(天元) 也將在近日開源。據(jù)悉,華為也將開源自己的深度學習框架。加上百度的 PaddlePaddle(飛槳)等,國產(chǎn)深度學習框架的發(fā)展迎來了高光時刻。

從1.0到3.0:由靜到動,動靜結(jié)合,深度學習框架進化史

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

圖片已獲授權(quán)   

靜態(tài)計算則意味著程序在編譯執(zhí)行時將先生成神經(jīng)網(wǎng)絡的結(jié)構(gòu),然后再執(zhí)行相應操作,它是通過先定義后運行的方式,之后再次運行的時候就不再需要重新構(gòu)建計算圖,所以速度會比動態(tài)圖更快。
 
動態(tài)計算意味著程序?qū)凑瘴覀兙帉懨畹捻樞蜻M行執(zhí)行。這種機制將使得調(diào)試更加容易,并且也使得我們將大腦中的想法轉(zhuǎn)化為實際代碼變得更加容易。
 
通常來說,靜態(tài)圖機制能夠?qū)φw性做編譯優(yōu)化,更有利于性能的提升,占用資源少且易于部署,符合工業(yè)部署應用的需求;而動態(tài)圖則非常便于用戶對程序進行調(diào)試,簡單靈活且易于上手,符合科研探索的需求。
 
由于動態(tài)圖的靈活性、易用性展現(xiàn)出對科研人員極大的吸引力,更多框架也開始支持動態(tài)圖,比如 TensorFlow 2.0,清華的 Jittor。
 
不過,訓練效率和規(guī)?;冀K是工業(yè)界最重要的問題,動態(tài)圖下的性能優(yōu)化問題也需要解決。因此,各框架取長補短趨同性比較明顯,前端易用性、計算高效性、框架穩(wěn)定性成為持續(xù)優(yōu)化方向。
 
而這一趨勢也意味著,動靜結(jié)合正在成為 3.0 時代的解決方案。
 
以曠視即將開源的MegEngine 為例,其運行時管理層包括兩個模塊,分別是內(nèi)核調(diào)度和內(nèi)存管理和優(yōu)化兩大模塊。在內(nèi)存管理和優(yōu)化模塊中,MegEngine 采用了動態(tài)、靜態(tài)內(nèi)存分配并存的方式,因此可同時支持動態(tài)圖和靜態(tài)圖模式。
 
因此,MegEngine 整合了動態(tài)圖與靜態(tài)圖各自的優(yōu)勢,在充分利用動態(tài)圖模型訓練優(yōu)勢時,通過動靜態(tài)一鍵轉(zhuǎn)換功能,以靜態(tài)圖的形式完成生產(chǎn)和部署;此外,MegEngine 還支持動靜態(tài)的混合編程,靈活性更強。曠視研究人員在接受采訪時稱,即便是新同學不到1個月就可以快速上手。

從研究到部署,深度學習框架大比拼

圖片已獲授權(quán)       
TensorFlow:Google 出品,2015 年開源,是目前主流的深度學習框架之一。開發(fā)者群體龐大,應用成熟,在部署效率和異構(gòu)設備支持上表現(xiàn)突出。然而自 TensorFlow 2.0 推出之后,由 API 混亂,眾多 issue 得不到解決等問題引起的討論,其霸主地位正受到競爭者的挑戰(zhàn)。
 
Keras:Google 工程師 Fran?ois Chollet 作品,是一個由Python編寫的開源人工神經(jīng)網(wǎng)絡庫,對新手友好。自2017年起,Keras得到了Tensorflow團隊的支持,其大部分組件被整合至Tensorflow的Python API中。在2018年Tensorflow 2.0.0公開后,Keras被正式確立為Tensorflow 高階API,即tf.keras 。
 
MxNet:AWS AI 首席科學家李沐作品,支持動態(tài)圖,支持Python,R,Scala和C++等語言,而且有Gluon系列工具。不過相比 TensorFlow 和 PyTorch,開發(fā)者用戶明顯偏少,更適合自定義需求高的公司和研究人員。
 
PyTorch:Facebook 出品,開發(fā)社區(qū)非?;钴S,也很善于聽取開發(fā)者的意見。由于對動態(tài)圖的支持, PyTorch 的靈活性相比 TensorFlow 大大提升,特別是用于快速驗證和復算法復現(xiàn),因此備受學術界的青睞。在工業(yè)界,由于需要考慮兼容和部署等問題,PyTorch 也在原有的基礎上整合了為生產(chǎn)環(huán)境設計的 Caffe2 ,不過其實際效果還有待進一步驗證。
 
CNTK:微軟出品,所有API均基于C++設計,因此在速度和可用性上很好。用戶基數(shù)小,學習曲線較陡,被吐槽其主要使用方式是 import keras,由于未來 Keras 將不再把重心放在支持多平臺上,預計 CNTK 會受到影響。
 
PaddlePaddle(飛槳):百度出品,2016年開源。目前已經(jīng)升級為全面的深度學習開發(fā)套件,除了核心框架,還開放了VisualDL、PARL、AutoDL、EasyDL、AI Studio等一整套的深度學習工具組件和服務平臺。
 
除了以上的深度學習框架之外,即將開源的MegEngine也值得關注。MegEngine 架構(gòu)上具體分為計算接口、圖表示、優(yōu)化與編譯、運行時管理和計算內(nèi)核五層。

圖片已獲授權(quán)

  • 在頂層的計算接口上,MegEngine配置了C++和Python接口,解決框架學習接口各異,模型難以復現(xiàn)的問題
  • 在圖表示層,MegEngine內(nèi)置動靜態(tài)轉(zhuǎn)換功能,支持開發(fā)者混合使用動態(tài)圖和靜態(tài)圖模式進行編程。
  • 在優(yōu)化與編譯層,MegEngine構(gòu)建了核心計算圖支持用戶高效交互,以進一步優(yōu)化和編譯API表達的計算,具體包括自動求導器、圖優(yōu)化和圖編譯功能。
  • 在運行時設備管理中, MegEngine 配置計算調(diào)度和內(nèi)存管理兩個模塊,通過計算調(diào)度模塊將設備抽象為執(zhí)行流,并通過調(diào)度器實現(xiàn)智能調(diào)度,在內(nèi)存優(yōu)化上,天元同時采用了動態(tài)、靜態(tài)內(nèi)存分配并存的方式,支持自動亞線性內(nèi)存優(yōu)化。
  • MegEngine底層擁有一個基于異構(gòu)架構(gòu),內(nèi)置高效計算機視覺算子的計算內(nèi)核,具備X86,CUDA等主流硬件設備智能適配能力。此外,MegEngine還配備高性能異構(gòu)通信庫,支持用戶在不同機器和計算卡之間進行高性能的通信,以實現(xiàn)多機多卡、大規(guī)模、分布式的算法訓練。

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

工欲善其事,必先利其器

 
縱觀深度學習框架的發(fā)展,都在朝著降低開發(fā)者的門檻努力。但是由于各家框架的特性不一樣,而且都在不斷改進,因此開發(fā)者需要根據(jù)自己或者公司的切實需求來選擇框架,才能做到事半功倍。
 
首先,要易于上手,學習曲線不能太過陡峭;其次,要能真正幫助模型的部署和落地。
 

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

MegEngine 還支持訓練推理一體化,既可支持研究員進行算法訓練,同時訓練得到的模型和產(chǎn)物是可以直接進行用于產(chǎn)品的推理、封裝,并且可以實現(xiàn)速度和精度的無損遷移,并且在部署時還可以自動刪除冗余代碼,實現(xiàn)模型自動優(yōu)化。
 
而且 MegEngine 也提供原語級別的支持,方便用戶進行模型并行設置和執(zhí)行。最終,模型并行可以和數(shù)據(jù)并行模式混合使用。有了深度學習框架天生對分布式計算的支持,MegEngine 在訓練和推理效率上達到了很高的水平。
 
對于開發(fā)者來說,MegEngine 或許是一個不錯的嘗試。

預告:One More Thing

 
實際上,MegEngine 并不是曠視最新研發(fā)的產(chǎn)物,而是誕生于 2014 年,并經(jīng)受住了諸多業(yè)務的考驗。
 
2013 年,由于 Theano 等早期開源框架無法滿足「煉丹」效率的需求。2014 年初,曠視研究院 3 名實習生從第一行代碼寫起,不到半年的時間,正式誕生了曠視自研的初版深度學習框架——MegEngine。2015 年年中,曠視完成了自研框架與公司內(nèi)部所有業(yè)務的接軌,公司業(yè)務線上的模型全部換成了自研框架訓練出來的版本。
 
從自用走向開源,曠視意圖傳遞AI的普世價值。一直以來,人工智能都是一個具有很強的馬太效應的產(chǎn)業(yè),繁榮背后其實是靠互聯(lián)網(wǎng)巨頭和曠視、商湯、依圖、寒武紀等明星AI企業(yè)在支撐,而明星AI企業(yè)背后通常也是靠個別或一小群天才在支撐。少數(shù)的一流天才支撐著少數(shù)的主流AI企業(yè),且呈現(xiàn)強者恒強的趨勢。另一方面,傳統(tǒng)廠商和中小企業(yè)卻對AI是望梅止渴,研發(fā)成本高、籠絡不到AI人才,也沒有大舉投入算法研發(fā)的決心。
 
因此,為了推動AI技術加速落地,2019 年曠視開始籌備將其 Brain++ 平臺最核心的深度學習框架開源,還特意為 MegEngine 起了一個中文名字——天元,讓更多的開發(fā)者和企業(yè)用戶都能使用 AI “源力”,降本增效。
 
3月25日,曠視將通過線上直播開源其深度學習框架 MegEngine,進一步展現(xiàn)框架更多的技術細節(jié)和效果,曠視核心深度學習框架的開源有望讓AI成為普惠性工具,助推AI從1.0邁向2.0時代。

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。

2020-03-27
清華「計圖」、曠視「天元」紛紛重磅開源,國產(chǎn)深度學習框架迎來高光時刻
1956年,美國的達特茅斯會議成為人工智能開啟的標志性事件。同年,中國第一批自主制造的汽車——解放牌汽車在長春第一汽車廠出廠,才結(jié)束了我國不能生產(chǎn)汽車的歷史。

長按掃碼 閱讀全文