清華「計圖」、曠視「天元」紛紛重磅開源,國產深度學習框架來了

csdn 發佈 2020-03-26T09:40:47+00:00

因此,為了推動AI技術加速落地,2019 年曠視開始籌備將其 Brain++ 平台最核心的深度學習框架開源,還特意為 MegEngine 起了一個中文名字——天元,讓更多的開發者和企業用戶都能使用 AI 「源力」,降本增效。

1956年,美國的達特茅斯會議成為人工智慧開啟的標誌性事件。同年,中國第一批自主製造的汽車——解放牌汽車在長春第一汽車廠出廠,才結束了我國不能生產汽車的歷史。

2020年,中國汽車產銷量已經連續多年蟬聯全球第一。與此同時,人工智慧的技術研究與應用在中國已經遍地開花,並湧現出了包括曠視、商湯、依圖、寒武紀等在內的一大批具有代表性的AI初創公司。

而深度學習框架作為人工智慧時代的作業系統,一直被 Google 的 TensorFlow 和 Facebook 的 PyTorch所統治,因此深度學習框架的國產化替代也成為了政產學研界關注的焦點。

近日,清華開源的深度學習框架 Jittor(計圖) 引起了廣泛關注,支撐曠視諸多業務和戰績的深度學習框架 MegEngine(天元) 也將在近日開源。據悉,華為也將開源自己的深度學習框架。加上百度的 PaddlePaddle(飛槳)等,國產深度學習框架的發展迎來了高光時刻。


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

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

圖片已獲授權

靜態計算則意味著程序在編譯執行時將先生成神經網絡的結構,然後再執行相應操作,它是通過先定義後運行的方式,之後再次運行的時候就不再需要重新構建計算圖,所以速度會比動態圖更快。

動態計算意味著程序將按照我們編寫命令的順序進行執行。這種機制將使得調試更加容易,並且也使得我們將大腦中的想法轉化為實際代碼變得更加容易。

通常來說,靜態圖機制能夠對整體性做編譯優化,更有利於性能的提升,占用資源少且易於部署,符合工業部署應用的需求;而動態圖則非常便於用戶對程序進行調試,簡單靈活且易於上手,符合科研探索的需求。

由於動態圖的靈活性、易用性展現出對科研人員極大的吸引力,更多框架也開始支持動態圖,比如 TensorFlow 2.0,清華的 Jittor。

不過,訓練效率和規模化始終是工業界最重要的問題,動態圖下的性能優化問題也需要解決。因此,各框架取長補短趨同性比較明顯,前端易用性、計算高效性、框架穩定性成為持續優化方向。

而這一趨勢也意味著,動靜結合正在成為 3.0 時代的解決方案。

以曠視即將開源的MegEngine 為例,其運行時管理層包括兩個模塊,分別是內核調度和內存管理和優化兩大模塊。在內存管理和優化模塊中,MegEngine 採用了動態、靜態內存分配並存的方式,因此可同時支持動態圖和靜態圖模式。

因此,MegEngine 整合了動態圖與靜態圖各自的優勢,在充分利用動態圖模型訓練優勢時,通過動靜態一鍵轉換功能,以靜態圖的形式完成生產和部署;此外,MegEngine 還支持動靜態的混合編程,靈活性更強。曠視研究人員在接受採訪時稱,即便是新同學不到1個月就可以快速上手。


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

圖片已獲授權


TensorFlow:Google 出品,2015 年開源,是目前主流的深度學習框架之一。開發者群體龐大,應用成熟,在部署效率和異構設備支持上表現突出。然而自 TensorFlow 2.0 推出之後,由 API 混亂,眾多 issue 得不到解決等問題引起的討論,其霸主地位正受到競爭者的挑戰。

Keras:Google 工程師 François Chollet 作品,是一個由Python編寫的開源人工神經網絡庫,對新手友好。自2017年起,Keras得到了Tensorflow團隊的支持,其大部分組件被整合至Tensorflow的Python API中。在2018年Tensorflow 2.0.0公開後,Keras被正式確立為Tensorflow 高階API,即tf.keras 。

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

PyTorch:Facebook 出品,開發社區非常活躍,也很善於聽取開發者的意見。由於對動態圖的支持, PyTorch 的靈活性相比 TensorFlow 大大提升,特別是用於快速驗證和復算法復現,因此備受學術界的青睞。在工業界,由於需要考慮兼容和部署等問題,PyTorch 也在原有的基礎上整合了為生產環境設計的 Caffe2 ,不過其實際效果還有待進一步驗證。

CNTK:微軟出品,所有API均基於C++設計,因此在速度和可用性上很好。用戶基數小,學習曲線較陡,被吐槽其主要使用方式是 import keras,由於未來 Keras 將不再把重心放在支持多平台上,預計 CNTK 會受到影響。

PaddlePaddle(飛槳):百度出品,2016年開源。目前已經升級為全面的深度學習開發套件,除了核心框架,還開放了VisualDL、PARL、AutoDL、EasyDL、AI Studio等一整套的深度學習工具組件和服務平台。

除了以上的深度學習框架之外,即將開源的MegEngine也值得關注。MegEngine 架構上具體分為計算接口、圖表示、優化與編譯、運行時管理和計算內核五層。

圖片已獲授權

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

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


工欲善其事,必先利其器

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

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

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


MegEngine 還支持訓練推理一體化,既可支持研究員進行算法訓練,同時訓練得到的模型和產物是可以直接進行用於產品的推理、封裝,並且可以實現速度和精度的無損遷移,並且在部署時還可以自動刪除冗餘代碼,實現模型自動優化。

而且 MegEngine 也提供原語級別的支持,方便用戶進行模型並行設置和執行。最終,模型並行可以和數據並行模式混合使用。有了深度學習框架天生對分布式計算的支持,MegEngine 在訓練和推理效率上達到了很高的水平。

對於開發者來說,MegEngine 或許是一個不錯的嘗試。


預告:One More Thing

實際上,MegEngine 並不是曠視最新研發的產物,而是誕生於 2014 年,並經受住了諸多業務的考驗。

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

從自用走向開源,曠視意圖傳遞AI的普世價值。一直以來,人工智慧都是一個具有很強的馬太效應的產業,繁榮背後其實是靠網際網路巨頭和曠視、商湯、依圖、寒武紀等明星AI企業在支撐,而明星AI企業背後通常也是靠個別或一小群天才在支撐。少數的一流天才支撐著少數的主流AI企業,且呈現強者恆強的趨勢。另一方面,傳統廠商和中小企業卻對AI是望梅止渴,研發成本高、籠絡不到AI人才,也沒有大舉投入算法研發的決心。

因此,為了推動AI技術加速落地,2019 年曠視開始籌備將其 Brain++ 平台最核心的深度學習框架開源,還特意為 MegEngine 起了一個中文名字——天元,讓更多的開發者和企業用戶都能使用 AI 「源力」,降本增效。

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

3月25日 14:00

曠視深度學習框架將在線上舉辦開源發布會

同時開原始碼也將發布於 GitHub 和 OpenI

想嘗試深度學習算法研發的小夥伴不能錯過!

掃碼加入交流群

提前報名參加直播發布會

關鍵字: