Categories
程式開發

曠視開源深度學習框架天元MegEngine:與TensorFlow思路一致,訓練推理一體


北京時間2020年3月25日,AI獨角獸曠視科技宣布開源其AI生產力平台Brain++的核心組件 — 深度學習框架天元(MegEngine)。 InfoQ有幸對曠視研究院院長孫劍、曠視雲服務業務資深副總裁趙立威、曠視研究院高級技術總監田忠博等專家進行了採訪,技術細節、關鍵特性、開源信息…有關天元的一切,本文一“網”打盡。

MegEngine開源,四大特性實現“簡單開發”

據了解,MegEngine的中文名有多重寓意,“天元”在圍棋中指棋盤的正中心,在古代天文學中指代北極星,是萬物本源和開始,因此,命名“天元”既代表MegEngine 是曠視技術戰略大圖的最核心的佈局,又表達了成為開發者基石的希望。

發布會上,天元項目的負責人,曠視研究院高級技術總監田忠博對天元MegEngine深度學習框架作了詳細介紹。

天元是一套訓練推理一體化、動靜態合一的工業級深度學習框架,架構上具體包括5層:

如下圖所示:

曠視開源深度學習框架天元MegEngine:與TensorFlow思路一致,訓練推理一體 1

最上層是計算接口層,它向外暴露了Python和C++接口,可通過這兩種語言對整個框架進行使用和編程,進行原型系統的設計和研發、進行訓練和推理。下面一層是圖的表示層,包含了動態圖和靜態圖的表示功能。再下面是一個完整的、一體化的核心計算圖,它包括一個自動的求導機制、做圖優化和圖編譯整個功能,由這一個層次就可以支撐起動態圖、靜態圖和接口的完整的功能。

在這個層次之下,它有兩個主要的部分,一個部分是運行時的管理。運行時的管理:曠視會把整個計算設備抽象為執行流,由調度器對這些執行流進行合理的調度;同時曠視還有一整套的內存管理機制,包括靜態內存的管理和動態內存管理。這個模塊里內置了許多關於內存的高級優化,其中值得一提的是,在裡面實現了靜態的亞線性內存的優化器,它能夠使得整個內存管理效率得到非常高的提升。

在最底層是支撐整個系統核心的計算內核層,在這裡面有一個高性能的算子庫,支持常見的一系列計算設備,比如X86、CUDA、ARM以及專業計算芯片等。在第一階段開源中,會首先把X86和CUDA的部分釋放出來,後續會逐步把其他計算設備的支持一步步釋放出來。同時在這個層次中,還包含一個高性能的異構通信庫,能夠使得整個計算框架可以在分佈式多結點上進行大規模的使用,來支撐更大規模的訓練。

天元框架具備四大特性,這些特性主要針對解決現實研發過程中遇到的痛點而設計。

一、訓練推理一體化:

瞄準痛點:從研究到生產,流程複雜,精度難以對齊

天元(MegEngine) 支持多種硬件平台( CPU,GPU,ARM )。不同硬件上的推理框架和 MegEngine 的訓練框架無縫銜接。部署時無需做額外的模型轉換,速度/精度和訓練保持一致,有效解決 AI 落地中“部署環境和訓練環境不同,部署難”的問題。

曠視開源深度學習框架天元MegEngine:與TensorFlow思路一致,訓練推理一體 2

二、動靜合一:

瞄準痛點:靜態圖好部署,動態圖易調試,但兩者難以兼得

動態圖易調試,靜態圖好部署。魚和熊掌如何兼得,是現代深度學習框架的核心訴求。天元(MegEngine)在靜態圖的基礎上,逐漸加入支持完整動態圖的功能。在動態模式下加速研發過程,無需改變模型代碼一鍵切換至靜態模式下的部署,為科研和算法工程師同時提供便利。

曠視開源深度學習框架天元MegEngine:與TensorFlow思路一致,訓練推理一體 3

三、兼容並包

瞄準痛點:框架學習接口各異,模型複現困難,學習成本高

天元(MegEngine) 的頂層 API 基於 Python,採取了類似於 PyTorch 的風格。簡單直接,易於上手,便於現有項目進行移植或整合。為更好地幫助學習實踐,天元(MegEngine)同時提供了“開箱即用”的在線深度學習工具 MegStudio ,和匯聚了頂尖算法和模型的預訓練模型集合 Model Hub
曠視開源深度學習框架天元MegEngine:與TensorFlow思路一致,訓練推理一體 4

四、靈活高效:

瞄準痛點:生產環境計算設備繁多,缺乏優秀性能

天元(MegEngine)底層的高性能算子庫對於不同的硬件架構進行了深度適配和優化,並提供高效的亞線性內存優化策略,支持自動 Sublinear 內存優化。對於生產環境繁多的計算設備提供了極致的性能保證。高效易用的分佈式訓練實能有效支持富有彈性的大規模訓練。
曠視開源深度學習框架天元MegEngine:與TensorFlow思路一致,訓練推理一體 5

天元最大的特點是能做到“簡單開發”,幫助開發者解決行業共通的研發痛點,並讓他們切實體驗到,“訓得好”、“訓得動”、“訓得快”。

田忠博介紹了天元(MegEngine) 的開源路線圖:3月份發布開源的第一個版本Alpha版本,該版本包括團隊前期整理的很多代碼和一些關鍵步驟。他表示,在這個過程中,希望開發者能夠對天元提出批評、給出建議、貢獻code。

“也許下一代天元並不是由曠視的研發團隊做出來的,而是與你一起共創出來的Beta和正式版本,所以我們也希望跟大家一起來共建更好的深度學習框架”,曠視聯合創始人、CTO唐文斌表示。

按照計劃,曠視將在6月發布程碑版本Beta版本,該版本將全面提供關於ARM系列CPU的支持能力,引入更多加速設備支持,提供量化和低比特計算支持功能,使大家能基於天元框架,進行先進的嵌入式研發。

正式版本預計將在9月份發布,它將提供更加全面的主流設備支持,優化訓練推理全流程使用體驗,並進行動態計算能力升級,在核心功能和關鍵部件架構上都能達到穩定運作狀態。

曠視開源深度學習框架天元MegEngine:與TensorFlow思路一致,訓練推理一體 6

3月25日,天元(MegEngine)會在GitHub和國內新一代人工智能開源開放平台OpenI上同步開源。這次開源的代碼約35萬行左右,使用的編程語言包括C++、CUDA、Python等。

現在進入天元官網 http://megengine.org.cn/ 可直接上手體驗天元框架。

天元開源之後,Brain++能力也將逐步開放

曠視的天元(MegEngine)深度學習框架已經經過了6年的打磨。

2014年初,曠視研究院的三位實習生花了半年時間基本完成了第一代深度學習框架天元(MegEngine)的研發,緊接著利用半年時間完成了自研框架與公司內部所有業務的接軌。

2015年11月,Google發布並開源TensorFlow的消息在技術圈引發轟動。曠視技術人員驚奇的發現,TensorFlow與天元(MegEngine)的設計思路竟是一樣的,都是基於計算圖的方式做的。 TensorFlow領先一步開源已博得巨大關注度,天元(MegEngine)很可能就沒有繼續存在的必要了。

在與Te​​nsorFlow進行評測對比後,曠視研究人員發現,TensorFlow性能並不十分理想,剛發出來的開源軟件還很不完善,且在計算效率上,天元(MegEngine)要優於TensorFlow。因此,曠視決定繼續走自研框架的路線。

現階段,曠視有1400多研發人員,全員使用這個框架訓練和部署算法,在上百個產品、幾十種計算平台上使用,這個框架對於新手開發者也很容易上手。

到目前為止,天元(MegEngine)的版本已經迭代到了8.0階段,技術成熟度較高,開源也水到渠成提上日程表。這次為了開源,曠視從2019年開始做了大量的準備工作,包括對框架增加新特性等針對性的全面升級。

曠視副總裁謝憶楠表示,開源天元(MegEngine)主要有2個原因,內因是,曠視最開始做Face++,從算法起家,並往行業性的解決方案深耕,現在開源框架本質上又回到了探索算法層面。

另一方面,曠視看到了2個無限性,一是場景的無限性,二是算法的無限性,開源框架是實施這個長期戰略的一個關鍵過程,去年初曠視發布了河圖AIoT操作系統,佈局智慧供應鏈,旨在解決場景無限性,而現在天元(MegEngine)開源則對應算法的無限性。

“現在開源是一個非常好的時機”,曠視雲服務業務資深副總裁趙立威強調曠視天元(MegEngine)開源的另一個重要原因是為滿足市場需求。

曠視看到,現在很多企業進行AI+轉型或者希望AI為自己賦能,AI正在變成一種新的生產力,但部署AI的門檻很高,很多企業並沒有很強的AI技術積累和能力,實操過程中還會遇到很多挑戰。天元(MegEngine)經過多年參與業務實踐打磨,其所具備的AI能力正是這些企業和開發者所需要的,因此,曠視決定將其開源出來,為高校師生、傳統產業和中小企業的AI開發者提供服務。

算法生產需要一個大平台,除了需要框架進行算法的訓練和推理,還要有算力和數據的支持。在與企業進行合作時,曠視將為企業提供數據、算法和算力的全面支持。即“三位一體”的人工智能算法平台,它包括核心組件 MegEngine,可實現從數據的抽取、清洗、標註、管理全流程管理數據管理平台 MegData,以及分佈式、彈性的算力共享平台 MegCompute。

Brain++ 被曠視定義為AI生產力平台,它的角色類似一個“算法工廠”,規模化、流程化生產AI算法,不僅提升算法生產效率,也讓算法更靠譜、更精準,有能力為場景產生真正的價值,覆蓋到從AI 生產到應用各環節去。

據悉,曠視希望通過開源、開放的方式逐步將 AI 生產力平台 Brain++ 的能力傳遞給業界廣大開發者。發布會上,曠視雲服務業務資深副總裁趙立威向業界展示了 Brain++ 商業化的全景。 “我們不僅將把深度學習框架開源使用,也將開放數據能力、算力能力給企業級種子用戶,至少能夠先讓一部分企業實現AI+。”據了解,天元已接到了一些來自製造、電信、金融行業的需求。

欲躋身主流框架,底氣在哪裡?

業界現有的主流深度學習框架多來自國外大廠,最受矚目的莫過於谷歌出品的TensorFlow 和Facebook出品的PyTorch,另外還有亞馬遜的官方深度學習框架MXNet,加州大學伯克利分校的深度學習框架Caffe等。

一直以來比較尷尬的問題是,中國的開發者對國外框架的依賴程度較高。去年7月,IDC的一項調研顯示,國內有87%的企業和開發者使用開源深度學習框架,他們所使用的深度學習框架中,谷歌和Facebook佔據了很大的市場份額。

為實現技術自立,國內一些科技大廠推出了一些自研的深度學習框架,如百度PaddlePaddle,華為的MindSpore,阿里的XDL等,但目前還沒有哪一款進階成為國內通用的主流學習框架。

天元(MegEngine)開源後,國產原創深度學習框架開源陣營又增一“強將”。

很多開發者關心的一個問題是,與已經被開發者廣泛使用的TensorFlow 、PyTorch等主流框架相比,天元(MegEngine)的差異化特質是什麼?

曠視首席科學家、曠視研究院院長曠視孫劍博士對這個問題作出了解答。 “與穀歌、Facebook等大廠不同,曠視是一家100%的AI公司,我們的深度學習框架是’生長’在曠視的核心業務上的,因此它天然具有實踐的基因,從實際問題出發,是我們自己做這個框架的初衷,天元框架結合了很多曠視在實際應用時的深度學習、人工智能落地的問題”。

這幾年,深度學習框架呈現群雄逐鹿狀態,競爭也日趨白熱化,TensorFlow 和PyTorch就經常“神仙打架”,爭當王者。但是這兩個框架又是不同的根據地,TensorFlow是工業界的名流,它採用靜態圖利於部署,更適合工業界使用;PyTorch是學術界的翹楚PyTorch,它採取動態圖靈活方便好調試適合學術研究。

天元深度學習框架則希望在工業界和學術界找到一個平衡點。天元主張兼容並包,希望為開發者提供既好調試、又好部署的方案。

天元(MegEngine)是為了工業級、研究院規模的研發機構設計的算法研發基礎的組件,它的一些核心特點設計希望兼顧算法研發和算法工程化的效率。如訓練推理一體化能將繁雜的模型生產流程簡化到一步、兩步,從而快速實現原型並進一步變成產品,它也能幫助開發者縮短縮短算法研發和部署時間、簡化流程。

為了方便開發者遷移,曠視團隊還對天元框架做了全面升級,在整個框架接口設計、接口命令方面,尊重開發者在PyTorch機器學習和數學計算的使用習慣,以讓開發者更易上手學習使用。整體而言,與市面主流深度學習框架相比,天元框架上手更快,學習和遷移成本更低。

其實,當下深度學習框架的論資排輩也不必太過較真,對於開發者來說,深度學習框架並不是非此即彼的關係,畢竟,好用、切實解決問題,才是最關鍵的。