全新的昇思MindSpore全場景AI框架1.6版本已發布。
此版本中昇思MindSpore全場景AI框架易用性不斷改進,提升了開發效率,控制流性能提升并支持副作用訓練,與此同時,昇思MindSpore全場景AI框架發布高效易用的圖學習框架昇思MindSpore Graph Learning,高性能可擴展的強化學習計算框架昇思MindSpore Reinforcement,提供支持第三方框架模型遷移工具,讓用戶即時體驗的開發套件昇思MindSpore Dev ToolKit,同時升級自定義算子能力支持高效添加算子,豐富MindSpore Quantum量子模塊支持可快速上手,持續提升框架的訓練與推理性能。
下面就帶大家快速瀏覽昇思MindSpore全場景AI框架1.6版本的關鍵特性。
1. 服務開發者
改進易用性提升開發效率
一系列用戶調研和訪談,對開發者反饋較多的API問題進行整改優化,并打造系列教程,幫助開發者上手;同時,昇思MindSpore全場景AI框架積極吸納開發者參與內容建設,累計吸引142名外部開發者貢獻610+技術干貨案例,覆蓋安裝、開發調優等關鍵場景,為開發者提供經驗指導。
在調試、調優等功能特性上,昇思MindSpore全場景AI框架進行了系統的改進,幫助開發者提升開發效率:
在功能調試方面,支持靜態圖模式的問題代碼堆棧打印、優化錯誤描述提升報錯準確性,為用戶提供更好的問題處理體驗。
昇思MindSpore Insight提供集群性能數據一鍵收集、并行策略分析、圖碼聯動可視化調優等功能,提升開發者性能和精度調優效率。
在ModelZoo模型方面,提供300+線上線下一致、覆蓋CV/NLP/推薦等領域、支持跨平臺部署的模型,并滿足人工智能計算中心、金融、制造、終端等行業需求。基于新版本高效語法,重構Yolo v5等ModelZoo模型,為開發者提供昇思MindSpore全場景AI框架模型最佳實踐。
2. 控制流支持副作用訓練
持續優化性能
在之前發布的昇思MindSpore全場景AI框架版本中,控制流訓練場景下存在復制子圖的問題,該問題會導致執行網絡性能變差、副作用訓練場景結果不對等問題。最新的昇思MindSpore全場景AI框架1.6.1版本,我們對控制流的IR表達設計進行了重構,消除了不必要的圖復制,對控制流場景下各方面進行了較大的優化。
1. 支持訓練場景使用Assign等副作用算子。
2. 優化控制流子圖數量,反向網絡可直接復用正向圖算子結果,不需要重復計算正向圖,提升了執行性能和編譯性能。
例如:AirNet網絡子圖數量由原來的162個降低至46個,減少了大量冗余計算,執行性能由12.3s/epoch優化至5.8s/epoch。
AirNet網絡優化前后子圖數量與執行性能對比
BFGS網絡子圖數量由原來的3236個降低至91個,執行性能由4.9s/epoch優化至0.6s/epoch。
BFGS網絡優化前后子圖數量與執行性能對比
3. 支持數據無依賴子圖并行執行,同時優化了空子圖執行流程,整體上提升控制流場景執行性能。
例如:Mappo(Agent3)網絡優化前后子圖數量無變化,但是由于我們優化了無數據依賴的子圖的并行執行能力和空子圖執行過程,網絡最終執行性能由2.5s/epoch提升至1.8s/epoch。
Mappo(Agent3)網絡優化前后子圖數量與執行性能對比
3. 昇思MindSpore Graph Learning:
公式即代碼,訓練加速3到4倍
圖數據能自然表達真實世界對象之間的關系,表征能力和可解釋性強,圖學習也逐步廣泛應用于電商推薦、金融風控、藥物分子分析和控制優化等場景,圖關系大都錯綜復雜,數據規模較大,通常有數十億點,數百億邊,點邊類型有幾百種,圖神經網絡計算更加復雜耗時,因此迫切需要高效的圖神經網絡系統。同時,GNN算法的快速發展,需要易用的系統允許自由擴展。
昇思MindSpore Graph Learning是由James Cheng課題組(香港中文大學)、華為昇思MindSpore團隊聯合研發的圖學習框架,具有高效性、易用性等特點。
3.1易用性:公式即代碼
通過創新性的提出以節點為中心的編程范式,相較于消息傳遞范式,更貼近GNN算法邏輯和Python語言風格,昇思MindSpore Graph Learning可以做到公式到代碼的直接映射,如下圖GAT網絡代碼所示。基于此,用戶無需進行任何函數封裝,即可快速直接地實現自定義的GNN算法/操作。
3.2高效性:訓練加速3到4倍
基于昇思MindSpore全場景AI框架的圖算融合和自動算子編譯技術(AKG)特性,創新提出基于索引的非規則內存訪問算子融合,自動識別GNN模型運行任務特有執行pattern并進行融合和kernel level優化。相較于其他框架對常用算子進行定制優化的方案更加靈活,更具擴展性,能夠覆蓋現有框架中已有的算子和新組合算子的融合優化。
以昇思MindSpore全場景AI框架作為后端,昇思MindSpore Graph Learning能使GNN網絡訓練獲得3到4倍的性能加速。
3.3豐富性:覆蓋業界典型圖學習網絡
框架中已經自帶實現十三種圖網絡學習模型,涵蓋同構圖、異構圖、 隨機游走等類型的應用網絡。
4. 高性能可擴展的強化學習計算框架:
昇思MindSpore Reinforcement
強化學習(RL)是近年來AI領域的研究熱點之一,伴隨昇思MindSpore全場景AI框架 1.6版本推出了獨立的強化學習計算框架昇思MindSpore Reinforcement,通過框架中的Python 編程API以及算法與執行分離的設計使其具有易編程,可擴展等特點,期望帶給用戶一個全新的開發體驗。
在昇思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版本已支持單機訓練,后續版本將提供更強大的多智能體分布式訓練能力,以及更加豐富的特性支持,敬請大家持續關注。
5. 自定義算子能力全面升級
統一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算子開發,對于一些難以向量化的算子,有較大的性能收益。
6. 模型遷移工具MindConverter:
支持第三方框架模型的一鍵遷移
從第三方框架切換到昇思MindSpore全場景AI框架,如果不能復用原框架的存量主流模型,則需要重新編寫模型訓練腳本,并花費周級甚至月級的時間進行重訓。
目前大量開源模型基于PyTorch/TensorFlow實現,如果想基于昇思MindSpore全場景AI框架進行研究,則可能因為預訓練數據無法獲取或者訓練資源有限,難以在昇思MindSpore全場景AI框架下復現模型。
在昇思MindSpore全場景AI框架1.6版本中提供的模型遷移工具MindConverter,可以幫助用戶快速實現第三方框架主流模型的一鍵遷移。
工具采用了主流AI框架IR到昇思MindSpore IR的轉換方案,轉換后的模型可推理可重訓,模型腳本可讀性較好。模型遷移工具支持以下兩種轉換方式:
6.1基于ONNX IR轉換
ONNX是一種開放式模型定義格式,業界主流AI框架均已支持將模型導出為ONNX格式。借助ONNX通用性,模型遷移工具可實現多種AI框架到昇思MindSpore全場景AI框架的轉換。
已驗證支持ResNet系列、RegNet系列,HRNet系列,DeepLabV3系列,YOLO系列等模型。
如上圖所示,將第三方框架模型導出成ONNX格式,然后使用模型遷移工具,映射轉換成昇思MindSpore全場景AI框架模型。
6.2基于TorchScript IR轉換
TorchScript是PyTorch模型的中間表達,借助 TorchScript IR 的泛化性,模型遷移工具可覆蓋絕大部分的PyTorch模型。已驗證支持HuggingFace Transformer預訓練模型200+個。
如上圖所示,將PyTorch框架模型轉換成TorchScript計算圖,然后使用模型遷移工具,映射轉換成昇思MindSpore全場景AI框架模型。
更多可支持轉換的模型,有待用戶發現與驗證。使用模型遷移工具時如有問題,請參考官網的使用手冊,也歡迎在開源社區中進行反饋。
7. 使能用戶即時體驗的開發套件
昇思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分鐘內完成環境配置與算法運行。
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%以上。
8. 昇思MindSpore Lite
持續提升推理性能
8.1 通過異構并行技術,深度挖掘硬件算力提升推理性能
此版本中,昇思MindSpore Lite新增異構并行功能,該功能感知異構硬件能力,使能多個底層硬件并行執行推理,最大限度利用端側有限的硬件資源,提升推理效率。
異構并行功能會在構圖階段,根據異構硬件的能力進行構圖操作。構圖操作分為切分算子與構造異構圖兩部分。切分算子會將原本不適合異構并行的模型重構成適合異構并行的,且并行分支的運算量能夠嚴格匹配異構硬件的執行能力。構造異構圖操作會根據模型現有的圖結構進行并行子圖搜索,最終確定異構并行圖。構圖的整體解決方案不局限于模型原始結構,使得異構并行可以應用于泛化模型。
昇思MindSpore Lite在當前版本實現了GPU與CPU的異構并行,使用Mobilenet-V1網絡實測驗證,有5%左右的性能提升。
8.2 優化GPU推理性能,支持將OpenGL紋理數據作為輸入和輸出數據
此版本中,昇思MindSpore Lite支持將OpenGL紋理數據作為推理模型的輸入,推理輸出結果也為OpenGL紋理,實現端到端推理過程中,減少CPU和GPU間的數據拷貝,從而達到提升推理性能降低功耗的目的;相比上一版本,能夠減少四次設備間的內存拷貝,示意如下圖:
9. MindSpore Quantum:
MindSpore Quantum 最新0.5版本中提供獨立的量子模擬模塊Simulator,用戶可快速對自定義量子線路進行模擬演化并對量子態進行采樣,極大方便開發者在MindSpore Quantum環境中設計和驗證自己的量子算法。此外我們新增了量子線路和量子態采樣的展示模塊,開發者也能直觀的對量子算法進行修改。
新增量子線路繪制功能演示如下:
新增模擬器模塊及其線路采樣功能演示如下:
此版本的第二大特性是新增了多種量子神經網絡算子,開發者根據這些算子可以快速開發量子經典混合的機器學習模型,助力量子人工智能算法突破。
10. 昇思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倍的提升。
圖1 昇思MindSpore全場景AI框架模型與AlphaFold2精度對比
圖2 通過昇思MindSpore全場景AI框架預測的T1079
針對蛋白質結構預測及折疊問題,聯合團隊未來還會發布創新的全棧(算法+軟件+硬件)敬請期待。
原文標題:昇思MindSpore全場景AI框架 1.6版本
文章出處:【微信公眾號:華為計算】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
數據
+關注
關注
8文章
7139瀏覽量
89574 -
軟件
+關注
關注
69文章
5009瀏覽量
88067 -
AI
+關注
關注
87文章
31513瀏覽量
270328
原文標題:昇思MindSpore全場景AI框架 1.6版本
文章出處:【微信號:gh_3a181fa836b6,微信公眾號:華為計算】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論