經過社區開發者們幾個月的開發與貢獻,現正式發布昇思MindSpore2.3.RC1版本,通過多維混合并行以及確定性CKPT來實現超大集群的高性能訓練,支持大模型訓推一體架構,大模型開發訓練推理更簡、更穩、更高效,并在訓推一體框架的基礎上通過多樣的大模型推理優化技術,進一步降低大模型推理成本;通過使能kernel by kernel調度執行,進一步提升靜態圖調試調優能力;持續升級MindSpore TransFormers大模型套件和MindSpore One生成式套件,全流程開箱即用,一周即可完成大模型全流程的開發、驗證;創新AI+科學計算(科學智能)范式,孵化科學領域基礎大模型;下面就帶大家詳細了解下2.3.RC1版本的關鍵特性。
大模型訓練下,為了降低顯存開銷,廣泛的使用算子級并行技術,其中引入了大量的模型并行的通信,極大地影響了大模型的訓練效率。模型并行的通信,從網絡的結構上來看,其處于正反向計算過程中,阻塞正反向計算,無法與正反向的計算進行互相掩蓋。為了解決模型并行通信的掩蓋問題,MindSpore提出了多副本并行技術。
在舊版本的MindSpore上,通過將網絡從數據開始進行拆分,如下圖所示,在單張卡內,通過slice算子將Batch維度進行拆分,進而產生多個分支,這多個分支的計算與通信互相之間沒有依賴,存在并發的空間,通過執行序調度算法,控制多個分支的計算與通信進行并發。
隨著網絡規模的增大,受限于顯存限制,當一張卡內的BatchSize僅支持為1時,上述對整網進行Batch拆分的方案不再可行。因此,考慮到模型并行通信的位置,昇思MindSpore2.3.RC1版本將Transformer模型中的AttentionProjection層以及FFN層進行拆分,產生多個分支,通過執行序調度算法控制細粒度的多分支的并行,其中拆分從AttentionProjection開始,到下一個Layer的QKV計算前結束。
上圖描述了序列并行場景下的細粒度多副本拆分與掩蓋基本思路,拆分為兩個副本,在正向可以達成50%+的通信掩蓋;而在反向,結合計算梯度的分支的計算與TP通信的掩蓋,可達成90%的通信的掩蓋。當前細粒度多副本并行僅在MindSpore Transformers的LLAMA網絡進行了實現,需要對模型結構進行手動改造為多個副本。后續版本昇思MindSpore將集成自動拆分副本的邏輯,達成更易用的細粒度多副本并行。
參考鏈接:https://www.mindspore.cn/tutorials/experts/zh-CN/master/parallel/multiple_copy.html
大模型大規模商用之后,推理消耗的算力規模將十分龐大,相應地帶來高昂的成本,商業閉環依賴推理規模突破。在降低大模型推理的成本的同時,要兼顧模型精度和計算時延,不能影響用戶的體驗。昇思MindSpore 2.3.RC1版本,從最上層推理服務到模型腳本優化到推理引擎LLM Serving,為用戶提供端到端的高效推理解決方案。
模型腳本默認使能了增量推理、FlashAttention/PagedAttention等推理加速技術,避免了模型導出、切分、推理腳本開發等一系列工作,訓練到推理加速平滑遷移,部署周期下降到天級。
融合大算子:新增10+業界最新的推理融合大算子接口,模型開發人員可以快速使能推理融合算子實現加速。
并行推理:訓練推理并行策略接口一致,提供訓練并行到推理并行ckpt重切分接口,支持動態shape模型切分。
模型壓縮:昇思MindSpore金箍棒升級到2.0版本,提供了針對大模型的業界SOTA以及華為諾亞自研的量化、減枝等算法,實現千億大模型10倍+壓縮。
以上技術均可泛化的應用于Transformer結構的大模型中,經過驗證,在盤古、Llama 2的8卡模型推理中,首token時延做到百ms級,平均token時延小于50ms,保持業界領先水平。
通過連續批調度、Prefill/Decoding混合部署等手段,盡可能的消除掉冗余計算,確保算力不閑置,實現大模型推理吞吐提升2倍+。
參考鏈接:https://www.mindspore.cn/lite/docs/zh-CN/r2.3.0rc1/use/cloud_infer/runtime_distributed_python.html
整圖下沉執行性能最優,但大模型的規模和參數量發展得更為龐大,整圖下沉執行方式在整圖編譯過程中耗時較長,一個千億級別的大模型的編譯時間為30分鐘-60分鐘,調試調優效率低下。為解決上述問題,昇思MindSpore2.3.RC1版本中,提供了多級編譯技術,O0原生構圖不優化、O1增加自動算子融合優化、O2整圖下沉執行優化。在O0的編譯選項下,通過原生圖編譯和kernel by kernel(KBK)的執行技術,可以將編譯時間提升到15分鐘以內,同時我們在新版本中還開發了DryRun技術,用戶可以直接在離線的情況進行內存瓶頸分析和并行策略調優,結合這兩大技術可以使得大模型調試效率倍增。在O0這種編譯條件下,我們使能了SOMAS/LazyInline/控制流Inline來提升內存復用率,使能了多流并行/流水異步調度,可以提升執行性能;在O1這種編譯條件下,通過使能算子融合技術,KBK執行模式下可以有更好的執行性能。
參考鏈接:https://www.mindspore.cn/docs/zh-CN/r2.3.0rc1/api_python/mindspore/mindspore.JitConfig.html?highlight=jitconfig
昇思MindSpore支持圖模式(靜態圖)和PyNative模式(動態圖)兩種運行方法。動態圖易于調試,開發靈活,易用性好;靜態圖語法支持有限,但執行性能好。JIT兼顧性能和易用性,通過對Python字節碼進行分析&調整、執行流進行圖捕獲&圖優化,支持入圖的Python代碼做靜態圖方式執行,不支持的進行子圖切分以動態圖方式執行,自動地做到動靜統一,實現方法如下圖所示。
參考鏈接:https://www.mindspore.cn/docs/zh-CN/r2.3/design/dynamic_graph_and_static_graph.html#%E5%8A%A8%E6%80%81%E5%9B%BE%E8%BD%AC%E9%9D%99%E6%80%81%E5%9B%BE%E6%8A%80%E6%9C%AF
MindSpore Elec電磁仿真套件升級至0.3版本,聯合清華大學李懋坤教授團隊、華為先進計算與存儲實驗室共同打造了基于昇思MindSpore的大地電磁(Magnetotelluric,MT)智能反演模型。該模型通過變分自編碼器(VAE)靈活嵌入了多物理先驗知識,達到了業界SOTA。該成果已被國際頂級勘探地球物理期刊《Geophysics》收錄,同時也在昇思人工智能框架峰會2024上發布亮相。
(1)基礎MT反演:反演區域水平長度為10km,深度為1km。下圖1中目標電阻率分布(第一列)與傳統大地電磁反演(第二列)、大地電磁智能反演(第三列),可以看出大地電磁智能反演相比傳統反演精度顯著提升(前者殘差為0.0056和0.0054;后者為0.023和0.024 );下圖2中,大地電磁智能反演性能也優于傳統反演方法(前者收斂步數為4和4;后者為6和4)。
目標電阻率 | 傳統方法 | 我們的工作 |
圖1 大地電磁反演精度對比
圖2 大地電磁反演收斂速度對比(Pixel-based:傳統反演;Feature-based:我們的工作)
(2)南部非洲MT反演:大地電磁智能反演模型也在南部非洲開源數據集(SAMTEX)上做了驗證。該反演區域位于南部非洲西海岸附近,長度約為750km,深度選定為80km。該測區顯著特征為在水平方向100km至400km之間,深度20km以淺的區域存在的高導結構。由于低頻電磁波在導體結構中的衰減,MT方法對高導結構下部區域的敏感度很低, 因此無先驗知識約束的傳統MT反演難以準確重建高導地層的下邊界位置。大地電磁智能反演對高導地層的下邊界重建較為清晰準確,較好地將地層厚度的先驗知識融入了反演。
圖3 南部非洲MT反演示例圖(上圖:傳統反演;下圖:我們的工作)
參考鏈接:https://gitee.com/mindspore/mindscience/tree/master/MindElec
本文鏈接:http://www.tebozhan.com/showinfo-26-85543-0.html大模型首選AI框架——昇思MindSpore2.3.RC1版本上線開源社區
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com