機器之心發布
機器之心編輯部
2020 年 3 月 28 日,MindSpore 正式開源,備受廣大開發者的關注。從 4 月 30 日發布的 v0.2.0-alpha 版本,到 8 月 30 日發布的 v0.7.0-beta 版本,推出了數十個亮眼的新特性,9 月,在華爲全聯接大會上,MindSpore 正式發布 v1.0.0 版本(後簡稱 1.0)。
圖1 MindSpore 1.0正式發布
開源6個月以來,MindSpore收獲了4.5w+名開發者,累計PR數1w+,下載使用用戶遍布全球,覆蓋亞洲、歐洲、南美、北美、非洲、等各地區,MindSpore Study Group(下簡稱MSG)啓動4個月便在海內外多個城市順利開展,深圳、杭州、蘇州、上海、俄羅斯、新加坡、印尼均已建立MSG組織,做到了真正的全球化社區。
圖2 MindSpore開源整體社區進展
視頻:MindSpore 1.0 版本1分鍾特性總結
三大創新助力全場景AI應用
圖3 MindSpore 1.0全景圖介紹
創新一:全流程極簡,多套件打造極致開發體驗
1. 即開即用
當開發者開展新項目時,往往需要從清洗數據開始,到訓練模型,推理部署等多個流程,流程複雜,耗時較久。在1.0版本中,官方提供了40+個典型的高性能模型,覆蓋了CV、NLP、推薦、語音等各個領域,大家可以使用這些模型直接推理或者加載自己的數據集做Fine-tuning,這樣可以節省大量訓練的時間和成本,快速開發出智能的服務和應用。開發者們可以在官網的Hub頁面中通過篩選條件,快速找到自己想要的預訓練模型,實現模型開發套件,“即開即用”。
圖4 MindSpore Hub官網頁面
2. 所見即所得
1.0版本中,MindSpore提供了所見即所得的模型開發和調優套件。在模型開發階段,MindSpore基于統一的自動微分引擎,支持用戶用一行代碼切換動態圖和靜態圖模式,使得兼顧開發效率和執行效率。在模型調優階段,MindInsight可視化調優工具幫助用戶彙總和分析調優過程,並且向推薦合理的調優策略,加速模型調優過程。
圖5 MindSpore 模型調優套件
如果你已使用PyTorch訓練模型,可以使用MindConverter工具加少量的代碼開發,即可方便地遷移到MindSpore框架。同時MindSpore也支持PyTorch、TensorFlow Lite、Caffe的模型文件直接轉爲MindSpore模型。這樣就能非常方便地使用MindSpore提供的全自動並行特性。
創新二:全自動並行,最大釋放集群算力
圖6 MindSpore自動並行詳解圖
在算法層面,MindSpore擁有自動並行能力,可以根據集群配置對模型和張量自動切分,將串行算法進行自動並行,大大減少算法開發人員的分布式代碼開發和調優的負擔,使得算法調優時間從月級降到天級;
在算子層面,MindSpore提供了算子級並行自動融合,通過細粒度pipeline的並行執行的方式,進一步提高計算性能;
在硬件層面,MindSpore進行整圖調度,可以根據計算特征,自動把算子調度到異構設備上執行,實現異構多核的高效並行執行;
在此基礎上,MindSpore協同Ascend處理器,在分布式集群上達到了接近線性加速比,ResNet50網絡訓練吞吐量提升兩倍,Bert-Large網絡訓練吞吐量提升3.2倍。開發者可以方便地使用MindSpore實現在多計算單元上並行計算,既能大幅減少開發量以及開發難度,又能使性能持平甚至優于手動設置。在ReID網絡上進行混合並行,腳本代碼量從130行,直接變爲1行,且加速比能達到88%以上。
創新三:全場景協同全場景協同,智能匹配端、邊、雲多樣設備
MindSpore 1.0提供模型自適應生成能力,通過平衡模型精度和設備資源約束,自動搜索匹配的模型,開發者只需要做一次訓練,得到的模型就可以在端、邊、雲等多處部署,可保證生成的精度損失小于1%;對于已經部署的模型,MindSpore提供了輕量化的端側學習能力,發揮私人數據的價值,持續提升模型精度,讓智能設備越用越懂你。
在框架方面,爲了多樣化設備的資源約束,MindSpore可以做到KB到MB級的彈性伸縮,既可以部署到高端手機,又可以部署到手表等對資源要求極爲苛刻的設備,從而滿足全場景部署的需求。
圖7 MindSpore全場景協同
三大黑科技加速AI模型訓練
黑科技一:二階優化算法
常見的深度學習優化算法多爲一階算法,是否存在高階的優化算法能夠在不損失精度的同時,加速模型的收斂呢?常規的二階優化算法雖然收斂速度快,但二階矩陣求逆時間複雜。 在深度學習模型中, 常常在數百萬的量級,此時二階信息矩陣的逆無法計算。
MindSpore自研二階優化算法THOR通過減少二階矩陣求逆次數以及降低二階矩陣的維度來降低求逆時間,在Bert-Large上,使用MLPerf測試集,達到71.2%精度僅需3000step,端到端訓練時間爲14min,極大的提升了模型的訓練速度。
圖8 MindSpore 二階優化效果
黑科技二:圖算融合優化
人工智能發展至今,業務場景的複雜度僅靠單一的模型套數據,使用框架訓練早已滿足不了需求,開發者通常會基于模型進行二次開發,手動改寫網絡,實現算子等。在傳統的手寫算子中,效率難以達到統一標准,極大的影響了開發人員的實現效率和網絡的訓練時間。MindSpore圖算融合優化是通過分析和優化現有網絡計算圖邏輯,對原有計算邏輯進行拆分、重組、融合等操作,以減少算子執行間隙的開銷並且提升設備計算資源利用率,從而實現網絡整體執行時間的優化。
在圖算融合特性中,所有優化項均可以自動完成,在訓練腳本中爲context指定參數enable_graph_kernel=True從而啓用圖算融合,無需網絡DSL感知。同時基于polyhedral技術實現融合算子編譯,帶來更加通用、高性能的算子融合能力。最後提供了自定義算子表達能力,相對更加易用,性能更高。
圖9 MindSpore 圖算融合流程圖
黑科技三:輕量級神經網絡推理框架MindSpore Lite
MindSpore Lite是MindSpore新發布的一個輕量級神經網絡推理框架,它能大幅降低延遲,節省帶寬,保護用戶隱私,幫助開發者使能端側及邊緣側AI能力。主要包含離線轉換工具和輕量級運行時兩部分。離線轉換工具將MindSpore模型及第三方模型變得更小,運行更快;輕量級運行時可部署到智能手機、以及手表、耳機等資源受限(算力,存儲,電量等)嵌入式設備。
在1.0版本中,模型轉換工具支持直接在CPU+Windows環境上進行模型轉換,支持多個session並行推理,以適應更多的使用場景,進一步加強了算子支持和性能優化,增強對CPU、GPU支持。
圖10 MindSpore Lite架構圖
三大行業案例推進AI落地應用
應用案例一:MindSpore助力分子動力學實現並行計算
分子動力學MD(Molecular Dynamics,下簡稱MD)模擬是一種計算機模擬方法,通過對分子、原子在在一定時間內運動狀態的模擬,從而以動態觀點考察系統所發生的物理及化學變化過程。傳統分子動力學軟件需要對手工處理並行(MPI)操作,並且在專用加速設備(如GPU)上運行需要單獨編寫對應代碼,不同設備之間的遷移非常麻煩,存在精度和速度之間的矛盾。MindSpore的自動並行技術可以實現MD並行操作,運用TVM等技術實現代碼在不同設備間的遷移,不僅簡化了代碼開發過程,而且能帶來更快的計算速度和更高的計算精度。
應用案例二:MindSpore 助力Jina提供面向雲原生的開源神經網絡搜索能力
Jina.ai是由MindSpore技術治理委員會成員肖涵博士主導的初創公司,致力于提供面向雲原生的開源神經網絡搜索能力。目前Jina社區團隊完成了MindSpore框架的初步對接支持,成爲了首個對接MindSpore應用集成商。Jina+MindSpore提供了業界少有的完整開源解決方案。
應用案例三:MindSpore 服務HMS ML Kit 270+智能應用
MindSpore助力華爲1+8+N戰略,已經集成在了包括HMS ML Kit在內的多種端邊雲系統中,以MLKit爲例,作爲內置AI引擎,MindSpore Lite爲超過270款智能應用提供服務,每天的調用次數達到1.18億次。此外,MindSpore已經落地華爲雲,作爲ModelArts內置的AI引擎,爲廣大開發者提供一站式全流程AI服務;當前包括華爲內部用戶,基于ModelArts提供900+實時在線推理服務,同時在訓練集群穩定對外提供每天1100+次訓練任務。
開源六個月,社區繁榮度持續增加
自開源以來,MindSpore彙聚了4.5w+開發者下載使用,1500+來自全球核心貢獻者持續參與代碼貢獻;每月末的版本叠代,MindSpore都會發布1分鍾特性視頻,給大家從不同的角度科普版本技術亮點,播放量超30w+,官網訪問量900w+;除了特性介紹的短視頻外,MindSpore還針對初級開發者,與機器之心聯合開展系列直播『輕松上手MindSpore』,收獲3w+播放量,培養2500+活躍開發者;針對中級開發者開展了四期月末兩日集訓營,廣受開發者好評,培養100+核心用戶,爲MindSpore技術生態貢獻。
爲了讓全國各地的開發者能在當地彙聚在一起,共享AI前沿技術分享,2020年5月MSG正式啓動開始,相繼在深圳、杭州、蘇州、上海、俄羅斯、印尼、新加坡等多個海內外城市開展活動,了解每位優秀開發者對開源生態獨有的視角,享受與大咖們面對面交流的時刻。作爲一個所有開發者都能參與的開源開放的社區,MSG成立的宗旨是希望能夠幫助所有有志于在開源社區做出貢獻,收獲知識。
未來在MindSpore開源社區,華爲會繼續開展面向不同個層級的開發者的培訓活動,培養出優秀開發者和布道師,讓每一位想要了解MindSpore的開發者們都有機會體驗MindSpore,讓更多的人參與到開源中來,感受到開源的魅力,共建繁榮生態。