夏日的陽光已經灑在樹梢枝畔,奮斗了又3個月的MindSpore社區(qū)開發(fā)者們,帶著無比的興奮,為大家獻上全新的1.3版本!日益精進的我們,在這個版本中為大家?guī)砹巳碌腗indSpore Federated能力,解鎖了支撐盤古千億稠密大模型的眾多關鍵特性、以及面向更多類型硬件的推理優(yōu)化、圖算融合、簡易部署等新工藝,猶如開源時所誓言,持續(xù)不斷的為AI開發(fā)者帶來驚喜。下面就帶大家快速瀏覽1.3版本的關鍵特性。
MindSpore Federated——支持千萬級無狀態(tài)設備的聯(lián)邦學習
聯(lián)邦學習是一種加密的分布式機器學習技術,它是指參與聯(lián)邦學習的各用戶在不共享本地數據的前提下共建AI模型,主要用于解決數據隱私和數據孤島的問題。MindSpore Federated優(yōu)先專注于大規(guī)模參與方的橫向聯(lián)邦的應用場景。
端云場景下的參與方是非常大量的手機或者IoT設備,其分布規(guī)模和設備不可靠性帶來了系統(tǒng)異構、通信效率、隱私安全和標簽缺失等挑戰(zhàn)。MindSpore Federated設計了松耦合分布式服務器、限時通信模塊、容忍退出的安全聚合等模塊,使得任何時候只要部分客戶端可用,都可以進行聯(lián)邦學習任務,并解決了系統(tǒng)異構帶來的“長尾效應”,提高了學習效率。
搭載于MindSpore端邊云全場景統(tǒng)一的基礎架構,MindSpore Federated將會作為華為終端的核心競爭力之一,在保護用戶隱私的前提下,提供更具有個性化的用戶信息決策。
盤古千億稠密大模型關鍵特性開源
0.中文語言理解任務評測全球第一
全球最大中文語言預訓練模型“鵬程.盤古”,在2021年4月23日權威的中文語言理解評測基準CLUE榜單中,總成績及閱讀理解、分類任務單項均排名第一,刷新三項榜單紀錄,總成績得分83;在NLPCC2018文本摘要任務中,取得了Rouge平均分0.53的業(yè)界最佳成績,超越第二名百分之六十。
1.超大模型關鍵特性之——分布式推理及在線部署
當大模型推理參數量較大難以部署到一張卡上時,MindSpore可通過OP-Level和PipeLine模型并行將大模型切分到多卡。我們實現了鵬程.盤古2000億級參數量的模型部署。
MindSpore Serving支持分布式模型的在線推理部署,根據模型并行策略切分為多個小圖,每個卡部署兩個圖的各一個小圖。下圖中,每個卡通過一個Agent進程管理圖加載和執(zhí)行,卡之間通過HCCL進行高速通信,分布式主worker進程和各個Agent進程之間通過gRPC通信,用于請求數據的發(fā)送和請求結果的接受。
2.超大模型關鍵特性之——增量推理(state resuse)及部署
對于自回歸(Auto-regressive)的語言模型,隨著新詞的生成,推理輸入長度不斷增大。如果使用動態(tài)圖執(zhí)行,在不同迭代間,圖中每個算子的shape發(fā)生改變,無法利用之前緩存的算子編譯信息,會影響性能。
我們通過修改推理腳本,實現了增量推理的功能,一次增量推理的流程包含兩個階段:第一階段推理,輸入為全量,將輸入padding到固定長度,保存到state,這一階段是為了處理不定長的輸入,將輸入的state保存下來;后續(xù)推理階段,輸入字長為1,即每次輸入上一步生成的token,利用保存的state實現增量推理,產生下一個token并更新state。由于非線性操作的存在,此種增量推理的流程與正常全量推理并不完全等價,不過我們在下游任務推理中發(fā)現,增量推理的精度并無明顯劣化。我們通過鵬程.盤古在昇騰硬件平臺上進行了一系列實驗,結果如下圖所示:
在增量推理過程中,第一階段只執(zhí)行一次,而第二階段會執(zhí)行多次,比單純的全量推理,整體性能提升比較明顯。
MindSpore Serving支持增量推理模型部署,包括單卡模型和分布式模型場景。使用自定義子圖間編排串接兩個不同序列長度輸入的執(zhí)行,維護模型的狀態(tài),避免多個請求的執(zhí)行干擾。
MindSpore Lite端云訓練
隨著用戶對數據隱私要求越來越高,許多用戶隱私數據無法上傳到云側,因此在用戶端側進行訓練將逐漸成為一個趨勢,并且端云協(xié)同訓練將可以充分利用端側的計算資源,進一步降低訓練所需的時間。當前MindSpore Lite支持對MindSpore訓練導出的模型進行增量訓練,實現云-端訓練的無縫切換。但由于端側硬件資源的限制,如何在不影響用戶體驗下進行訓練,對端側訓練的內存和性能提出了挑戰(zhàn)。
MindSpore Lite采用了訓練內存復用、virtual batch、混合精度訓練、在線融合、量化等手段對減少端側訓練時的內存占用。同時在聯(lián)邦學習MindSpore Federated場景下支持云側對端側權重的讀寫,權重采用差分隱私方式進行端云傳輸進一步保證了端云訓練中的安全性。端云訓練一般流程如下:
調試器易用性更上一層樓:圖碼結合調試和訓練回放
作為MindSpore圖模式下的調試利器,調試器提供了豐富的檢查規(guī)則幫助用戶快速識別常見精度問題。為了幫助大家更好地在圖模式下調試腳本,1.3版本中,我們新增了圖碼結合調試和訓練回放功能。
圖碼結合調試能幫助您掌握代碼和計算圖的關系,通過調試器提供的代碼信息,您能夠更好地理解計算圖背后的代碼邏輯,提升精度問題分析效率。
訓練回放是通過離線調試這一全新的試模式實現的,在訓練結束后,您可以通過離線調試模式對訓練過程進行分析,還能對并行訓練(單機多卡)中的精度問題進行分析和定位。
1.圖碼結合調試:一眼掌握代碼和計算圖的關系
MindSpore圖模式的調試中,如果能方便地找到某行代碼所關聯(lián)的計算圖節(jié)點,對調試效率將有很大提升。在調試器的幫助下,您可以方便地查看計算圖中算子節(jié)點和代碼的關聯(lián)關系,無論是以碼搜圖,還是以圖找碼,都能在圖形界面下快速完成。
以碼搜圖時,輸入想要查找的代碼行(例如alexnet.py:52),即可尋找同此行代碼關聯(lián)的計算圖節(jié)點。如下圖所示:
以圖找碼時,在計算圖中選中算子節(jié)點(例如Conv2D-op108),即可在堆棧信息中查看該算子對應的代碼行。如下圖所示:
2.支持離線調試:隨時離線回放分析訓練過程,節(jié)約AI處理器資源
在使用之前的調試器時,要求先啟動訓練進程,在訓練進程運行的過程中對精度問題進行分析。我們提供了離線調試的能力,通過dump功能將調試數據保存到磁盤上,然后就可以在不使用昇騰AI處理器的情況下回看訓練過程,分析精度問題。由于數據在磁盤上,離線調試中還可以隨意切換正在調試的迭代,回放訓練,免去在線調試錯過關鍵迭代后又要從頭運行腳本的煩惱
3.支持單機多卡調試:定位并行訓練中的精度問題
在離線調試功能的基礎上,調試器支持了單機多卡訓練的調試。在MindSpore上調試單機多卡的訓練時,只需通過dump功能保存數據到磁盤,就可以使用MindInsight可視化地進行分析。調試器中已經提供的監(jiān)測點,例如檢查梯度消失,檢查激活值飽和,檢查權重不更新等,都可以繼續(xù)在此場景下使用。圖碼結合調試同樣支持單機多卡。
推理優(yōu)化——X86_64 CPU PC推理能力
為了更好的支持PC側推理,x86_64從匯編層面入手,支持針對不同卷積shape的動態(tài)block切分,充分利用寄存器等硬件資源,使我們推理性能達到極致,較上個版本推理時延有了10%~75%+的提升。我們在Intel Core i7-8700 CPU上與OpenVINO(2021.3.394)、MNN(1.2.0)、TNN(v0.3)在幾個經典CV類網絡上進行benchmark測試,從測試結果可以看出MindSpore Lite保持了較高的水平。
更多推理性能優(yōu)化
隨著數據集和網絡規(guī)模越來越大,網絡計算量也越來越大;同時交互式推理任務中的對時延要求更加嚴格,深度神經網絡推理任務逐漸向AI加速硬件(比如GPU)進行遷移。MindSpore 1.3版本提供了更多與此相關的推理性能進行優(yōu)化,性能相比此前大幅提升。
基于Model Zoo中的一些典型的網絡,分別使用MindSpore1.2和MindSpore1.3版本對,統(tǒng)計推理請求平均執(zhí)行時間,推理性能提升3~8倍。
圖算融合加速MindSpore網絡訓練
圖算融合是MindSpore的關鍵技術之一,通過圖層融合與算子生成的協(xié)同優(yōu)化來提升網絡執(zhí)行性能。在之前版本,我們使能了NPU(昇騰)和GPU上圖算融合的基本能力,并且在標桿網絡上取得了不錯的成績。在1.3版本中,我們加強了圖算融合在GPU上的泛化能力,通過對Model Zoo 40多張主流網絡的驗證,平均可獲得89%的性能提升。以Transformer為例,使能圖算后,從2.5小時/epoch降低到1.75小時/epoch,完整訓練時間從5.4天降低到3.8天!
同時,在易用性方面我們新增了環(huán)境變量的控制方式,使得用戶不需要對網絡代碼做任何侵入修改,即可享受圖算融合帶來的性能收益:
export MS_GRAPH_KERNEL_FLAGS=”–opt_level=2”
我們選取了部分主流的網絡(NLP、推薦及CV)開展性能對比評測,使用圖算融合的有普遍的性能提升,提升詳情如下圖所示:
(免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )