國內(nèi)首個(gè)支持千億參數(shù)大模型訓(xùn)練的AI計(jì)算框架MindSpore 1.2正式發(fā)布,無論是動態(tài)圖分布式訓(xùn)練效率的大幅提升,還是一鍵模型遷移、AI C4魯棒性標(biāo)準(zhǔn)達(dá)標(biāo)、深度分子模擬及量子機(jī)器學(xué)習(xí)等,都能讓AI開發(fā)者盡享AI開發(fā)。
一、效率提升
超大模型自動并行
如何在大集群下高效訓(xùn)練千億至萬億參數(shù)模型?當(dāng)前主要面臨兩個(gè)挑戰(zhàn):切分難——用戶需要綜合考慮參數(shù)量、計(jì)算量、計(jì)算類型、集群帶寬拓?fù)浜蜆颖緮?shù)量等,才能設(shè)計(jì)出性能較優(yōu)的并行切分策略;編碼難——模型編碼除了要考慮算法以外,還需要編寫大量并行切分和通信代碼。
MindSpore采用多維度自動并行,通過數(shù)據(jù)并行、模型并行、Pipeline并行、異構(gòu)并行、重復(fù)計(jì)算、高效內(nèi)存復(fù)用及拓?fù)涓兄{(diào)度,降低通信開銷,實(shí)現(xiàn)整體迭代時(shí)間最小(計(jì)算時(shí)間+通信時(shí)間)。
大幅提升動態(tài)圖下分布式訓(xùn)練的效率
在深度學(xué)習(xí)中,當(dāng)數(shù)據(jù)集和參數(shù)量的規(guī)模越來越大,訓(xùn)練所需的時(shí)間和硬件資源會隨之增加,最后會變成制約訓(xùn)練的瓶頸。分布式并行訓(xùn)練,可以降低對內(nèi)存、計(jì)算性能等硬件的需求,是進(jìn)行訓(xùn)練的重要優(yōu)化手段。當(dāng)前MindSpore動態(tài)圖模式已經(jīng)支持?jǐn)?shù)據(jù)并行,通過對數(shù)據(jù)按batch維度進(jìn)行切分,將數(shù)據(jù)分配到各個(gè)計(jì)算單元中進(jìn)行模型訓(xùn)練,從而縮短訓(xùn)練時(shí)間。
基于ResNet50 v1.5+ImageNet數(shù)據(jù)集測試,在昇騰計(jì)算硬件平臺,MindSpore動態(tài)圖模式分布式的表現(xiàn),可以達(dá)到PyTorch典型分布式場景的1.6倍, 靜態(tài)圖模式分布式的表現(xiàn)也可以達(dá)到TensorFlow典型分布式場景的2倍。
PyNative快速入門:
https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/debug_in_pynative_mode.html
數(shù)據(jù)預(yù)處理加速Dvpp
數(shù)據(jù)是機(jī)器學(xué)習(xí)的基礎(chǔ)。在網(wǎng)絡(luò)推理場景中,我們需要針對不同的數(shù)據(jù)進(jìn)行數(shù)據(jù)的預(yù)處理,從中過濾出核心信息放入我們訓(xùn)練好的模型中進(jìn)行推理預(yù)測。在實(shí)際應(yīng)用場景中,我們往往需要對大量的原始數(shù)據(jù)進(jìn)行推理,比如實(shí)時(shí)的視頻流等。因此,我們在昇騰推理平臺引入了Dvpp模塊,來針對網(wǎng)絡(luò)推理數(shù)據(jù)預(yù)處理流程進(jìn)行加速。
Dvpp數(shù)據(jù)預(yù)處理模塊提供C++接口,提供圖片的解碼、縮放,中心摳圖、標(biāo)準(zhǔn)化等功能。在Dvpp模塊的設(shè)計(jì)中,考慮到整體的易用性,其功能與MindData現(xiàn)有CPU算子有重疊,我們將其API統(tǒng)一,通過推理執(zhí)行接口設(shè)置運(yùn)行設(shè)備來進(jìn)行區(qū)分。用戶可以根據(jù)自身硬件設(shè)備環(huán)境來選擇最佳的執(zhí)行算子。
Dvpp數(shù)據(jù)預(yù)處理流程如下圖所示:
我們在一臺昇騰推理服務(wù)器上測試了Dvpp系列算子的性能收益。該服務(wù)器擁有128個(gè)主頻為2.6GHz的CPU核心,以及128Gb的內(nèi)存空間。在實(shí)驗(yàn)中,我們選取yoloV3網(wǎng)絡(luò),同時(shí)選取coco2017推理數(shù)據(jù)集40504張圖片進(jìn)行推理,最終得到模型輸入尺寸為[416, 416]的圖片。
我們分別使用Dvpp算子和CPU算子進(jìn)行數(shù)據(jù)預(yù)處理,得到如下性能對比:
可以看到Dvpp系列算子相較于CPU算子在處理大量數(shù)據(jù)時(shí)性能優(yōu)勢明顯,在本實(shí)驗(yàn)中處理40504張圖片性能FPS提升129%。
查看教程:
https://www.mindspore.cn/tutorial/inference/zh-CN/r1.2/multi_platform_inference_ascend_310_mindir.html#ascend-310
MindSpore for IoT
相較于移動終端設(shè)備,IoT設(shè)備上系統(tǒng)資源有限,對ROM空間占用、運(yùn)行時(shí)內(nèi)存和功耗要求較高,為了使得IoT設(shè)備上也能方便快速的部署AI應(yīng)用,MindSpore Lite此次正式開源了代碼自動生成工具Codegen,旨在將模型編譯為極簡的代碼,用于推理。
Codegen可對接MindSpore Lite的NNACL算子庫和ARM的CMSIS算子庫,支持生成可在X86/ARM64/ARM32A/ARM32M平臺部署的推理代碼。
易上手:用戶輸入ms模型文件,并指定推理執(zhí)行硬件平臺,即可生成與該模型執(zhí)行相關(guān)的代碼、編譯構(gòu)建腳本。
極致優(yōu)化:無圖引擎,模型即代碼,極小ROM占用完成推理。算子數(shù)據(jù)重排、內(nèi)存分配移至離線完成,節(jié)省了初始化時(shí)間;同時(shí)引入Conv & BN & Pooling融合,Conv分塊計(jì)算等技術(shù),達(dá)到極致性能。我們的方案在華為內(nèi)部應(yīng)用廣泛,比如在Huawei Watch GT系列的智慧抬腕亮屏算法中,推理內(nèi)存占用僅1KB,時(shí)延低至5ms。
Codegen快速入門:
https://www.mindspore.cn/tutorial/lite/zh-CN/master/quick_start/quick_start_codegen.html
可解釋AI能力
MindSpore在MindInsight部件中集成了的可解釋AI能力:顯著圖可視化、反事實(shí)解釋和可解釋AI評估體系(度量體系),旨在幫忙開發(fā)者更好進(jìn)行模型調(diào)優(yōu)。
顯著圖可視化和反事實(shí)解釋:能夠?yàn)閳D片分類模型的推理結(jié)果,標(biāo)識影響分類結(jié)果的關(guān)鍵特征,方便理解分類依據(jù),幫助分析定位分類錯(cuò)誤原因,加速模型調(diào)優(yōu)。
這個(gè)例子中,有個(gè)錯(cuò)誤預(yù)測標(biāo)簽“person”,根據(jù)顯著圖可視化結(jié)果,高亮區(qū)域在摩托車的前部,便于針對性的分析誤判的可能原因。
在這個(gè)例子中,圖片被錯(cuò)分為“cat”,使用基于層級遮掩的反事實(shí)解釋,發(fā)現(xiàn)對這個(gè)分類結(jié)果影響最可能的區(qū)域是右邊遮掩后留下的區(qū)域,便于用戶發(fā)現(xiàn)判斷錯(cuò)誤的緣由,從而幫助調(diào)優(yōu)。
評估體系:面向各種解釋方法,給出在具體場景下,選中解釋方法在不同度量方法下的解釋效果得分,助力用戶選擇最優(yōu)的解釋方法,從而更好的幫助模型調(diào)優(yōu)。
查看教程:
https://www.mindspore.cn/tutorial/training/zh-CN/r1.1/advanced_use/model_explaination.html
二、創(chuàng)新性
分子模擬庫(SPONGE)——來自社區(qū)分子動力學(xué)工作組
MindSpore版的SPONGE是在社區(qū)中的分子動力學(xué)工作組(MM WG)中,由北大、深圳灣實(shí)驗(yàn)室高毅勤課題組與華為MindSpore團(tuán)隊(duì)聯(lián)合開發(fā)的分子模擬庫,具有高性能、模塊化等特性。
為何需要開發(fā)SPONGE
分子動力學(xué)模擬是用牛頓定律近似來描述微觀原子和分子尺度演化的計(jì)算機(jī)模擬方法。其既可用于基礎(chǔ)科學(xué)研究也可用于工業(yè)實(shí)際應(yīng)用。
在基礎(chǔ)科學(xué)領(lǐng)域,分子動力學(xué)方法有助于科研學(xué)者從微觀研究體系的物理化學(xué)性質(zhì)。在工業(yè)生產(chǎn)中,其可以利用大規(guī)模計(jì)算的能力輔助藥物分子的設(shè)計(jì)和蛋白靶點(diǎn)的搜尋[1,2]。由于模擬的時(shí)間和空間尺度限制,傳統(tǒng)分子動力學(xué)軟件的應(yīng)用范圍受到較大限制??蒲泄ぷ髡咭苍诓粩嗟拈_發(fā)新的力場模型[3,4]、抽樣方法[5,6]以及嘗試結(jié)合新興的人工智能[7,8]來進(jìn)一步拓展分子動力學(xué)模擬的適用領(lǐng)域。
由此,新一代的分子動力學(xué)軟件就需要被提上日程。其應(yīng)該具有模塊化的特性,能夠支持科學(xué)家高效的創(chuàng)造和搭建出能夠驗(yàn)證其理論模型的結(jié)構(gòu)。同時(shí),它還需要兼顧傳統(tǒng)模擬方法的高效性,能夠兼容其在傳統(tǒng)領(lǐng)域上的使用。此外,為實(shí)現(xiàn)分子模擬+機(jī)器學(xué)習(xí)的自然融合,其還應(yīng)該擁有嵌入人工智能框架的形態(tài)。SPONGE就是基于這些理念而被創(chuàng)造出的全新的,完全自主的分子模擬軟件。
相比于之前在傳統(tǒng)分子模擬軟件上結(jié)合SITS方法進(jìn)行生物分子增強(qiáng)抽樣[9],SPONGE原生支持SITS并對計(jì)算流程進(jìn)行優(yōu)化使得其使用SITS方法模擬生物體系更加高效。針對極化體系,傳統(tǒng)分子模擬采用結(jié)合量化計(jì)算等方式來解決電荷浮動等問題[10]。即使采用機(jī)器學(xué)習(xí)降低計(jì)算量也會浪費(fèi)大量時(shí)間在程序數(shù)據(jù)傳送的問題上。而SPONGE利用模塊化的特點(diǎn)可支持內(nèi)存上直接與機(jī)器學(xué)習(xí)程序通信大大降低了整體計(jì)算時(shí)間。
圖1:結(jié)合SITS等方法可進(jìn)行Na[CpG], Lys生物分子模擬
圖2:機(jī)器學(xué)習(xí)+分子模擬方法可更快更準(zhǔn)確地模擬極化體系,圖為[C1MIm]Cl離子液體模擬
MindSpore + SPONGE
基于MindSpore自動并行、圖算融合等特性,SPONGE可高效地完成傳統(tǒng)分子模擬過程。SPONGE利用MindSpore自動微分的特性,可以將神經(jīng)網(wǎng)絡(luò)等AI方法與傳統(tǒng)分子模擬進(jìn)行結(jié)合。
圖 :SPONGE模塊化設(shè)計(jì)結(jié)構(gòu)圖
隨MindSpore1.2版本開源的SPONGE具備以下優(yōu)勢:
1、全模塊化分子模擬。模塊化構(gòu)建分子模擬算法,易于領(lǐng)域研發(fā)人員進(jìn)行理論和算法的快速實(shí)現(xiàn),并為外部開發(fā)人員貢獻(xiàn)子模塊提供友好的開源社區(qū)環(huán)境。
2、傳統(tǒng)分子模擬與MindSpore結(jié)合的人工智能算法的全流程實(shí)現(xiàn)。在MindSpore中,研發(fā)人員能便利的將AI方法作用于分子模擬中。全算子化的SPONGE將與MindSpore進(jìn)一步結(jié)合成為新一代端到端可微的分子模擬軟件,實(shí)現(xiàn)人工智能與分子模擬的自然融合。
教程文檔:
https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/hpc_sponge.html
MindSpore+SPONGE展望
近期展望:在后續(xù)的版本更新中會陸續(xù)加入已經(jīng)理論驗(yàn)證好的MetaITS模塊、有限元計(jì)算模塊等功能。這些模塊將幫助SPONGE能更好的從事相變和金屬表面相關(guān)的模擬。同時(shí),MindSpore版SPONGE各模塊逐步支持自動微分和自動并行,對于銜接機(jī)器學(xué)習(xí)方案提供更友好的支持。
遠(yuǎn)期展望:拓展SPONGE的各種特色模塊,使其能夠描述大部分微觀體系并同時(shí)具有較高的計(jì)算和采樣效率。對特定工業(yè)需求,如藥物篩選或晶型預(yù)測,將基于SPONGE衍生出完整的流程化計(jì)算方案,能夠滿足大規(guī)模并行計(jì)算的需求。在MindSpore框架下,SPONGE具有元優(yōu)化功能,從而實(shí)現(xiàn)更準(zhǔn)確和更快的力場擬合。
量子機(jī)器學(xué)習(xí)(MindQuantum)——來自社區(qū)量子力學(xué)工作組
MindQuantum是結(jié)合MindSpore和HiQ開發(fā)的量子機(jī)器學(xué)習(xí)框架,支持多種量子神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和推理。得益于華為HiQ團(tuán)隊(duì)的量子計(jì)算模擬器和MindSpore高性能自動微分能力,MindQuantum能夠高效處理量子機(jī)器學(xué)習(xí)、量子化學(xué)模擬和量子優(yōu)化等問題,性能達(dá)到業(yè)界TOP1(Benchmark),為廣大的科研人員、老師和學(xué)生提供了快速設(shè)計(jì)和驗(yàn)證量子機(jī)器學(xué)習(xí)算法的高效平臺。
MindQuantum vs TF Quantum/Paddle Quantum性能對比
查看教程:
https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/parameterized_quantum_circuit.html
多跳知識推理問答(TPRR)
TPRR是華為泊松實(shí)驗(yàn)室與華為MindSpore團(tuán)隊(duì)提出的解決開放域多跳問題的通用模型。相比于傳統(tǒng)問答僅需從單個(gè)文檔中檢索答案,多跳知識推理問答需要從多個(gè)佐證文檔得到最終答案,并返回問題到答案的推理鏈。TPRR基于MindSpore混合精度特性,可以高效地完成多跳問答推理過程。
全路徑建模:TPRR模型在多跳問題推理鏈的每一個(gè)環(huán)節(jié)中基于全部推理路徑的條件概率建模,模型以“全局視角”進(jìn)行知識推理。
動態(tài)樣本選取:TPRR模型采用動態(tài)樣本的建模方式,通過更強(qiáng)的對比學(xué)習(xí)提升模型多跳問答的能力。
算法流程圖如下:
TPRR模型在國際權(quán)威的多跳問答榜單HotpotQA評測中榮登榜首,榜單圖如下:
查看教程:
https://www.mindspore.cn/tutorial/inference/zh-CN/r1.2/nlp_tprr.html
三、易用性
一鍵模型遷移(MindConverter)
腳本遷移工具(MindConverter)旨在幫助算法工程師將存量的基于三方框架開發(fā)的模型快速遷移至MindSpore生態(tài)。根據(jù)用戶提供的TensorFlow PB或ONNX模型文件,工具通過對模型的計(jì)算圖(Computational Graph)解析,生成一份具備可讀性的MindSpore Python模型定義腳本(.py)以及相應(yīng)的模型權(quán)重(.ckpt)。
一鍵遷移:通過MindConverter CLI命令即可一鍵將模型遷移為MindSpore下模型定義腳本以及相應(yīng)權(quán)重文件,省去模型重訓(xùn)以及模型定義腳本開發(fā)時(shí)間;
100%遷移率:在MindConverter具備跨框架間算子映射的情況下,遷移后腳本可直接用于推理,實(shí)現(xiàn)100%遷移率;
支持模型列表:目前工具已支持計(jì)算機(jī)視覺領(lǐng)域典型模型、自然語言處理BERT預(yù)訓(xùn)練模型腳本及權(quán)重的遷移,詳細(xì)模型列表見 README;
BERT模型定義遷移結(jié)果展示(部分代碼):
查看教程:
https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/migrate_3rd_scripts_mindconverter.html?highlight=mindconverter
四、可靠性
魯棒性評測工具助力OCR服務(wù)達(dá)成首個(gè)AI C4魯棒性標(biāo)準(zhǔn)要求
MindSpore魯棒性測試工具M(jìn)indArmour,基于黑白盒對抗樣本(20+方法)、自然擾動(10+方法)等技術(shù)提供高效的魯棒性評測方案,幫助客戶評估模型的魯棒性性,識別模型脆弱點(diǎn)。
OCR是指利用光學(xué)設(shè)備去捕獲圖像并識別文字,減少人工成本,快速提升工作效率;如果攻擊者通過對待識別的文字做出人眼不易察覺的修改,而模型無法對其正確識別或處理,就會導(dǎo)致OCR服務(wù)對文字識別的準(zhǔn)確率下降,且使用人員不清楚問題背后的原因。
測評團(tuán)隊(duì)使用MindArmour對OCR服務(wù)的魯棒性進(jìn)行測評,發(fā)現(xiàn)OCR服務(wù)中部分模型對自然擾動和對抗樣本的防御能力較差,如文本框檢測模型在椒鹽噪聲、PGD、PSO(粒子群)等攻擊算法下準(zhǔn)確率小于66%;并以此指導(dǎo)模型開發(fā)團(tuán)隊(duì)通過對抗樣本檢測、數(shù)據(jù)增強(qiáng)訓(xùn)練等技術(shù),使得模型對惡意樣本的識別準(zhǔn)確率達(dá)到95+%,提高了模型及OCR服務(wù)的魯棒性。
AI C4標(biāo)準(zhǔn)鏈接:
https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/CloudComputing/AIC4/AI-Cloud-Service-Compliance-Criteria-Catalogue_AIC4.html
申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!