比PyTorch更快,MindSpore一周年升級巨量新特性
一、效率提升
大幅提升動(dòng)態(tài)圖下分布式訓(xùn)練的效率
在深度學(xué)習(xí)中,當(dāng)數(shù)據(jù)集和參數(shù)量的規(guī)模越來越大,訓(xùn)練所需的時(shí)間和硬件資源會(huì)隨之增加,最后會(huì)變成制約訓(xùn)練的瓶頸。分布式并行訓(xùn)練,可以降低對內(nèi)存、計(jì)算性能等硬件的需求,是進(jìn)行訓(xùn)練的重要優(yōu)化手段。當(dāng)前MindSpore 動(dòng)態(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 動(dòng)態(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
二、創(chuàng)新性
分子模擬庫(SPONGE),來自社區(qū)分子動(dòng)力學(xué)工作組
MindSpore 版的 SPONGE 是在社區(qū)中的分子動(dòng)力學(xué)工作組 (MM WG) 中,由北大、深圳灣實(shí)驗(yàn)室高毅勤課題組與華為 MindSpore 團(tuán)隊(duì)聯(lián)合開發(fā)的分子模擬庫,具有高性能、模塊化等特性。
為何需要開發(fā) SPONGE?
分子動(dòng)力學(xué)模擬是用牛頓定律近似來描述微觀原子和分子尺度演化的計(jì)算機(jī)模擬方法。其既可用于基礎(chǔ)科學(xué)研究也可用于工業(yè)實(shí)際應(yīng)用。在基礎(chǔ)科學(xué)領(lǐng)域,分子動(dòng)力學(xué)方法有助于科研學(xué)者從微觀研究體系的物理化學(xué)性質(zhì)。
在工業(yè)生產(chǎn)中,其可以利用大規(guī)模計(jì)算的能力輔助藥物分子的設(shè)計(jì)和蛋白靶點(diǎn)的搜尋 [1,2]。由于模擬的時(shí)間和空間尺度限制,傳統(tǒng)分子動(dòng)力學(xué)軟件的應(yīng)用范圍受到較大限制。科研工作者也在不斷的開發(fā)新的力場模型[3,4]、抽樣方法[5,6] 以及嘗試結(jié)合新興的人工智能 [7,8] 來進(jìn)一步拓展分子動(dòng)力學(xué)模擬的適用領(lǐng)域。
由此,新一代的分子動(dò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ì)算等方式來解決電荷浮動(dòng)等問題[10]。即使采用機(jī)器學(xué)習(xí)降低計(jì)算量也會(huì)浪費(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 自動(dòng)并行、圖算融合等特性,SPONGE 可高效地完成傳統(tǒng)分子模擬過程。SPONGE 利用 MindSpore 自動(dòng)微分的特性,可以將神經(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ù)的版本更新中會(huì)陸續(xù)加入已經(jīng)理論驗(yàn)證好的 MetaITS 模塊、有限元計(jì)算模塊等功能。這些模塊將幫助 SPONGE 能更好的從事相變和金屬表面相關(guān)的模擬。同時(shí),MindSpore 版 SPONGE 各模塊逐步支持自動(dòng)微分和自動(dòng)并行,對于銜接機(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 高性能自動(dòng)微分能力,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)行知識推理。
動(dòng)態(tài)樣本選取:
TPRR 模型采用動(dòng)態(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 魯棒性測試工具 MindArmour,基于黑白盒對抗樣本(20 + 方法)、自然擾動(dòng)(10 + 方法)等技術(shù)提供高效的魯棒性評測方案,幫助客戶評估模型的魯棒性性,識別模型脆弱點(diǎn)。
OCR 是指利用光學(xué)設(shè)備去捕獲圖像并識別文字,減少人工成本,快速提升工作效率;如果攻擊者通過對待識別的文字做出人眼不易察覺的修改,而模型無法對其正確識別或處理,就會(huì)導(dǎo)致 OCR 服務(wù)對文字識別的準(zhǔn)確率下降,且使用人員不清楚問題背后的原因。測評團(tuán)隊(duì)使用 MindArmour 對 OCR 服務(wù)的魯棒性進(jìn)行測評,發(fā)現(xiàn) OCR 服務(wù)中部分模型對自然擾動(dòng)和對抗樣本的防御能力較差,如文本框檢測模型在校驗(yàn)噪聲、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