昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

華為雲開發者社群發表於2022-03-09
摘要:本文帶大家快速瀏覽昇思MindSpore全場景AI框架1.6版本的關鍵特性。

全新的昇思MindSpore全場景AI框架1.6版本已釋出,此版本中昇思MindSpore全場景AI框架易用性不斷改進,提升了開發效率,控制流效能提升並支援副作用訓練,與此同時,昇思MindSpore全場景AI框架釋出高效易用的圖學習框架昇思MindSpore Graph Learning,高效能可擴充套件的強化學習計算框架昇思MindSpore Reinforcement,提供支援第三方框架模型遷移工具,讓使用者即時體驗的開發套件昇思MindSpore Dev ToolKit,同時升級自定義運算元能力支援高效新增運算元,豐富MindQuantum量子模組支援可快速上手,持續提升框架的訓練與推理效能,下面就帶大家快速瀏覽昇思MindSpore全場景AI框架1.6版本的關鍵特性。

一、服務開發者,改進易用性提升開發效率

針對開發者訴求,昇思MindSpore全場景AI框架與開發者開展了系統、深入的交流,組織一系列使用者調研和訪談,對開發者反饋較多的API問題進行整改優化,並打造系列教程,幫助開發者上手;同時,昇思MindSpore全場景AI框架積極吸納開發者參與內容建設,累計吸引142名外部開發者貢獻610+技術乾貨案例,覆蓋安裝、開發調優等關鍵場景,為開發者提供經驗指導。

在除錯、調優等功能特性上,昇思MindSpore全場景AI框架進行了系統的改進,幫助開發者提升開發效率:

  • 在功能除錯方面,支援靜態圖模式的問題程式碼堆疊列印、優化錯誤描述提升報錯準確性,為使用者提供更好的問題處理體驗。
  • 昇思MindSpore Insight提供叢集效能資料一鍵收集、並行策略分析、圖碼聯動視覺化調優等功能,提升開發者效能和精度調優效率。
  • 在ModelZoo模型方面,提供300+線上線下一致、覆蓋CV/NLP/推薦等領域、支援跨平臺部署的模型,並滿足人工智慧計算中心、金融、製造、終端等行業需求。基於新版本高效語法,重構Yolo v5等ModelZoo模型,為開發者提供昇思MindSpore全場景AI框架模型最佳實踐。

二、控制流支援副作用訓練,持續優化效能

在之前釋出的昇思MindSpore全場景AI框架版本中,控制流訓練場景下存在複製子圖的問題,該問題會導致執行網路效能變差、副作用訓練場景結果不對等問題。最新的昇思MindSpore全場景AI框架1.6.1版本,我們對控制流的IR表達設計進行了重構,消除了不必要的圖複製,對控制流場景下各方面進行了較大的優化。

1.支援訓練場景使用Assign等副作用運算元。

2.優化控制流子圖數量,反向網路可直接複用正向圖運算元結果,不需要重複計算正向圖,提升了執行效能和編譯效能。

例如:AirNet網路子圖數量由原來的162個降低至46個,減少了大量冗餘計算,執行效能由12.3s/epoch優化至5.8s/epoch。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

AirNet網路優化前後子圖數量與執行效能對比

BFGS網路子圖數量由原來的3236個降低至91個,執行效能由4.9s/epoch優化至0.6s/epoch。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

BFGS網路優化前後子圖數量與執行效能對比

3.支援資料無依賴子圖並行執行,同時優化了空子圖執行流程,整體上提升控制流場景執行效能。

例如:Mappo(Agent3)網路優化前後子圖數量無變化,但是由於我們優化了無資料依賴的子圖的並行執行能力和空子圖執行過程,網路最終執行效能由2.5s/epoch提升至1.8s/epoch。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

Mappo(Agent3)網路優化前後子圖數量與執行效能對比

三、昇思MindSpore Graph Learning:公式即程式碼,訓練加速3到4倍

圖資料能自然表達真實世界物件之間的關係,表徵能力和可解釋性強,圖學習也逐步廣泛應用於電商推薦、金融風控、藥物分子分析和控制優化等場景,圖關係大都錯綜複雜,資料規模較大,通常有數十億點,數百億邊,點邊型別有幾百種,圖神經網路計算更加複雜耗時,因此迫切需要高效的圖神經網路系統。同時,GNN演算法的快速發展,需要易用的系統允許自由擴充套件。

昇思MindSpore Graph Learning是由James Cheng課題組(香港中文大學)、華為昇思MindSpore團隊聯合研發的圖學習框架,具有高效性、易用性等特點。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

3.1 易用性:公式即程式碼

通過創新性的提出以節點為中心的程式設計正規化,相較於訊息傳遞正規化,更貼近GNN演算法邏輯和Python語言風格,昇思MindSpore Graph Learning可以做到公式到程式碼的直接對映,如下圖GAT網路程式碼所示。基於此,使用者無需進行任何函式封裝,即可快速直接地實現自定義的GNN演算法/操作。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

3.2 高效性:訓練加速3到4倍

基於昇思MindSpore全場景AI框架的圖算融合和自動運算元編譯技術(AKG)特性,創新提出基於索引的非規則記憶體訪問運算元融合,自動識別GNN模型執行任務特有執行pattern並進行融合和kernel level優化。相較於其他框架對常用運算元進行定製優化的方案更加靈活,更具擴充套件性,能夠覆蓋現有框架中已有的運算元和新組合運算元的融合優化。以昇思MindSpore全場景AI框架作為後端,昇思MindSpore Graph Learning能使GNN網路訓練獲得3到4倍的效能加速。

3.3 豐富性:覆蓋業界典型圖學習網路

框架中已經自帶實現十三種圖網路學習模型,涵蓋同構圖、異構圖、 隨機遊走等型別的應用網路。

詳情請參考這裡

四、高效能可擴充套件的強化學習計算框架:昇思MindSpore Reinforcement

強化學習(RL)是近年來AI領域的研究熱點之一,伴隨昇思MindSpore全場景AI框架 1.6版本推出了獨立的強化學習計算框架昇思MindSpore Reinforcement,通過框架中的Python 程式設計API以及演算法與執行分離的設計使其具有易程式設計,可擴充套件等特點,期望帶給使用者一個全新的開發體驗。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

在昇思MindSpore Reinforcement 0.2版本中提供了一套面向強化學習領域的Python程式設計API,例如Actor用於環境互動獲得獎勵,Learner學習並更新策略,以及Trainer用於控制演算法邏輯等抽象,使整個演算法結構更加清晰、簡潔,有助於高效的演算法開發和模組複用;另外在倉庫中內建了一些經典的強化學習演算法,如DQN、PPO等(後續版本中將會持續更新),使用者可直接執行其中的演算法,或者基於Python API開發新的單智慧體以及多智慧體強化學習演算法。

昇思MindSpore Reinforcement在架構設計上採用了演算法表達和編譯執行分離的設計思路,使用者僅需要專注於強化學習演算法邏輯的Python實現,依託於昇思MindSpore全場景AI框架強大的編譯優化以及多硬體異構加速能力,可以實現強化學習演算法的多硬體協同計算加速。

在計算裝置上,昇思MindSpore Reinforcement支援包括Ascend、GPU、CPU在內的多硬體計算,當前0.2版本已支援單機訓練,後續版本將提供更強大的多智慧體分散式訓練能力,以及更加豐富的特性支援,敬請大家持續關注。

檢視文件:

五、自定義運算元能力全面升級,統一Custom介面幫助使用者高效新增運算元

隨著AI模型的迭代,昇思MindSpore全場景AI框架內建的靜態的運算元庫可能無法滿足使用者的需求,之前版本的昇思MindSpore全場景AI框架的自定義運算元功能也存在著平臺覆蓋不到位,開發過程繁瑣及第三方運算元接入困難的問題。為了提供更好的自定義運算元體驗,昇思MindSpore全場景AI框架1.6版本全面升級了自定義運算元的能力,提供支撐包括Ascend,GPU和CPU在內的多平臺的統一運算元開發介面Custom,幫助使用者在昇思MindSpore全場景AI框架方便快捷地進行不同型別自定義運算元的定義和使用,可以滿足包括快速驗證,實時編譯和第三方運算元接入等不同場景下的使用者需求。

檢視文件:

5.1 多場景、多平臺的統一運算元開發介面

昇思MindSpore全場景AI框架1.6版本提供統一的運算元開發介面Custom,實現了不同方式自定義運算元的介面和使用統一。其提供的模式包括基於JIT編譯的運算元編譯器開發模式、針對極致效能的aot模式和針對快速驗證的pyfunc模式,方便網路開發者根據需要靈活選用不同的自定義方式。

此外統一的運算元開發介面整合了當前昇思MindSpore全場景AI框架支援的不同平臺,包括Ascend,GPU和CPU,以及新增的AICPU平臺,減少了使用者針對不同平臺運算元開發的學習成本。

5.2 自定義運算元一鍵接入,方便快捷

昇思MindSpore全場景AI框架1.6版本提供的自定義運算元可以幫助使用者在昇思MindSpore全場景AI框架的Python端快速的定義運算元,把運算元作為網路表達的一部分,無需對昇思MindSpore全場景AI框架進行侵入式修改和重新編譯。此外提供了自動生成註冊資訊的能力,實現自定義運算元一鍵接入網路,極大的簡化了自定義運算元的開發流程。使用者在使用時完全不感知框架相關的設定,讓使用者更加關注計算本身。

5.3 新的自定義運算元型別支援:AICPU

昇思MindSpore全場景AI框架1.6版本新增了AICPU型別運算元的支援,該類運算元對應的硬體架構為ARM架構,採用aot模式編譯,可以快捷地部署到主流嵌入式平臺上。AICPU運算元相對於TBE運算元,擅長邏輯類操作,採用C/C++開發,類似於CPU運算元開發,對於一些難以向量化的運算元,有較大的效能收益。

檢視文件:

六、模型遷移工具MindConverter:支援第三方框架模型的一鍵遷移

從第三方框架切換到昇思MindSpore全場景AI框架,如果不能複用原框架的存量主流模型,則需要重新編寫模型訓練指令碼,並花費周級甚至月級的時間進行重訓。目前大量開源模型基於PyTorch/TensorFlow實現,如果想基於昇思MindSpore全場景AI框架進行研究,則可能因為預訓練資料無法獲取或者訓練資源有限,難以在昇思MindSpore全場景AI框架下復現模型。

在昇思MindSpore全場景AI框架1.6版本中提供的模型遷移工具MindConverter,可以幫助使用者快速實現第三方框架主流模型的一鍵遷移。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

工具採用了主流AI框架IR到昇思MindSpore IR的轉換方案,轉換後的模型可推理可重訓,模型指令碼可讀性較好。模型遷移工具支援以下兩種轉換方式:

6.1 基於ONNX IR轉換

ONNX是一種開放式模型定義格式,業界主流AI框架均已支援將模型匯出為ONNX格式。藉助ONNX通用性,模型遷移工具可實現多種AI框架到昇思MindSpore全場景AI框架的轉換。已驗證支援ResNet系列、RegNet系列,HRNet系列,DeepLabV3系列,YOLO系列等模型。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

如上圖所示,將第三方框架模型匯出成ONNX格式,然後使用模型遷移工具,對映轉換成昇思MindSpore全場景AI框架模型。

6.2 基於TorchScript IR轉換

TorchScript是PyTorch模型的中間表達,藉助 TorchScript IR 的泛化性,模型遷移工具可覆蓋絕大部分的PyTorch模型。已驗證支援HuggingFace Transformer預訓練模型200+個。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

如上圖所示,將PyTorch框架模型轉換成TorchScript計算圖,然後使用模型遷移工具,對映轉換成昇思MindSpore全場景AI框架模型。

更多可支援轉換的模型,有待使用者發現與驗證。使用模型遷移工具時如有問題,請參考官網的使用手冊,也歡迎在開源社群中進行反饋。

使用手冊:

開源社群:

七、使能使用者即時體驗的開發套件昇思MindSpore Dev ToolKit

昇思MindSpore全場景AI框架功能豐富且強大,如何一鍵上手,快速試用?由昇思MindSpore團隊推出的昇思MindSpore Dev ToolKit開發套件包含執行管理,智慧知識搜尋與智慧程式碼補全功能,致力於讓所有使用者絲滑地擺脫環境干擾,學習人工智慧,讓人工智慧迴歸演算法本身。

7.1 一鍵環境管理,5分鐘完成環境搭建上手昇思MindSpore全場景AI框架實踐

基於Conda提供科學的昇思MindSpore全場景AI框架環境管理方式,能快速將昇思MindSpore全場景AI框架及依賴安裝在獨立環境中並部署最佳實踐。該能力相容Ascend、GPU、CPU多平臺,隱蔽不同環境適配的繁瑣細節,讓使用者在開啟IDE後一鍵執行AI演算法。最快能在5分鐘內體驗用昇思MindSpore全場景AI框架學AI的樂趣,內測資料顯示80%的AI零基礎使用者使用該功能可在20分鐘內完成環境配置與演算法執行。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

7.2 沉浸式昇思MindSpore全場景AI框架生態知識智慧搜尋,使用者零壓力接入昇思MindSpore生態

基於語義搜尋等能力,在Dev Toolkit內提供全面的昇思MindSpore全場景AI框架知識內容檢索,對運算元而言,PyTorch/TensorFlow框架使用者只需在IDE內查詢相應運算元,即可快速準確找到昇思MindSpore全場景AI框架中的對應實現並獲得詳細文件支援,從而無壓力切換到昇思MindSpore全場景AI框架生態中。

7.3 基於深度學習的智慧程式碼補全,單模型開發鍵盤敲擊次數可減少30%

Dev Toolkit基於昇思MindSpore ModelZoo等最佳實踐資料集構造的智慧程式碼補全模型實現的智慧程式碼補全功能,讓使用者在編寫昇思MindSpore全場景AI框架相關程式碼時獲取實時提示,補全達80%的高準確性將加速使用者編碼,目前內測資料顯示編碼時鍵盤敲擊次數可減少30%以上。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

 

詳情參考:

八、昇思MindSpore Lite持續提升推理效能

8.1 通過異構並行技術,深度挖掘硬體算力提升推理效能

此版本中,昇思MindSpore Lite新增異構並行功能,該功能感知異構硬體能力,使能多個底層硬體並行執行推理,最大限度利用端側有限的硬體資源,提升推理效率。

異構並行功能會在構圖階段,根據異構硬體的能力進行構圖操作。構圖操作分為切分運算元與構造異構圖兩部分。切分運算元會將原本不適合異構並行的模型重構成適合異構並行的,且並行分支的運算量能夠嚴格匹配異構硬體的執行能力。構造異構圖操作會根據模型現有的圖結構進行並行子圖搜尋,最終確定異構並行圖。構圖的整體解決方案不侷限於模型原始結構,使得異構並行可以應用於泛化模型。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

昇思MindSpore Lite在當前版本實現了GPU與CPU的異構並行,使用Mobilenet-V1網路實測驗證,有5%左右的效能提升。

8.2 優化GPU推理效能,支援將OpenGL紋理資料作為輸入和輸出資料

此版本中,昇思MindSpore Lite支援將OpenGL紋理資料作為推理模型的輸入,推理輸出結果也為OpenGL紋理,實現端到端推理過程中,減少CPU和GPU間的資料拷貝,從而達到提升推理效能降低功耗的目的;相比上一版本,能夠減少四次裝置間的記憶體拷貝,示意如下圖:

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

檢視文件:

九、MindQuantum:快速上手量子模擬與量子機器學習

MindQuantum 最新0.5版本中提供獨立的量子模擬模組Simulator,使用者可快速對自定義量子線路進行模擬演化並對量子態進行取樣,極大方便開發者在MindQuantum環境中設計和驗證自己的量子演算法。此外我們新增了量子線路和量子態取樣的展示模組,開發者也能直觀的對量子演算法進行修改。

新增量子線路繪製功能演示如下:

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

新增模擬器模組及其線路取樣功能演示如下:

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

此版本的第二大特性是新增了多種量子神經網路運算元,開發者根據這些運算元可以快速開發量子經典混合的機器學習模型,助力量子人工智慧演算法突破。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

檢視文件:

十、昇思MindSpore Science蛋白質結構預測效能提升2-3倍

昇思MindSpore Science開源了基於AlphaFold2【1】演算法的蛋白質結構預測推理工具,該預測推理工具由昇思MindSpore【2】團隊、昌平實驗室、北京大學生物醫學前沿創新中心(BIOPIC)和化學與分子工程學院、深圳灣實驗室高毅勤教授課題組聯合推出,MindSpore + Ascend910 單卡端到端效能優於原版AlphaFold2達2-3倍。

傳統的藥物設計研發週期長、費用高,而瞭解蛋白質的空間結構後可大幅縮短研發週期。因此,準確、快速的蛋白質結構預測不僅可以快速獲得或驗證關鍵蛋白結構,而且在醫療健康和生物工程領域也能作為有力的工具。但傳統蛋白質結構預測方法存在計算精度不足的缺陷,而AlphaFold2的蛋白質結構預測工具精度可與實驗方法相媲美。

該工具可對氨基酸序列長度2000+的蛋白質結構解析,能覆蓋約99%以上的蛋白序列【3】。其中模型部分與AlphaFold2相同,在多序列比對階段,採用了MMseqs2進行序列檢索【4】,相比於原版演算法端到端運算速度有2-3倍的提升。

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

圖1 昇思MindSpore全場景AI框架模型與AlphaFold2精度對比

昇思MindSpore全場景AI框架 1.6版本,更高的開發效率,更好地服務開發者

圖2 通過昇思MindSpore全場景AI框架預測的T1079

針對蛋白質結構預測及摺疊問題,聯合團隊未來還會發布創新的全棧(演算法+軟體+硬體)敬請期待。

詳情請參考:

參考文獻

【1】Jumper J, Evans R, Pritzel A, et al. Applying and improving AlphaFold at CASP14[J]. Proteins: Structure, Function, and Bioinformatics, 2021

【2】Chen L. Deep Learning and Practice with MindSpore[M]. Springer Nature, 2021.

【3】

【4】Mirdita M, Ovchinnikov S, Steinegger M. ColabFold-Making protein folding accessible to all[J]. BioRxiv, 2021.

 

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章