全新的昇思MindSpore全場景AI框架1.6版本已發(fā)布。
此版本中昇思MindSpore全場景AI框架易用性不斷改進(jìn),提升了開發(fā)效率,控制流性能提升并支持副作用訓(xùn)練,與此同時,昇思MindSpore全場景AI框架發(fā)布高效易用的圖學(xué)習(xí)框架昇思MindSpore Graph Learning,高性能可擴(kuò)展的強化學(xué)習(xí)計算框架昇思MindSpore Reinforcement,提供支持第三方框架模型遷移工具,讓用戶即時體驗的開發(fā)套件昇思MindSpore Dev ToolKit,同時升級自定義算子能力支持高效添加算子,豐富MindSpore Quantum量子模塊支持可快速上手,持續(xù)提升框架的訓(xùn)練與推理性能。
下面就帶大家快速瀏覽昇思MindSpore全場景AI框架1.6版本的關(guān)鍵特性。
1. 服務(wù)開發(fā)者
改進(jìn)易用性提升開發(fā)效率
一系列用戶調(diào)研和訪談,對開發(fā)者反饋較多的API問題進(jìn)行整改優(yōu)化,并打造系列教程,幫助開發(fā)者上手;同時,昇思MindSpore全場景AI框架積極吸納開發(fā)者參與內(nèi)容建設(shè),累計吸引142名外部開發(fā)者貢獻(xiàn)610+技術(shù)干貨案例,覆蓋安裝、開發(fā)調(diào)優(yōu)等關(guān)鍵場景,為開發(fā)者提供經(jīng)驗指導(dǎo)。
在調(diào)試、調(diào)優(yōu)等功能特性上,昇思MindSpore全場景AI框架進(jìn)行了系統(tǒng)的改進(jìn),幫助開發(fā)者提升開發(fā)效率:
在功能調(diào)試方面,支持靜態(tài)圖模式的問題代碼堆棧打印、優(yōu)化錯誤描述提升報錯準(zhǔn)確性,為用戶提供更好的問題處理體驗。
昇思MindSpore Insight提供集群性能數(shù)據(jù)一鍵收集、并行策略分析、圖碼聯(lián)動可視化調(diào)優(yōu)等功能,提升開發(fā)者性能和精度調(diào)優(yōu)效率。
在ModelZoo模型方面,提供300+線上線下一致、覆蓋CV/NLP/推薦等領(lǐng)域、支持跨平臺部署的模型,并滿足人工智能計算中心、金融、制造、終端等行業(yè)需求?;谛掳姹靖咝дZ法,重構(gòu)Yolo v5等ModelZoo模型,為開發(fā)者提供昇思MindSpore全場景AI框架模型最佳實踐。
2. 控制流支持副作用訓(xùn)練
持續(xù)優(yōu)化性能
在之前發(fā)布的昇思MindSpore全場景AI框架版本中,控制流訓(xùn)練場景下存在復(fù)制子圖的問題,該問題會導(dǎo)致執(zhí)行網(wǎng)絡(luò)性能變差、副作用訓(xùn)練場景結(jié)果不對等問題。最新的昇思MindSpore全場景AI框架1.6.1版本,我們對控制流的IR表達(dá)設(shè)計進(jìn)行了重構(gòu),消除了不必要的圖復(fù)制,對控制流場景下各方面進(jìn)行了較大的優(yōu)化。
1. 支持訓(xùn)練場景使用Assign等副作用算子。
2. 優(yōu)化控制流子圖數(shù)量,反向網(wǎng)絡(luò)可直接復(fù)用正向圖算子結(jié)果,不需要重復(fù)計算正向圖,提升了執(zhí)行性能和編譯性能。
例如:AirNet網(wǎng)絡(luò)子圖數(shù)量由原來的162個降低至46個,減少了大量冗余計算,執(zhí)行性能由12.3s/epoch優(yōu)化至5.8s/epoch。
AirNet網(wǎng)絡(luò)優(yōu)化前后子圖數(shù)量與執(zhí)行性能對比
BFGS網(wǎng)絡(luò)子圖數(shù)量由原來的3236個降低至91個,執(zhí)行性能由4.9s/epoch優(yōu)化至0.6s/epoch。
BFGS網(wǎng)絡(luò)優(yōu)化前后子圖數(shù)量與執(zhí)行性能對比
3. 支持?jǐn)?shù)據(jù)無依賴子圖并行執(zhí)行,同時優(yōu)化了空子圖執(zhí)行流程,整體上提升控制流場景執(zhí)行性能。
例如:Mappo(Agent3)網(wǎng)絡(luò)優(yōu)化前后子圖數(shù)量無變化,但是由于我們優(yōu)化了無數(shù)據(jù)依賴的子圖的并行執(zhí)行能力和空子圖執(zhí)行過程,網(wǎng)絡(luò)最終執(zhí)行性能由2.5s/epoch提升至1.8s/epoch。
Mappo(Agent3)網(wǎng)絡(luò)優(yōu)化前后子圖數(shù)量與執(zhí)行性能對比
3. 昇思MindSpore Graph Learning:
公式即代碼,訓(xùn)練加速3到4倍
圖數(shù)據(jù)能自然表達(dá)真實世界對象之間的關(guān)系,表征能力和可解釋性強,圖學(xué)習(xí)也逐步廣泛應(yīng)用于電商推薦、金融風(fēng)控、藥物分子分析和控制優(yōu)化等場景,圖關(guān)系大都錯綜復(fù)雜,數(shù)據(jù)規(guī)模較大,通常有數(shù)十億點,數(shù)百億邊,點邊類型有幾百種,圖神經(jīng)網(wǎng)絡(luò)計算更加復(fù)雜耗時,因此迫切需要高效的圖神經(jīng)網(wǎng)絡(luò)系統(tǒng)。同時,GNN算法的快速發(fā)展,需要易用的系統(tǒng)允許自由擴(kuò)展。
昇思MindSpore Graph Learning是由James Cheng課題組(香港中文大學(xué))、華為昇思MindSpore團(tuán)隊聯(lián)合研發(fā)的圖學(xué)習(xí)框架,具有高效性、易用性等特點。
3.1易用性:公式即代碼
通過創(chuàng)新性的提出以節(jié)點為中心的編程范式,相較于消息傳遞范式,更貼近GNN算法邏輯和Python語言風(fēng)格,昇思MindSpore Graph Learning可以做到公式到代碼的直接映射,如下圖GAT網(wǎng)絡(luò)代碼所示。基于此,用戶無需進(jìn)行任何函數(shù)封裝,即可快速直接地實現(xiàn)自定義的GNN算法/操作。
3.2高效性:訓(xùn)練加速3到4倍
基于昇思MindSpore全場景AI框架的圖算融合和自動算子編譯技術(shù)(AKG)特性,創(chuàng)新提出基于索引的非規(guī)則內(nèi)存訪問算子融合,自動識別GNN模型運行任務(wù)特有執(zhí)行pattern并進(jìn)行融合和kernel level優(yōu)化。相較于其他框架對常用算子進(jìn)行定制優(yōu)化的方案更加靈活,更具擴(kuò)展性,能夠覆蓋現(xiàn)有框架中已有的算子和新組合算子的融合優(yōu)化。
以昇思MindSpore全場景AI框架作為后端,昇思MindSpore Graph Learning能使GNN網(wǎng)絡(luò)訓(xùn)練獲得3到4倍的性能加速。
3.3豐富性:覆蓋業(yè)界典型圖學(xué)習(xí)網(wǎng)絡(luò)
框架中已經(jīng)自帶實現(xiàn)十三種圖網(wǎng)絡(luò)學(xué)習(xí)模型,涵蓋同構(gòu)圖、異構(gòu)圖、 隨機(jī)游走等類型的應(yīng)用網(wǎng)絡(luò)。
4. 高性能可擴(kuò)展的強化學(xué)習(xí)計算框架:
昇思MindSpore Reinforcement
強化學(xué)習(xí)(RL)是近年來AI領(lǐng)域的研究熱點之一,伴隨昇思MindSpore全場景AI框架 1.6版本推出了獨立的強化學(xué)習(xí)計算框架昇思MindSpore Reinforcement,通過框架中的Python 編程API以及算法與執(zhí)行分離的設(shè)計使其具有易編程,可擴(kuò)展等特點,期望帶給用戶一個全新的開發(fā)體驗。
在昇思MindSpore Reinforcement 0.2版本中提供了一套面向強化學(xué)習(xí)領(lǐng)域的Python編程API,例如Actor用于環(huán)境交互獲得獎勵,Learner學(xué)習(xí)并更新策略,以及Trainer用于控制算法邏輯等抽象,使整個算法結(jié)構(gòu)更加清晰、簡潔,有助于高效的算法開發(fā)和模塊復(fù)用;另外在倉庫中內(nèi)置了一些經(jīng)典的強化學(xué)習(xí)算法,如DQN、PPO等(后續(xù)版本中將會持續(xù)更新),用戶可直接運行其中的算法,或者基于Python API開發(fā)新的單智能體以及多智能體強化學(xué)習(xí)算法。
昇思MindSpore Reinforcement在架構(gòu)設(shè)計上采用了算法表達(dá)和編譯執(zhí)行分離的設(shè)計思路,用戶僅需要專注于強化學(xué)習(xí)算法邏輯的Python實現(xiàn),依托于昇思MindSpore全場景AI框架強大的編譯優(yōu)化以及多硬件異構(gòu)加速能力,可以實現(xiàn)強化學(xué)習(xí)算法的多硬件協(xié)同計算加速。
在計算設(shè)備上,昇思MindSpore Reinforcement支持包括Ascend、GPU、CPU在內(nèi)的多硬件計算,當(dāng)前0.2版本已支持單機(jī)訓(xùn)練,后續(xù)版本將提供更強大的多智能體分布式訓(xùn)練能力,以及更加豐富的特性支持,敬請大家持續(xù)關(guān)注。
5. 自定義算子能力全面升級
統(tǒng)一Custom接口幫助用戶高效添加算子
隨著AI模型的迭代,昇思MindSpore全場景AI框架內(nèi)置的靜態(tài)的算子庫可能無法滿足用戶的需求,之前版本的昇思MindSpore全場景AI框架的自定義算子功能也存在著平臺覆蓋不到位,開發(fā)過程繁瑣及第三方算子接入困難的問題。
為了提供更好的自定義算子體驗,昇思MindSpore全場景AI框架1.6版本全面升級了自定義算子的能力,提供支撐包括Ascend,GPU和CPU在內(nèi)的多平臺的統(tǒng)一算子開發(fā)接口Custom,幫助用戶在昇思MindSpore全場景AI框架方便快捷地進(jìn)行不同類型自定義算子的定義和使用,可以滿足包括快速驗,實時編譯和第三方算子接入等不同場景下的用戶需求。
5.1多場景、多平臺的統(tǒng)一算子開發(fā)接口
昇思MindSpore全場景AI框架1.6版本提供統(tǒng)一的算子開發(fā)接口Custom,實現(xiàn)了不同方式自定義算子的接口和使用統(tǒng)一。其提供的模式包括基于JIT編譯的算子編譯器開發(fā)模式、針對極致性能的aot模式和針對快速驗證的pyfunc模式,方便網(wǎng)絡(luò)開發(fā)者根據(jù)需要靈活選用不同的自定義方式。
此外統(tǒng)一的算子開發(fā)接口整合了當(dāng)前昇思MindSpore全場景AI框架支持的不同平臺,包括Ascend,GPU和CPU,以及新增的AICPU平臺,減少了用戶針對不同平臺算子開發(fā)的學(xué)習(xí)成本。
5.2自定義算子一鍵接入,方便快捷
昇思MindSpore全場景AI框架1.6版本提供的自定義算子可以幫助用戶在昇思MindSpore全場景AI框架的Python端快速的定義算子,把算子作為網(wǎng)絡(luò)表達(dá)的一部分,無需對昇思MindSpore全場景AI框架進(jìn)行侵入式修改和重新編譯。此外提供了自動生成注冊信息的能力,實現(xiàn)自定義算子一鍵接入網(wǎng)絡(luò),極大的簡化了自定義算子的開發(fā)流程。用戶在使用時完全不感知框架相關(guān)的設(shè)定,讓用戶更加關(guān)注計算本身。
5.3新的自定義算子類型支持:AICPU
昇思MindSpore全場景AI框架1.6版本新增了AICPU類型算子的支持,該類算子對應(yīng)的硬件架構(gòu)為ARM架構(gòu),采用aot模式編譯,可以快捷地部署到主流嵌入式平臺上。AICPU算子相對于TBE算子,擅長邏輯類操作,采用C/C++開發(fā),類似于CPU算子開發(fā),對于一些難以向量化的算子,有較大的性能收益。
6. 模型遷移工具M(jìn)indConverter:
支持第三方框架模型的一鍵遷移
從第三方框架切換到昇思MindSpore全場景AI框架,如果不能復(fù)用原框架的存量主流模型,則需要重新編寫模型訓(xùn)練腳本,并花費周級甚至月級的時間進(jìn)行重訓(xùn)。
目前大量開源模型基于PyTorch/TensorFlow實現(xiàn),如果想基于昇思MindSpore全場景AI框架進(jìn)行研究,則可能因為預(yù)訓(xùn)練數(shù)據(jù)無法獲取或者訓(xùn)練資源有限,難以在昇思MindSpore全場景AI框架下復(fù)現(xiàn)模型。
在昇思MindSpore全場景AI框架1.6版本中提供的模型遷移工具M(jìn)indConverter,可以幫助用戶快速實現(xiàn)第三方框架主流模型的一鍵遷移。
工具采用了主流AI框架IR到昇思MindSpore IR的轉(zhuǎn)換方案,轉(zhuǎn)換后的模型可推理可重訓(xùn),模型腳本可讀性較好。模型遷移工具支持以下兩種轉(zhuǎn)換方式:
6.1基于ONNX IR轉(zhuǎn)換
ONNX是一種開放式模型定義格式,業(yè)界主流AI框架均已支持將模型導(dǎo)出為ONNX格式。借助ONNX通用性,模型遷移工具可實現(xiàn)多種AI框架到昇思MindSpore全場景AI框架的轉(zhuǎn)換。
已驗證支持ResNet系列、RegNet系列,HRNet系列,DeepLabV3系列,YOLO系列等模型。
如上圖所示,將第三方框架模型導(dǎo)出成ONNX格式,然后使用模型遷移工具,映射轉(zhuǎn)換成昇思MindSpore全場景AI框架模型。
6.2基于TorchScript IR轉(zhuǎn)換
TorchScript是PyTorch模型的中間表達(dá),借助 TorchScript IR 的泛化性,模型遷移工具可覆蓋絕大部分的PyTorch模型。已驗證支持HuggingFace Transformer預(yù)訓(xùn)練模型200+個。
如上圖所示,將PyTorch框架模型轉(zhuǎn)換成TorchScript計算圖,然后使用模型遷移工具,映射轉(zhuǎn)換成昇思MindSpore全場景AI框架模型。
更多可支持轉(zhuǎn)換的模型,有待用戶發(fā)現(xiàn)與驗證。使用模型遷移工具時如有問題,請參考官網(wǎng)的使用手冊,也歡迎在開源社區(qū)中進(jìn)行反饋。
7. 使能用戶即時體驗的開發(fā)套件
昇思MindSpore Dev ToolKit
昇思MindSpore全場景AI框架功能豐富且強大,如何一鍵上手,快速試用?由昇思MindSpore團(tuán)隊推出的昇思MindSpore Dev ToolKit開發(fā)套件包含運行管理,智能知識搜索與智能代碼補全功能,致力于讓所有用戶絲滑地擺脫環(huán)境干擾,學(xué)習(xí)人工智能,讓人工智能回歸算法本身。
7.1一鍵環(huán)境管理,5分鐘完成環(huán)境搭建上手昇思MindSpore全場景AI框架實踐
基于Conda提供科學(xué)的昇思MindSpore全場景AI框架環(huán)境管理方式,能快速將昇思MindSpore全場景AI框架及依賴安裝在獨立環(huán)境中并部署最佳實踐。該能力兼容Ascend、GPU、CPU多平臺,隱蔽不同環(huán)境適配的繁瑣細(xì)節(jié),讓用戶在打開IDE后一鍵運行AI算法。最快能在5分鐘內(nèi)體驗用昇思MindSpore全場景AI框架學(xué)AI的樂趣,內(nèi)測數(shù)據(jù)顯示80%的AI零基礎(chǔ)用戶使用該功能可在20分鐘內(nèi)完成環(huán)境配置與算法運行。
7.2 沉浸式昇思MindSpore全場景AI框架生態(tài)知識智能搜索,用戶零壓力接入昇思MindSpore生態(tài)
基于語義搜索等能力,在Dev Toolkit內(nèi)提供全面的昇思MindSpore全場景AI框架知識內(nèi)容檢索,對算子而言,PyTorch/TensorFlow框架用戶只需在IDE內(nèi)查詢相應(yīng)算子,即可快速準(zhǔn)確找到昇思MindSpore全場景AI框架中的對應(yīng)實現(xiàn)并獲得詳細(xì)文檔支持,從而無壓力切換到昇思MindSpore全場景AI框架生態(tài)中。
7.3 基于深度學(xué)習(xí)的智能代碼補全,單模型開發(fā)鍵盤敲擊次數(shù)可減少30%
Dev Toolkit基于昇思MindSpore ModelZoo等最佳實踐數(shù)據(jù)集構(gòu)造的智能代碼補全模型實現(xiàn)的智能代碼補全功能,讓用戶在編寫昇思MindSpore全場景AI框架相關(guān)代碼時獲取實時提示,補全達(dá)80%的高準(zhǔn)確性將加速用戶編碼,目前內(nèi)測數(shù)據(jù)顯示編碼時鍵盤敲擊次數(shù)可減少30%以上。
8. 昇思MindSpore Lite
持續(xù)提升推理性能
8.1 通過異構(gòu)并行技術(shù),深度挖掘硬件算力提升推理性能
此版本中,昇思MindSpore Lite新增異構(gòu)并行功能,該功能感知異構(gòu)硬件能力,使能多個底層硬件并行執(zhí)行推理,最大限度利用端側(cè)有限的硬件資源,提升推理效率。
異構(gòu)并行功能會在構(gòu)圖階段,根據(jù)異構(gòu)硬件的能力進(jìn)行構(gòu)圖操作。構(gòu)圖操作分為切分算子與構(gòu)造異構(gòu)圖兩部分。切分算子會將原本不適合異構(gòu)并行的模型重構(gòu)成適合異構(gòu)并行的,且并行分支的運算量能夠嚴(yán)格匹配異構(gòu)硬件的執(zhí)行能力。構(gòu)造異構(gòu)圖操作會根據(jù)模型現(xiàn)有的圖結(jié)構(gòu)進(jìn)行并行子圖搜索,最終確定異構(gòu)并行圖。構(gòu)圖的整體解決方案不局限于模型原始結(jié)構(gòu),使得異構(gòu)并行可以應(yīng)用于泛化模型。
昇思MindSpore Lite在當(dāng)前版本實現(xiàn)了GPU與CPU的異構(gòu)并行,使用Mobilenet-V1網(wǎng)絡(luò)實測驗證,有5%左右的性能提升。
8.2 優(yōu)化GPU推理性能,支持將OpenGL紋理數(shù)據(jù)作為輸入和輸出數(shù)據(jù)
此版本中,昇思MindSpore Lite支持將OpenGL紋理數(shù)據(jù)作為推理模型的輸入,推理輸出結(jié)果也為OpenGL紋理,實現(xiàn)端到端推理過程中,減少CPU和GPU間的數(shù)據(jù)拷貝,從而達(dá)到提升推理性能降低功耗的目的;相比上一版本,能夠減少四次設(shè)備間的內(nèi)存拷貝,示意如下圖:
9. MindSpore Quantum:
快速上手量子模擬與量子機(jī)器學(xué)習(xí)
MindSpore Quantum 最新0.5版本中提供獨立的量子模擬模塊Simulator,用戶可快速對自定義量子線路進(jìn)行模擬演化并對量子態(tài)進(jìn)行采樣,極大方便開發(fā)者在MindSpore Quantum環(huán)境中設(shè)計和驗證自己的量子算法。此外我們新增了量子線路和量子態(tài)采樣的展示模塊,開發(fā)者也能直觀的對量子算法進(jìn)行修改。
新增量子線路繪制功能演示如下:
新增模擬器模塊及其線路采樣功能演示如下:
此版本的第二大特性是新增了多種量子神經(jīng)網(wǎng)絡(luò)算子,開發(fā)者根據(jù)這些算子可以快速開發(fā)量子經(jīng)典混合的機(jī)器學(xué)習(xí)模型,助力量子人工智能算法突破。
10. 昇思MindSpore Science
蛋白質(zhì)結(jié)構(gòu)預(yù)測性能提升2-3倍
昇思MindSpore Science開源了基于AlphaFold2【1】算法的蛋白質(zhì)結(jié)構(gòu)預(yù)測推理工具,該預(yù)測推理工具由昇思MindSpore【2】團(tuán)隊、昌平實驗室、北京大學(xué)生物醫(yī)學(xué)前沿創(chuàng)新中心(BIOPIC)和化學(xué)與分子工程學(xué)院、深圳灣實驗室高毅勤教授課題組聯(lián)合推出,MindSpore + Ascend910 單卡端到端性能優(yōu)于原版AlphaFold2達(dá)2-3倍。
傳統(tǒng)的藥物設(shè)計研發(fā)周期長、費用高,而了解蛋白質(zhì)的空間結(jié)構(gòu)后可大幅縮短研發(fā)周期。因此,準(zhǔn)確、快速的蛋白質(zhì)結(jié)構(gòu)預(yù)測不僅可以快速獲得或驗證關(guān)鍵蛋白結(jié)構(gòu),而且在醫(yī)療健康和生物工程領(lǐng)域也能作為有力的工具。但傳統(tǒng)蛋白質(zhì)結(jié)構(gòu)預(yù)測方法存在計算精度不足的缺陷,而AlphaFold2的蛋白質(zhì)結(jié)構(gòu)預(yù)測工具精度可與實驗方法相媲美。
該工具可對氨基酸序列長度2000+的蛋白質(zhì)結(jié)構(gòu)解析,能覆蓋約99%以上的蛋白序列【3】。其中模型部分與AlphaFold2相同,在多序列比對階段,采用了MMseqs2進(jìn)行序列檢索【4】,相比于原版算法端到端運算速度有2-3倍的提升。
圖1 昇思MindSpore全場景AI框架模型與AlphaFold2精度對比
圖2 通過昇思MindSpore全場景AI框架預(yù)測的T1079
針對蛋白質(zhì)結(jié)構(gòu)預(yù)測及折疊問題,聯(lián)合團(tuán)隊未來還會發(fā)布創(chuàng)新的全棧(算法+軟件+硬件)敬請期待。
原文標(biāo)題:昇思MindSpore全場景AI框架 1.6版本
文章出處:【微信公眾號:華為計算】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7030瀏覽量
89034 -
軟件
+關(guān)注
關(guān)注
69文章
4944瀏覽量
87492 -
AI
+關(guān)注
關(guān)注
87文章
30896瀏覽量
269086
原文標(biāo)題:昇思MindSpore全場景AI框架 1.6版本
文章出處:【微信號:gh_3a181fa836b6,微信公眾號:華為計算】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論