昇思MindSpore 1.8:豐富的算法集與套件,實現高性能訓練,降低部署門檻
經過社區開發者們兩個月來的不斷努力,昇思MindSpore1.8版本現已發布。在此版本中,發布的MindSpore Golden Stick,提供了豐富的模型壓縮算法;開源大模型訓練套件MindSpore Transformer、推薦網絡訓練套件MindSpore Recommender,幫助開發者實現高性能的模型并行訓練和推薦網絡大模型訓練;持續升級自定義算子能力,實現多平臺的統一算子開發表達;統一圖像處理類接口、提供model.fit高階API和早停功能,不斷提升API接口易用性;新增180多個算子的functional接口,并支持NPU、GPU、CPU平臺,方便開發者調用。下面就帶大家詳細了解下1.8版本的關鍵特性。
1 MindSpore Golden Stick,降低端側AI部署門檻
MindSpore Golden Stick是華為諾亞實驗室和昇思MindSpore團隊基于昇思研發的模型壓縮算法集,通過提供剪枝、量化等豐富的模型壓縮算法,達到縮減模型參數量等效果,降低模型在端側部署的門檻;此外,面向開發者還提供一套簡單易用的算法接口,可降低模型壓縮算法的應用成本。

MindSpore Golden Stick架構圖
1.1統一的算法接口和改圖能力
模型壓縮算法種類繁多,不同算法的應用方式往往各不相同,這增加了應用算法的學習成本。MindSpore Golden Stick對算法應用流程做了梳理和抽象,提供了一套統一的算法應用接口,最大程度縮減算法應用的學習成本,同時這也方便了在各種算法的基礎上,對自動模型壓縮等高階技術的探索。
同時,MindSpore Golden Stick提供了通過接口修改前端網絡的能力,算法開發者可以基于此能力制定通用的改圖規則去實現算法邏輯,而不需要針對每個特定的網絡都實現一遍算法邏輯,提升算法開發效率。
1.2剪枝算法:SCOP[1],縮減模型功耗50%
MindSpore Golden Stick當前提供的一個結構化剪枝算法SCOP(Scientific Control for Reliable Neural Network Pruning,基于科學控制法的神經網絡剪枝),在數據驅動下,設置了對照實驗,通過引入對照特征來減少各種無關因素對剪枝過程的干擾,提高剪枝結果的可靠性。
ResNet50模型應用SCOP剪枝,并使用CIFAR-10數據集評估,實驗結果如下表所示,在剪枝率45%的情況下,精度損失在0.5%以內,模型參數量下降超過50%,帶來50%以上的部署功耗縮減和2倍以上的推理性能收益。
表 SCOP剪枝算法用于ResNet50的CIFAR-10數據集結果

1.3 量化算法:SLB[2],壓縮模型8-32倍
MindSpore Golden Stick當前提供的一個量化算法是華為諾亞實驗室自研的SLB(Searching for low-bit weights,基于權值搜索的低比特神經網絡量化)。針對低比特網絡量化,由于量化網絡權值的有效解數量比較少,因此對網絡的量化可以通過對權值搜索實現,也就是將量化過程轉換成權值搜索的過程。與傳統的量化算法相比,規避了不準確的梯度更新過程,能獲得更好的準確率,在極低比特量化中更有優勢。量化算法:SLB[2],壓縮模型8-32倍
對SLB算法做了簡單的實驗,結果如下圖所示,在當前任務中,與全精度模型相比,4bit權重量化后的模型大小縮減為原來的1/8,但top1精度沒有損失,1bit權重量化的精度損失在0.6%以內,此時可以獲得32倍的模型壓縮效果。

SLB權重量化算法用于量化ResNet18的CIFAR-10數據集結果,W32表示全精度模型,W4,W2,W1分別對應4bit、2bit和1bit權重量化模型
2 高性能的大模型訓練套件MindSpore Transformer
目前Transformer已經廣泛地應用在深度學習的各個領域,為了結合昇思豐富的并行能力和高性能優化特性,讓開發者能夠輕松上手Transformer類網絡訓練,社區專門提供的MindSpore Transformer是一個開源的Transformer類網絡訓練和推理套件。套件提供了典型網絡,例如GPT、T5、VIT等基礎模型的訓練能力,并結合昇思MindSpore豐富的并行訓練能力,實現高性能的模型并行訓練。通過實驗得出,在相同的硬件條件下,昇思MindSpore比Megatron的性能要優越18%以上。
2.1 多維度混合并行與圖算融合優化
MindSpore Transformer主要應用了如下兩種技術:
1.多維度混合并行,包含優化器并行、多副本并行等技術。通過優化數據并行維度上的冗余參數和通信計算并發,可有效提升網絡的訓練性能。
2.圖算融合優化:昇思的圖算融合功能可以自動實現算子融合和編譯優化,提升模型的內存效率和訓練速度。在MindSpore Transformer的所有模型和數據/模型并行模式下,圖算融合均已大范圍應用并取得了顯著效果。
2.2 性能對比
昇思研發團隊分別在8p、16p和32p A100集群上測試了百億規模GPT(hiddensize=5120, num_layers=35, num_heads=40)性能,模型并行路數設置為8,數據并行數分別為1、2、4,Global Batch為1024。Megatron配置Micro Batch Size=2(Megatron已達到上限),MindSpore配置Micro Batch Size=8(MindSpore已達到上限),相比Megatron,昇思MindSpore的內存利用率更高,可以訓練更大的Batch Size。

圖 吞吐率對比
如上圖所示,8P Megatron的最大吞吐率為7.4 k samples/s,MindSpore 最大吞吐率為9.3k samples/s,超過Megatron 25%;16P Megatron的最大吞吐率為13.6k samples/s,MindSpore最大吞吐率為16.9k samples/s,超過Megatron 24%;32P Megatron的最大吞吐率為20.1k samples/s,MindSpore最大吞吐率為23.8k samples/s,超過Megatron 18%。
3 高性能的推薦網絡訓練套件MindSpore Recommender
推薦系統中部署了多種點擊率(CTR)模型,為提高推薦點擊率,需要對深度CTR模型進行高效的訓練,推薦網絡的訓練性能是模型實時性的重要因素之一。昇思MindSpore 1.8版本提供了推薦網絡大模型訓練套件—MindSpore Recommender,結合昇思MindSpore自動并行、圖算融合以及分布式Embedding Cache等基礎能力,實現了推薦網絡大模型的高性能訓練。在套件中提供了主流推薦網絡模型(如Wide&Deep)端到端的訓練流程,包括數據集預處理、模型訓練、Benchmark等,為開發者提供了一站式的推薦大模型訓練能力。
3.1 推薦大模型訓練架構

技術架構圖
1.自動并行:通過模型并行實現Sparse計算(Embedding)多卡自動切分,數據并行實現Dense計算與集合通信并發執行,有效提升網絡的整體訓練性能。
2.分布式Embedding Cache:采用多級Embedding Cache、多級計算流水等設計,實現了大規模特征向量的存儲與高性能訓練。
3.分布式計算圖:通過分布式計算圖切分與執行,實現了大規模特征向量的分布式存儲與高性能本地計算。
3.2 性能對比
基于GPU V100集群Wide&Deep模型訓練(batch_size=16000, vocab_size=5860000)
,如下圖所示,單機八卡上昇思MindSpore的吞吐率優于HugeCTR 35%。

圖 Wide&Deep訓練吞吐率
4 自定義算子持續升級,統一表達支持高效添加算子
年初發布昇思MindSpore1.6版本提供了多平臺的統一算子開發接口Custom,能夠快捷地進行不同類型自定義算子的定義和使用。為了進一步提升自定義算子的體驗,昇思MindSpore1.8版本提供統一的MindSpore Hybrid DSL表達,支持包括Ascend,GPU和CPU在內多平臺的統一算子開發表達,可以在全平臺同時滿足快速驗證和實時編譯的需求。此外,1.8版本提供接入Julia算子的自定義算子新模式,成為業界首個支持Julia語言的AI框架。
4.1 跨平臺統一的MindSpore Hybrid DSL表達
MindSpore Hybrid DSL支持在不同平臺用統一的表達開發算子,一次開發便可以在所有后端使用。此外,開發的算子接入Custom接口時,既可以通過hybrid模式即時編譯運行,亦可通過pyfunc模式解釋運行方便快速驗證。
此外基于MindSpore Hybrid DSL提供新的調度原語,幫助hybrid類型自定義算子在Ascend后端使能多面體模型的專用處理器(DSA)調度器,實現手自一體的算子調度協助代碼生成,幫助開發者基于Ascend后端加速科學計算任務。
4.2 業界首個支持Julia語言的AI框架
Julia是一種速度快且使用簡單的高級通用編程語言,最初設計是用于科學計算領域,而由于其高效而實用的特性,近些年來越來越受到青睞,逐步邁向主流編程語言。昇思MindSpore 1.8版本在算子開發接口Custom提供Julia模式,把基于Julia語言開發的算子和基于昇思開發的模型有機地結合在一起。開發者可以采用Julia算子加速運算,也可以使用Julia生態高效地開發算子。如此,開發者在模型移植、快速驗證以及模型加速等場景下使能Julia算子,在基于昇思MindSpore開發的模型中享受Julia語言對計算帶來的收益。
5 MindSpore Data統一圖像處理類接口,提升接口API易用性
昇思MindSpore1.8版本中,MindSpore Data模塊對于圖像類數據預處理操作進行重新設計及改造,從原有的c_transforms和py_transforms兩種類型操作合并為transforms統一接口,同時對其中包含的各類數據處理算子進行歸一合并,減少開發者混用算子的轉換操作,并基于算子上下文實現自動的算子輸出格式轉換,極簡易用,同時對資深開發者仍然保留了手動選擇算子策略的能力。
5.1 實現方式
將c_transforms和py_transforms相同的功能合并為同一個接口,內部保留兩種底層實現,執行時優先使用C層實現,保證高效率;不同的功能分別保留C層和Python層底層實現,執行時只有唯一方式。
5.2 實現后總結
1.包的導入方式統一,如下圖所示。

2.數據處理接口統一,如下圖所示。

3.運行方式舉例,如下圖所示。




6 支持邊訓練邊推理和早停功能
6.1 提供model.fit高階API
之前的訓練及推理分別通過model.train和model.eval兩個接口執行,如果在訓練過程中需要查看驗證集的評估指標來監控模型效果,需手動實現;而昇思MindSpore1.8提供model.fit高階API,對model.train及model.eval進行了封裝,保證原有功能的情況下簡化了開發流程,開發者只需傳入對應的參數,即可一行代碼實現自動化訓練及推理。
6.2 實現EarlyStopping和ReduceLROnPlateau功能
為及時掌握訓練過程中模型的狀態、實時觀察模型各參數的變化情況和實現訓練過程中自定義的一些操作,昇思提供了回調機制(Callback)來實現上述功能,對標業界框架,昇思MindSpore1.8版本新增EarlyStopping及ReduceLROnPlateau兩個Callback,可用于model.train和model.fit中,實現指定指標的Epoch級別的驗證:當指標值變差,超過可容忍閾值或等待時間超過可容忍Epoch數時,EarlyStopping將終止訓練過程實現早停,而ReduceLROnPlateau將按照開發者指定的學習率衰減規則,改變學習率。
7 支持網絡的常量輸入可變,提升編譯效率
當前圖編譯機制是除Tensor外所有頂層網絡的輸入都被當做常量值,如標量、tuple、list和dict。而常量值是不能求導的,而且在編譯優化階段會被常量折疊掉。
另外,當網絡的輸入是tuple[Tensor],list[Tensor]或dict[Tensor]時,即使里面Tensor的shape和dtype沒有發生變化,在多次調用同一個網絡去得到結果時,由于輸入都被當做常量值去處理了,無法忽略掉里面Tensor的具體數值,所以導致網絡每次都會被重新編譯,降低訓練效率。
為解決以上的問題,昇思MindSpore1.8版本新增了mutable接口去設置網絡的常量輸入為“可變的”,也就是把這個輸入當做像Tensor一樣的變量,從而可以對其求梯度以及防止網絡被重復編譯。接口用法也比較簡單,在傳參時對網絡輸入用mutable接口進行包裹即可,如下圖所示。

圖 用例對tuple[Tensor]類型的輸入進行包裹
8 MindSpore Reinforcement,提供高性能分布式訓練和原生蒙特卡洛樹搜索算法
8.1 通過Dataflow Fragment實現靈活,高性能的分布式訓練。
當前分布式強化學習框架主要以Python函數的方式實現強化學習算法,雖然具有直觀的編程API,但在多機并行和異構加速上卻很有挑戰。
MindSpore Reinforcement v0.5.0提供基于Dataflow Fragment的分布式策略(DP),支持將深度強化學習算法分割成多個數據流片段,并映射到異構設備上執行。相同的算法可以根據不同的分布式策略而部署到單機多卡或多機多卡上。下圖中展示了基于Dataflow Fragment的分布式策略,以及對應的訓練加速效果,在多機多卡分布式訓練場景下可大幅縮短算法的訓練時間。

圖 分布式策略示意圖(左:分布式策略1; 右:分布式策略2)

圖 不同分布式策略下的訓練時間
8.2 蒙特卡洛樹搜索(MCTS)
蒙特卡洛樹搜索(MCTS)是一種決策搜索算法,以MCTS為基礎的強化學習算法(如AlphaGo)獲得成功之后,MCTS在強化學習算法中的應用越來越廣泛。

圖 MSTC算法偽代碼
MindSpore Reinforcement v0.5.0提供了通用可擴展的MCTS算法。 開發者可以使用Python在強化學習算法中直接調用框架內置的MCTS算法,也可以通過擴展來完成自定義邏輯,框架自動將算法編譯成計算圖,實現高效執行。
9 參考文獻
[1] Tang, Yehui, et al. "Scop: Scientific control for reliable neural network pruning." NeurIPS 2020: 10936-10947.
[2] Yang Z, Wang Y, Han K, et al. Searching for low-bit weights in quantized neural networks. NIPS, 2020.
請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
- 1 AI狂歡遇上油價破百,全球股市還能漲多久? | 產聯看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實測:中文穩、細節炸,設計師慌了
- 3 6000億美元估值錨定:字節跳動的“去單一化”突圍與估值重構
- 4 Tesla AI5芯片最新進展總結
- 5 連夜測了一波DeepSeek-V4,我發現它可能只剩“審美”這個短板了
- 6 熱點丨AI“瑜亮之爭”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫跑路,全員被封號,還繼續扣錢!
- 8 2026,人形機器人只贏了面子
- 9 DeepSeek降價90%:價格屠夫不是身份,是戰略
- 10 AI Infra產業鏈卡在哪里了?


分享













