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