【安防展覽網(wǎng) 企業(yè)關(guān)注】 近期,國內(nèi)開源界發(fā)生了不少大事件,清華開源了計圖框架,曠視開源了天元框架,隨后,華為開源了自研的深度學(xué)習框架MindSpore。
目前其代碼已經(jīng)上線,首先發(fā)布的是0.1.0-alpha版本,接下來將逐步完善。
MindSpore作為華為整體AI解決方案的一部分,支持端邊云全場景的深度學(xué)習訓(xùn)練推理框架,主要應(yīng)用于計算機視覺、自然語言處理等AI領(lǐng)域,面向數(shù)據(jù)科學(xué)家、算法工程師等人群,提供設(shè)計友好、運行高效的開發(fā)體驗。
同時,MindSpore不但提供昇騰AI處理器原生支持及軟硬件協(xié)同優(yōu)化,也支持通用CPU和GPU。
MindSpore框架解讀
目前,人工智能的研究和生產(chǎn)之間存在巨大的鴻溝。
一方面,學(xué)術(shù)界AI相關(guān)的研究持續(xù)升溫,各種模型算法、訴求層出不求;另一方面,工業(yè)界的AI模型應(yīng)用也在不斷推出。各種不同場景,如平安城市、指揮交通、醫(yī)療生物等,都需要巨大的數(shù)據(jù)集和完備的功能來適應(yīng)特定的需求。
現(xiàn)有的框架多數(shù)開發(fā)門檻高,同時全場景能力不足,異構(gòu)性不強。MindSpore可以實現(xiàn)統(tǒng)一架構(gòu),一次訓(xùn)練,多處部署。通過實現(xiàn)AI算法即代碼,MindSpore可以顯著減少模型的開發(fā)時間。
從整體架構(gòu)來看,MindSpore具備基于源碼轉(zhuǎn)換的通用自動微分、自動實現(xiàn)分布式并行訓(xùn)練、數(shù)據(jù)處理、以及圖執(zhí)行引擎等功能特性。

1、自動微分系統(tǒng)
MindSpore第一大特點是其自動微分系統(tǒng)。在深度學(xué)習中,自動微分通常指對網(wǎng)絡(luò)模型自動求導(dǎo),通過梯度指導(dǎo)對網(wǎng)絡(luò)權(quán)重的優(yōu)化。
在當前主流的深度學(xué)習框架當中,有三種自動微分技術(shù):
第一種是基于靜態(tài)數(shù)據(jù)流圖的轉(zhuǎn)換,以TensorFlow為代表,可利用靜態(tài)編譯技術(shù)對網(wǎng)絡(luò)性能優(yōu)化。但是這種方法受制于數(shù)據(jù)流圖的表達形式,不能靈活地表達控制流。
第二種是以PyTorch為代表的基于動態(tài)圖的轉(zhuǎn)換。雖然這種方法可以使用戶靈活地使用控制流,但其也存在運行時資源開銷高的弊端,且不能運用靜態(tài)編譯技術(shù)對計算圖進行性能優(yōu)化。
后一種是MindSpore采用的技術(shù),基于源碼轉(zhuǎn)換的通用自動微分技術(shù)。
這種方法的好處在于,源以函數(shù)式編程框架為基礎(chǔ),以即時編譯的方式在中間表達上做自動微分變化,支持復(fù)雜控制流場景、高階函數(shù)和閉包。
由于支持對控制流的自動微分,技術(shù)上可以兼得前兩種微分技術(shù)的優(yōu)點,既支持靈活的原生的控制流表達,同時也可以在執(zhí)行前對網(wǎng)絡(luò)做靜態(tài)編譯優(yōu)化,生成高效的計算圖,從而提高執(zhí)行性能。
2、自動并行
第二大特性,是MindSpore具備自動實現(xiàn)分布式并行訓(xùn)練的能力。在模型研發(fā)過程當中,除設(shè)計模型自身的邏輯,還需要設(shè)計分布式并行訓(xùn)練的邏輯。
開發(fā)者不僅要分析數(shù)據(jù)量、參數(shù)量、集群網(wǎng)絡(luò)拓撲等因素來確定模型切分策略,還要考慮切分后的子模型設(shè)備綁定等問題,從而達到性能良好的并行訓(xùn)練效果。
對于邏輯復(fù)雜、參數(shù)大的模型,人工尋找優(yōu)的并行策略與實現(xiàn)業(yè)務(wù)目標并無直接關(guān)系,但是卻需要耗費大量的精力。MindSpore針對此問題,提出了全新的分布式并行訓(xùn)練模式,融合了數(shù)據(jù)并行、模型并行和混合并行模式。

MindSpore實現(xiàn)自動分布式并行訓(xùn)練是通過構(gòu)建基于數(shù)據(jù)量、模型參數(shù)量、網(wǎng)絡(luò)集群拓撲帶寬等信息的代價模型,自動選擇代價小的模型進行切分,并綁定模型到設(shè)備執(zhí)行。整個過程幾乎不需要開發(fā)者參與,可以使開發(fā)者更專注于模型邏輯的開發(fā)。
3、數(shù)據(jù)處理功能
MindSpore中的數(shù)據(jù)處理功能名為MindData,用于完成訓(xùn)練過程中數(shù)據(jù)的pipeline處理,具備數(shù)據(jù)加載、數(shù)據(jù)增強、導(dǎo)入訓(xùn)練等功能,并提供了簡單易用的編程接口,以及覆蓋CV/NLP等全場景的豐富數(shù)據(jù)處理能力。
此外,MindSpore也支持分布式訓(xùn)練。在分布式數(shù)據(jù)并行模式下,在每個批量batch之后,計算和模型信息會被分布到工作對象中,并提供了“切片與重采樣”兩種調(diào)整迭代數(shù)和分割數(shù)據(jù)的方法。
4、圖引擎模塊
圖引擎模塊負責MindSpore前端與底層硬件的交互任務(wù),是MindSpore內(nèi)部進行圖處理的模塊,負責將管理引擎?zhèn)飨聛淼膱D進行一系列的圖操作,終轉(zhuǎn)化為可以在底層硬件上直接運行的圖,并對圖中所用到的所有算子進行分配與管理。
在圖處理過程中,圖引擎會統(tǒng)一定義各插件模塊需要提供的接口,具體的插件由不同的功能模塊根據(jù)自己的能力提供,它會根據(jù)不同的插件提供的能力,實現(xiàn)優(yōu)的執(zhí)行選擇,來保證性能。
框架開源之爭
MindSpore的開源并不意外,在2019年8月華為全聯(lián)接大會上,華為正式發(fā)布昇騰910芯片時,同期發(fā)布了全場景AI計算框架MindSpore,并透露了MindSpore將在2020年一季度開源。
華為輪值總裁徐直軍在發(fā)布會上表示,MindSpore標志著華為全場景全棧AI解決方案的構(gòu)成,也標志著華為AI戰(zhàn)略的執(zhí)行進入了新的階段。

除了MindSpore以外,現(xiàn)在市面上存在多個開源框架,呈多種框架共存發(fā)展的狀態(tài):
開源框架:
?谷歌TensorFlow
?加州伯克利Caffe
?Facebook的PyTorch
?微軟CNTK
?谷歌Keras
?亞馬遜MXNet
國內(nèi)開源框架:
?百度PaddlePaddle
?曠視天元Brain++
?華為MindSpore
?清華計圖Jittor
?騰訊優(yōu)圖NCNN
?阿里X-DeepLearning
人工智能技術(shù)發(fā)展過程中,神經(jīng)網(wǎng)絡(luò)層級不斷加深,模型更加龐大精準,應(yīng)用逐漸豐富,其底層框架成為了科技巨頭的布局重點。
目前市面上的AI框架眾多,究其原因,開源框架是推進人工智能技術(shù)發(fā)展的重要動力,開源項目允許開發(fā)者查看、使用、復(fù)制和修改其源代碼,具有更新速度快、可二次開發(fā)、可擴展性強等特點,對于降低企業(yè)開發(fā)AI應(yīng)用的投入具有很好的效果。
因此,目前開源框架在人工智能發(fā)展大潮中被廣泛用于快速搭建AI開發(fā)環(huán)境,促進企業(yè)加速技術(shù)的產(chǎn)品化過程。
近期諸多的框架相繼開源,一方面證明了國內(nèi)技術(shù)廠商、院校對于基礎(chǔ)性研究增加;另一方面,也顯示出國內(nèi)廠商在人工智能發(fā)展和應(yīng)用過程中對于底層基礎(chǔ)設(shè)施的重視程度的提高。
眾多的框架相繼開源,也將為開發(fā)者提供更多的選擇,對于人工智能社區(qū)和生態(tài)都有所裨益。
放眼,更多的人工智能開源框架必將帶來各個框架與標準之間的競爭,同時這些基礎(chǔ)設(shè)施之間競爭也將提升人工智能的底層基礎(chǔ)性能,從而為人工智能上層應(yīng)用創(chuàng)新帶來更多的可能性。