日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一代深度學(xué)習(xí)框架研究

于璠

華為技術(shù)有限公司

摘要:從人工智能的歷史出發(fā),簡述深度學(xué)習(xí)發(fā)展歷程以及目前的挑戰(zhàn),通過介紹新一代深度學(xué)習(xí)框架的特點,分析總體框架,闡述自動并行、自動微分、自動調(diào)優(yōu)等技術(shù)優(yōu)勢以及協(xié)同昇騰處理器的性能優(yōu)勢,希望可以為深度學(xué)習(xí)技術(shù)研究人員提供參考。

關(guān)鍵詞:人工智能;機(jī)器學(xué)習(xí) ; 深度學(xué)習(xí) ; 計算框架 ; MindSpore

1 引言

眾所周知,人工智能(artificial intelligence,AI)作為影響廣泛的顛覆性基礎(chǔ)技術(shù),將對未來各行業(yè)的發(fā)展產(chǎn)生深遠(yuǎn)影響。發(fā)展人工智能目前已上升到國家戰(zhàn)略層面,但人工智能的發(fā)展并非一帆風(fēng)順。20世紀(jì)50年代,人工智能早期的發(fā)展極其緩慢,雖然在語音處理和問題求解等方面取得了不俗的表現(xiàn),但仍存在很大的技術(shù)局限性;之后人工智能經(jīng)歷了兩輪寒冬,直到20世紀(jì)90年代中期,遵循摩爾定律,計算機(jī)的運算能力呈指數(shù)級增長,各種機(jī)器學(xué)習(xí)算法得以快速驗證、訓(xùn)練和應(yīng)用,從而引發(fā)了人工智能的復(fù)興。

1997年,IBM公司制造的深藍(lán)(DeepBlue)計算機(jī)系統(tǒng)戰(zhàn)勝了當(dāng)時的國際象棋世界冠軍卡斯帕羅夫,引起了社會各界對人工智能的高度關(guān)注,重燃了人們對人工智能的信心。自此,人工智能的新一波浪潮逐步席卷全球。在本輪人工智能浪潮中,最具價值也最具影響力的一項研究當(dāng)屬深度學(xué)習(xí)理論。得益于大數(shù)據(jù)的不斷積累和計算機(jī)的飛速發(fā)展,海量數(shù)據(jù)解決了神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過擬合問題,而高性能的硬件設(shè)備使模型訓(xùn)練成為可能。近年來,隨著深度學(xué)習(xí)研究的不斷深入,人們目睹了谷歌AlphaGo成功擊敗人類世界圍棋冠軍以及包括無人車在內(nèi)的各項智能技術(shù)的蓬勃發(fā)展,人們仿佛再一次看到了人工智能趕超人類的希望。總而言之,人工智能正在逐步改變?nèi)祟惖娜粘I钅J剑{借其驚人的效果和迅猛的發(fā)展勢頭,廣泛融入各個行業(yè)的實際應(yīng)用中。深度學(xué)習(xí)的研究和應(yīng)用在近幾十年得到了爆炸式的發(fā)展,并且已經(jīng)在圖像識別、語音識別、機(jī)器翻譯以及游戲等方面取得了巨大的成功。

為了獲得更好的性能,深度學(xué)習(xí)的網(wǎng)絡(luò)結(jié)構(gòu)日益復(fù)雜,網(wǎng)絡(luò)深度和數(shù)據(jù)集也日益增大,這給深度學(xué)習(xí)的計算框架帶來了巨大的挑戰(zhàn)。但現(xiàn)有的AI計算框架很難兼顧性能和易用性,而且深度學(xué)習(xí)應(yīng)用已經(jīng)從云側(cè)擴(kuò)展到了邊緣和端側(cè),這對AI計算框架提出了新的挑戰(zhàn),如在保護(hù)用戶隱私的前提下,讓開發(fā)者能夠?qū)崿F(xiàn)AI應(yīng)用在云、邊緣和端側(cè)的快速部署,全場景互聯(lián)互通。因此,全場景的AI計算框架應(yīng)滿足以下3個要求:

● 實時訓(xùn)練或推理;

● 每個終端使用和訓(xùn)練其私有模型;

● 訓(xùn)練好的模型應(yīng)能在多樣化的硬件平臺上運行。

為了更清晰地認(rèn)識業(yè)界現(xiàn)有的計算框架,從易開發(fā)、高效執(zhí)行和全場景3個角度對國外的TensorFlow、PyTorch、MXNet以及國內(nèi)的PaddlePaddle進(jìn)行了比較,見表1。

其中,易開發(fā)表現(xiàn)為API友好、調(diào)試難度低以及額外的自動化屬性。高效執(zhí)行包括計算效率、數(shù)據(jù)預(yù)處理效率和分布式訓(xùn)練效率。全場景指框架同時支持云、邊緣以及端側(cè)場景。可以看出,這些訓(xùn)練框架仍然不能滿足之前提出的3個要求。因此,需要開發(fā)一個覆蓋所有場景的深度學(xué)習(xí)框架,滿足實時、專用、多樣化的需求。本文詳細(xì)闡述了筆者團(tuán)隊自研的新一代深度學(xué)習(xí)框架(MindScope)的架構(gòu)、技術(shù)開發(fā)思路、性能優(yōu)勢。

一代深度學(xué)習(xí)框架研究

 

2 MindSpore的總體框架

MindSpore是華為技術(shù)有限公司推出的新一代深度學(xué)習(xí)框架,其總體框架分為前端表示層(mind expression,ME)、計算圖引擎(graph engine,GE)和后端運行時3層,如圖1所示。

一代深度學(xué)習(xí)框架研究

圖1 MindSpore總體框架

2.1 前端表示層

前端表示層向用戶提供Python接口,并將用戶的Python代碼轉(zhuǎn)換為數(shù)據(jù)流圖。該部分包含Python API、MindSpore中間表示(intermediate representation,IR)統(tǒng)一計算圖表達(dá)、計算圖高級別優(yōu)化(graph high level optimization,GHLO)3個部分。

● Python API向用戶提供統(tǒng)一的模型訓(xùn)練、推理、導(dǎo)出接口以及統(tǒng)一的數(shù)據(jù)處理、增強(qiáng)、格式轉(zhuǎn)換接口。

● MindSpore IR提供統(tǒng)一的計算圖表達(dá),MindSpore基于此IR進(jìn)行pass優(yōu)化。

● GHLO包含與硬件無關(guān)的優(yōu)化,如高級別優(yōu)化(high level optimization,HLO) (如死代碼消除等)、自動并行和自動微分等功能。

2.2 計算圖引擎

計算圖引擎負(fù)責(zé)對與硬件相關(guān)的資源進(jìn)行管理和優(yōu)化,將平臺特有的信息傳遞給ME。該部分包含計算圖低級別優(yōu)化(graph low level optimization,GLLO)、圖執(zhí)行。

● GLLO包含與硬件相關(guān)的優(yōu)化,即低級別優(yōu)化(low level optimization,LLO)以及算子融合、緩沖(buffer)融合等與軟硬件結(jié)合相關(guān)的深度優(yōu)化。

● 圖執(zhí)行提供離線圖執(zhí)行、分布式訓(xùn)練所需的通信接口等功能。通過圖編譯將各個算子組織成統(tǒng)一的模型并下發(fā)到設(shè)備(device)側(cè),在宿主(host)側(cè)只需一個觸發(fā)動作即可開啟device側(cè)的模型訓(xùn)練,大大減少了host與device在模型訓(xùn)練中的交互次數(shù)。而去中心化的梯度聚合歸約自動分段融合,根據(jù)不同模型自動生成不同的融合策略,以提升通信效率,無中心點的設(shè)計可以支持更大的集群規(guī)模,降低了集群的開銷。

2.3 后端運行時

后端運行時包含云、邊、端上不同環(huán)境(CPU、GPU、華為昇騰處理器、Android/IOS)中的高效運行環(huán)境。

3 MindSpore的技術(shù)開發(fā)思路

MindSpore有三大技術(shù)優(yōu)勢,分別是自動并行、自動微分、自動調(diào)優(yōu),這些優(yōu)勢大大提高了深度學(xué)習(xí)模型的訓(xùn)練效率,同時也極大地方便了AI工程師進(jìn)行編碼和調(diào)試。

3.1 自動并行

隨著數(shù)據(jù)集和模型越來越大,受限于單卡內(nèi)存,數(shù)據(jù)并行遇到了瓶頸,需要混合并行。現(xiàn)在主流框架的做法是通過手動切分網(wǎng)絡(luò)模型的方式來進(jìn)行模型并行,手動切分網(wǎng)絡(luò)模型難度非常大,對開發(fā)者的要求非常高,需要專家經(jīng)驗。而且在切分網(wǎng)絡(luò)模型的同時,又要做數(shù)據(jù)并行,這極大地提高了開發(fā)的復(fù)雜度。最近有研究者提出了簡化混合并行的方法,但這些方法在切分策略、適用的網(wǎng)絡(luò)和速度上都存在局限性。

針對上述問題,MindSpore提供了自動并行特性,用于實現(xiàn)自動的數(shù)據(jù)并行和模型并行的混合并行訓(xùn)練。自動并行示意圖如圖2所示。

一代深度學(xué)習(xí)框架研究

圖2 自動并行示意

關(guān)鍵技術(shù)開發(fā)的核心思路是在并行切分方面打破樣本和參數(shù)的邊界,按算子的輸入/輸出數(shù)據(jù)進(jìn)行維度切分,將算子切分到多個節(jié)點執(zhí)行,進(jìn)而實現(xiàn)并行。在MindSpore前端編譯器中,通過算子切分、整圖切分、集群拓?fù)涓兄{(diào)度、并行切分策略自動搜索等關(guān)鍵技術(shù),實現(xiàn)計算的自動并行。

整圖切分是指遍歷整個計算圖,將每個算子切分到多設(shè)備,相連算子間如果切分策略不同,則會自動插入一個張量(tensor)進(jìn)行數(shù)據(jù)分布重排列,用于銜接兩個算子間的計算。

由于節(jié)點內(nèi)卡間通信的帶寬、時延比節(jié)點間通信高,所以集群拓?fù)涓兄{(diào)度是指將通信量大的數(shù)據(jù)維度切分到節(jié)點內(nèi)多卡上,將通信量小或者對時延、帶寬不敏感的維度切分到節(jié)點間。

為了進(jìn)一步幫助用戶更加快速地進(jìn)行并行網(wǎng)絡(luò)訓(xùn)練,在前面的基礎(chǔ)上,引入了并行切分策略自動搜索的特性,主要圍繞昇騰910構(gòu)建代價模型(cost model),進(jìn)而計算出不同數(shù)據(jù)量、不同算子以及在不同切分策略下的計算通信比,然后通過動態(tài)規(guī)劃等算法,自動搜索出在一定內(nèi)存閾值下性能最優(yōu)的切分策略。使用這個并行切分策略自動搜索算法,不需要用戶指定模型如何切分,MindSpore框架可以實現(xiàn)自動的模型切分。用戶只需要一行代碼,就能對一個單機(jī)的模型做自動的混合并行訓(xùn)練。

樣例代碼如下。

context.set_auto_parallel_context(parallel_mode=ParallelMode.AUTO_PARALLEL,device_num=dev_num)

3.2 自動微分

資深的深度學(xué)習(xí)開發(fā)者都知道,手動微分求解的過程不僅求導(dǎo)過程復(fù)雜,而且結(jié)果很容易出錯,因此現(xiàn)有的深度學(xué)習(xí)框架都具有自動微分的特性,可以幫助開發(fā)者利用自動微分技術(shù)實現(xiàn)自動求導(dǎo),解決這個復(fù)雜、關(guān)鍵的問題。

根據(jù)實現(xiàn)原理的不同,深度學(xué)習(xí)框架的自動微分分為以谷歌的TensorFlow為代表的圖方法、以臉書的PyTorch為代表的運算符重載以及以MindSpore為代表的源碼轉(zhuǎn)化(source to source,S2S)方法,自動微分技術(shù)路徑如圖3所示。

一代深度學(xué)習(xí)框架研究

圖3 自動微分技術(shù)路徑

圖方法實現(xiàn)簡單,并且圖的數(shù)據(jù)結(jié)構(gòu)容易進(jìn)行優(yōu)化和并行。不過圖方法的可編程性一直飽受爭議,用戶需要理解圖的概念和接口(如數(shù)據(jù)節(jié)點、通信節(jié)點、計算節(jié)點、數(shù)據(jù)邊、依賴邊、引用邊等),存在一定的學(xué)習(xí)成本。并且,在圖方法中控制流、高階導(dǎo)數(shù)的表示較為復(fù)雜。

運算符重載比較符合用戶尤其是研究人員的編程習(xí)慣,很受學(xué)術(shù)界歡迎。不過這種方式需要使用宿主語言(host language)的解釋器,并且在使用過程中需要先運行所有算子,并使用類似磁帶(tape)的模式記錄運行過程,因此開銷比較大,同時這種動態(tài)方式也不利于反向性能優(yōu)化。

MindSpore采用的S2S自動微分技術(shù)兼顧了可編程性和性能,一方面它能夠與編程語言保持一致的編程體驗,另一方面它是IR粒度的可微分技術(shù),可復(fù)用現(xiàn)代編譯器的優(yōu)化能力,性能也更好。

S2S自動微分技術(shù)使用了高效易調(diào)試的可微編程架構(gòu)。首先在接口層提供Python編程接口,包括控制流表達(dá),有利于用戶快速入門。樣例代碼如下。

def cost(x,y):return x * (x + y)

@mindspore

def test_grad (x,y):

return grad_all(cost)(x,y)

def main():

test_grad (2,1)

第一步:用Python代碼定義一個計算圖(函數(shù))。

第二步:利用MindSpore提供的反向接口進(jìn)行自動微分,這一步的結(jié)果是一個反向的計算圖(函數(shù))。

第三步:給定一些輸入,就能獲取第一步中的計算圖(函數(shù))在給定輸入處的導(dǎo)數(shù)。

在此樣例中,自動微分的結(jié)果是圖中所有輸入的導(dǎo)數(shù)。MindSpore的反向接口同樣提供選項計算某一個或者一部分輸入的導(dǎo)數(shù)。

其次,IR粒度的可微分技術(shù)能夠把用戶定義的網(wǎng)絡(luò)源代碼通過解析驗證等過程,轉(zhuǎn)化為MindSpore定義的IR,也就是MindSpore IR。在IR的基礎(chǔ)上應(yīng)用IR更變器方法(IR mutator method),最終生成反向代碼。在此過程中也應(yīng)用了算子融合等技術(shù),進(jìn)一步提升了反向性能。

MindSpore對控制流的表達(dá)如圖4所示,包括循環(huán)和條件。可以看到代碼編程風(fēng)格與原生Python保持一致,更重要的是MindSpore在生成控制流的反向時不會對循環(huán)進(jìn)行展開,而是在IR基礎(chǔ)上進(jìn)行反向計算,避免了表達(dá)式膨脹,從而提升了性能。

一代深度學(xué)習(xí)框架研究

圖4 MindSpore對控制流的表達(dá)

相比其他框架,MindSpore可以降低20%的核心代碼量,降低了開發(fā)門檻,整體提升50%以上的效率。同時,MindSpore天然支持編譯優(yōu)化,進(jìn)一步提升了代碼運行效率,有效降低了科研工程門檻。

MindSpore圖層面的自動微分樣例代碼如下。

class Net(Cell):

def __init__(self):

self.w = Parameter(Tensor(np.ones([10])))

def forward(x,y):

return x + y

#定義網(wǎng)絡(luò)

net = Net()

x = Tensor(np.ones([10]))

y = Tensor(np.ones([10]))

#自動微分推導(dǎo)

gout = grad_all (net)(x,y)

除了圖層面的自動微分以外, MindSpore同時支持算子層面的自動微分。在提供深度學(xué)習(xí)主要網(wǎng)絡(luò)的算子的同時,MindSpore自帶的張量引擎(tensor engine)支持用戶使用Python特定領(lǐng)域語言(domain specific language,DSL)自定義算子,并且提供算子級的自動微分接口。通過使用Python DSL,用戶可以在Python中自定義算子,如同數(shù)學(xué)中用公式定義函數(shù)一樣。而張量引擎的算子自動微分接口可以直接對DSL定義的算子進(jìn)行微分,正如數(shù)學(xué)中使用統(tǒng)一的微分符號表示求導(dǎo)一樣,這樣一來,代碼的書寫更加簡潔直觀,更貼近用戶的書寫習(xí)慣。樣例代碼如下。

def sigmoid(x)

#前向算子的 DSL 實現(xiàn)

from te.lang.cce import vrec,vadds,vexp,vmuls

res = vrec(vadds(vexp(vmuls(x,-1.0)),1.0))

return res

def sigmoid _ad(dout,x)

import te

#前向算子引用

out = sigmoid(x)

#前項算子自動微分后生成反向算子

dx]= te.differentiate(out,[x],dout)

return dx

這里的前項算子是用戶用DSL自定義的算子,也是算子級自動微分的求解目標(biāo)。接下來利用張量引擎提供的反向接口推導(dǎo)出反向算子。對于多輸入的算子來說,反向算子接口可以指定一個或者多個前向算子的輸入,然后對這些輸入同時進(jìn)行自動微分計算。另外,與圖層面的自動微分不同,算子級的自動微分額外接收反向圖中上一層算子(對應(yīng)正向圖的下一層算子)的微分結(jié)果作為輸入,然后使用鏈?zhǔn)椒▌t計算出該層反向算子的結(jié)果。數(shù)學(xué)中高階導(dǎo)數(shù)是通過對函數(shù)反復(fù)使用微分算子計算得到的,同樣,在MindSpore中,用戶可以通過對算子反復(fù)使用反向接口來計算算子的高階導(dǎo)數(shù)。

MindSpore的算子級自動微分接口不僅可以自動生成反向算子,還提供了進(jìn)一步手動優(yōu)化導(dǎo)數(shù)公式的可能。MindSpore的算子級自動微分功能把算子分割成若干步簡單函數(shù)的復(fù)合運算后,先是利用已知基礎(chǔ)函數(shù)的導(dǎo)數(shù)和求導(dǎo)法則分步求導(dǎo),然后利用鏈?zhǔn)椒▌t計算復(fù)合函數(shù)的導(dǎo)數(shù),最后使用張量引擎內(nèi)置的數(shù)學(xué)公式簡化器進(jìn)行化簡。這可以滿足絕大部分用戶對自動微分的需要。但是對于部分有更高性能要求或者代碼部署要求的用戶,MindSpore提供接口讓用戶可以使用自己優(yōu)化過的導(dǎo)數(shù)公式代替某一步或者若干步自動生成的導(dǎo)數(shù)公式。樣例代碼如下。

def sigmoid _ad_optimized(dout,x)

import te

#前向算子引用

out = sigmoid(x)

#手動調(diào)優(yōu)

def custom_sigmoid_fdiff(out,inputs,grad):

return[out*(1.0–out)]

#利用后生成反向算子

dx]= te.differentiate(out,[x],dout,override={out:([x],custom_sigmoid_fdiff)})

return dx

這里把手動推導(dǎo)的導(dǎo)數(shù)公式放入函數(shù)custom_sigmoid_fdiff(out,inputs,grad)中,并在自動微分中重載求導(dǎo)過程。那么在保持其他部分自動生成的情況下,自動微分使用custom_sigmoid_fdiff(out,inputs,grad)作為輸出(out)對x的導(dǎo)數(shù)進(jìn)行運算。這樣MindSpore保持了自動微分反向算子和手動調(diào)優(yōu)反向算子在風(fēng)格上的統(tǒng)一,方便了圖層對算子的調(diào)用。

總而言之,MindSpore在支持算子級自動微分的同時,對反向算子進(jìn)行IR層面的優(yōu)化,滿足了算子開發(fā)者自動生成反向算子的需求。同時,MindSpore兼顧了用戶對手動調(diào)優(yōu)反向的需求,將自動和手動有機(jī)結(jié)合,簡化了開發(fā)流程,提高了代碼的可讀性和運行效率。

3.3 自動調(diào)優(yōu)

現(xiàn)在AI開發(fā)的瓶頸之一是AI的黑盒化,特征提取隨機(jī)化、調(diào)試過程不可視、推理結(jié)果無解釋,這些問題大大限制了AI技術(shù)的可信和廣泛應(yīng)用。

調(diào)試調(diào)優(yōu)(mindinsight)的目標(biāo)是打開AI的黑盒,通過可視化Debugger技術(shù),幫助用戶輕松地進(jìn)行模型調(diào)試;利用模型訓(xùn)練過程可視化技術(shù)、模型溯源可視化技術(shù)、性能調(diào)優(yōu)可視化技術(shù),幫助用戶輕松地進(jìn)行性能和精度調(diào)優(yōu)。MindSpore可視化界面如圖5所示。

一代深度學(xué)習(xí)框架研究

圖5 MindSpore可視化界面

調(diào)試調(diào)優(yōu)提供了訓(xùn)練看板,開發(fā)者在訓(xùn)練看板中可以總覽訓(xùn)練過程中的數(shù)據(jù)抽樣情況、參數(shù)分布變化情況、損失(loss)變化情況,掌握從訓(xùn)練數(shù)據(jù)到模型參數(shù)再到loss變化的整個模型優(yōu)化過程。訓(xùn)練看板還集成了計算圖可視化和數(shù)據(jù)圖可視化功能。計算圖可視化功能有助于用戶理解模型結(jié)構(gòu),判斷模型結(jié)構(gòu)是否符合預(yù)期。數(shù)據(jù)圖可視化功能有助于用戶掌握訓(xùn)練數(shù)據(jù)的處理流程。

調(diào)試調(diào)優(yōu)還提供了模型溯源和數(shù)據(jù)溯源可視化功能。在模型溯源頁面,開發(fā)者可以方便地比較不同超參數(shù)、不同數(shù)據(jù)集等條件下的模型效果,選擇模型效果更優(yōu)的超參數(shù)。在數(shù)據(jù)溯源頁面,開發(fā)者可以同模型溯源聯(lián)動,精細(xì)分析不同的數(shù)據(jù)處理操作對模型效果的影響,選擇更合適的數(shù)據(jù)處理流程。

而使用動靜結(jié)合的開發(fā)調(diào)試模式時,開發(fā)者可以只開發(fā)一套代碼,通過變更一行代碼,從容切換動態(tài)圖/靜態(tài)圖調(diào)試方式。需要高頻調(diào)試時,選擇動態(tài)圖模式,通過單算子/子圖,方便靈活地開發(fā)調(diào)試;需要高效運行時,可以切換為靜態(tài)圖模式,對整張圖進(jìn)行編譯,通過高效的圖編譯優(yōu)化獲得高性能。樣例代碼如下。

# 定義網(wǎng)絡(luò)

net = Net()

x = Tensor(np.random.rand(1,1,4,1024).astype(np.float32))

# 默認(rèn)使用動態(tài)圖模式

out = net(x)

# 切換靜態(tài)圖模式

context.set_context(mode=context.GRAPH_MODE)

綜合總體框架和技術(shù)優(yōu)勢,可以看出自動微分等特性對MindSpore目標(biāo)的貢獻(xiàn),見表2。

一代深度學(xué)習(xí)框架研究

 

4 MindSpore的性能測試

4.1 性能卓越

MindSpore通過AI Native執(zhí)行新模式,最大化地發(fā)揮了“端-邊-云”全場景異構(gòu)算力。它還協(xié)同華為昇騰芯片,通過On-Device執(zhí)行、深度圖優(yōu)化、高性能數(shù)據(jù)處理流水線(pipeline)等多維度達(dá)到極致性能,幫助開發(fā)者縮短訓(xùn)練時間,提升推理性能。MindSpore協(xié)同華為昇騰芯片示意圖如圖6所示。

一代深度學(xué)習(xí)框架研究

圖6 MindSpore協(xié)同華為昇騰芯片示意

● On-Device執(zhí)行:整圖下沉到device執(zhí)行,減少host-device交互開銷。

● 深度圖優(yōu)化:包括整圖的格式轉(zhuǎn)換消除、類型轉(zhuǎn)換消除、算子融合。

● 高性能數(shù)據(jù)處理pipeline:支持?jǐn)?shù)據(jù)增強(qiáng)、全局混洗(shuffle)。

MindSpore協(xié)同華為昇騰芯片的實際訓(xùn)練性能數(shù)據(jù)見表3、表4,其中表3采用的是ResNet-50 v1.5網(wǎng)絡(luò),其網(wǎng)絡(luò)類型為卷積神經(jīng)網(wǎng)絡(luò),采用的數(shù)據(jù)集為ImageNet2012,MindSpore版本為0.2.0-alpha;表4中采用的是BERT Large網(wǎng)絡(luò),其網(wǎng)絡(luò)類型為Attention,采用的數(shù)據(jù)集為zhwiki,MindSpore版本為0.2.0-alpha。

一代深度學(xué)習(xí)框架研究

 


一代深度學(xué)習(xí)框架研究

 

4.2 端云協(xié)同

MindSpore針對全場景提供一致的開發(fā)和部署能力以及按需協(xié)同能力,使開發(fā)者能夠?qū)崿F(xiàn)AI應(yīng)用在云、邊緣和手機(jī)上的快速部署,全場景互聯(lián)互通,實現(xiàn)更好的資源利用和隱私保護(hù),創(chuàng)造更加豐富的AI應(yīng)用。MindSpore端云協(xié)同框架如圖7所示。

一代深度學(xué)習(xí)框架研究

圖7 MindSpore端云協(xié)同框架

MindSpore端云協(xié)同框架整合了云側(cè)框架和端側(cè)框架,并打通了自動模型生成、模型壓縮、編譯優(yōu)化和端側(cè)學(xué)習(xí)的全流程。

● MindSpore提供了神經(jīng)架構(gòu)搜索(neural architecture search,NAS)能力,用于自動化生成模型,構(gòu)建模型庫。

● MindSpore模型壓縮模塊用于對模型庫中的模型進(jìn)行剪枝和量化。

● MindSpore提供了編譯優(yōu)化能力,用于轉(zhuǎn)換和優(yōu)化模型,并通過神經(jīng)處理單元(neural-network processing unit,NPU)、圖形處理單元(graphics processing unit,GPU)等加速算子執(zhí)行。

注:以上數(shù)據(jù)基于華為云AI開發(fā)平臺ModelArts測試獲得,是訓(xùn)練過程整體下沉至Ascend 910 AI處理器執(zhí)行所得的平均性能。

注:以上數(shù)據(jù)基于華為云AI開發(fā)平臺ModelArts測試獲得,其中網(wǎng)絡(luò)包含24個隱藏層,句長為128個token,字典表包含21 128個token。

MindSpore端云協(xié)同框架具有以下特性。

● 快速多處部署。在實際場景中,模型需要快速適配不同機(jī)型硬件。通過神經(jīng)架構(gòu)搜索技術(shù)構(gòu)建多元化的模型庫,適配多種機(jī)型。針對特定應(yīng)用場景,從模型庫中搜索滿足性能約束的模型,拿來即用,無須重新訓(xùn)練。

● 全棧性能優(yōu)化。結(jié)合神經(jīng)架構(gòu)搜索、模型壓縮(剪枝、蒸餾、量化)、編譯優(yōu)化(算子融合、常量折疊、硬件加速)等手段優(yōu)化模型精度、大小、時延,追求極致性能。

● 靈活并且易用。支持多種策略組合使用,如模型生成、模型壓縮和編譯優(yōu)化可以靈活組合;打通云到端全流程,集中管理全流程策略和配置,方便使用。

● 多種學(xué)習(xí)形態(tài)。MindSpore端云協(xié)同框架逐步支持多種學(xué)習(xí)形態(tài),例如支持當(dāng)前業(yè)界常用的端側(cè)推理形態(tài),并逐步支持遷移學(xué)習(xí)、聯(lián)合學(xué)習(xí)等需要端側(cè)訓(xùn)練能力的高級學(xué)習(xí)形態(tài),滿足開發(fā)者各種各樣的場景需求。

5 結(jié)束語

深度學(xué)習(xí)現(xiàn)已成為人工智能發(fā)展重要的方向之一,已經(jīng)深刻地改變了諸多應(yīng)用領(lǐng)域,其中廣為人知的領(lǐng)域包括自動語音識別、圖像識別、自然語言理解以及很多其他交叉領(lǐng)域(如醫(yī)療、生物、金融等),并將在越來越多的領(lǐng)域取得成功。本文通過研究人工智能發(fā)展歷史認(rèn)識到深度學(xué)習(xí)的價值和影響力,介紹了新一代深度學(xué)習(xí)框架MindSpore的框架、技術(shù)開發(fā)思路和性能優(yōu)勢,希望可以為深度學(xué)習(xí)技術(shù)研究人員提供參考。

致謝

感謝整個華為MindSpore團(tuán)隊的貢獻(xiàn)。MindSpore已開源,可在相關(guān)網(wǎng)站下載。

 

聯(lián)系我們:

Tel:010-81055448

010-81055490

010-81055534

E-mail:bdr@bjxintong.com.cn

http://www.infocomm-journal.com/bdr

http://www.j-bigdataresearch.com.cn/

轉(zhuǎn)載、合作:010-81055537

 

大數(shù)據(jù)期刊

《大數(shù)據(jù)(Big Data Research,BDR)》雙月刊是由中華人民共和國工業(yè)和信息化部主管,人民郵電出版社主辦,中國計算機(jī)學(xué)會大數(shù)據(jù)專家委員會學(xué)術(shù)指導(dǎo),北京信通傳媒有限責(zé)任公司出版的期刊,已成功入選中文科技核心期刊、中國計算機(jī)學(xué)會會刊、中國計算機(jī)學(xué)會推薦中文科技期刊,并被評為2018年國家哲學(xué)社會科學(xué)文獻(xiàn)中心學(xué)術(shù)期刊數(shù)據(jù)庫“綜合性人文社會科學(xué)”學(xué)科最受歡迎期刊。

關(guān)注《大數(shù)據(jù)》期刊微信公眾號,獲取更多內(nèi)容

分享到:
標(biāo)簽:框架 深度 學(xué)習(xí)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定