自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何讓深度學(xué)習(xí)在手機(jī)應(yīng)用上也能加速跑?看完這篇文章你就知道了

人工智能 深度學(xué)習(xí) 移動(dòng)開(kāi)發(fā)
論文作者提出了一種基于模型網(wǎng)絡(luò)層為粒度的切割方法,將DNN需要的計(jì)算量切分開(kāi)并充分利用云服務(wù)器和移動(dòng)設(shè)備的硬件資源進(jìn)行延遲時(shí)間和電量消耗這兩方面的優(yōu)化。 Neurosurgeon很形象地描述了這種切割方法:向外科醫(yī)生一樣對(duì)DNN模型進(jìn)行切分處理。

目前使用了深度學(xué)習(xí)技術(shù)的移動(dòng)應(yīng)用 通常都是直接依賴(lài)云服務(wù)器來(lái)完成DNN所有的計(jì)算操作,但這樣做的缺點(diǎn)在于移動(dòng)設(shè)備與云服務(wù)器之間的數(shù)據(jù)傳輸帶來(lái)的代價(jià)并不?。ū憩F(xiàn)在系統(tǒng)延遲時(shí)間和移動(dòng)設(shè)備的電量消耗) ;目前移動(dòng)設(shè)備對(duì)DNN通常都具備一定的計(jì)算能力,盡管計(jì)算性能不如云服務(wù)器但避免了數(shù)據(jù)傳輸?shù)拈_(kāi)銷(xiāo)。

論文作者提出了一種基于模型網(wǎng)絡(luò)層為粒度的切割方法,將DNN需要的計(jì)算量切分開(kāi)并充分利用云服務(wù)器和移動(dòng)設(shè)備的硬件資源進(jìn)行延遲時(shí)間和電量消耗這兩方面的優(yōu)化。 Neurosurgeon很形象地描述了這種切割方法:向外科醫(yī)生一樣對(duì)DNN模型進(jìn)行切分處理。

對(duì)于所有使用深度學(xué)習(xí)技術(shù)來(lái)處理圖像、視頻、語(yǔ)音和文本數(shù)據(jù)的個(gè)人智能助手而言,目前工業(yè)界通常的做法是,利用云服務(wù)器上強(qiáng)大的GPU集群資源來(lái)完成應(yīng)用程序的計(jì)算操作(以下簡(jiǎn)稱(chēng)為現(xiàn)有方法)。

目前運(yùn)行在移動(dòng)設(shè)備上的個(gè)人智能助手(例如Siri、Google Now和Cortana等)也都是采用這種做法。盡管如此,我們還是會(huì)思考,能不能也對(duì)移動(dòng)設(shè)備本身的計(jì)算能力加以利用(而不是完全依靠云服務(wù)),同時(shí)確保應(yīng)用程序的延遲時(shí)間以及移動(dòng)設(shè)備的電量消耗處于合理范圍內(nèi)。

目前的現(xiàn)狀是,智能應(yīng)用程序的計(jì)算能力完全依賴(lài)于Web服務(wù)商所提供的高端云服務(wù)器。

而Neurosurgeon打破了這種常規(guī)做法(即智能應(yīng)用的計(jì)算能力完全依托于云服務(wù))!在這篇出色的論文中, 作者向我們展示了一種新思路:將應(yīng)用程序所需的計(jì)算量“分割”開(kāi),并同時(shí)利用云服務(wù)和移動(dòng)設(shè)備的硬件資源進(jìn)行計(jì)算 。下面是使用Neurosurgeon方法后所取得的結(jié)果,這將會(huì)使我們所有人受益:

  • 系統(tǒng)延遲時(shí)間平均降低了3.1倍(最高降低了40.7倍),從而應(yīng)用程序的響應(yīng)將更加迅速和靈敏。

  • 移動(dòng)設(shè)備的耗電量平均降低了59.5%(最高降低了94.7%);(也許你會(huì)質(zhì)疑,真的能夠在移動(dòng)設(shè)備上實(shí)施更多計(jì)算量的同時(shí)降低電量消耗嗎?答案是十分肯定的?。?/p>

  • 云服務(wù)器上數(shù)據(jù)中心的吞吐量平均提高了1.5倍(最高能提高6.7倍),相較于現(xiàn)有方法這是一個(gè)巨大的超越。

下面我們會(huì)先舉個(gè)例子,來(lái)看看“對(duì)計(jì)算量進(jìn)行分割”這件事情是多么的有趣,之后會(huì)了解到Neurosurgeon是如何在不同的DNN模型中自動(dòng)檢測(cè)出“最佳分割點(diǎn)”的,最后會(huì)展示相應(yīng)的實(shí)驗(yàn)結(jié)果以證實(shí)Neurosurgeon所宣稱(chēng)的能力。

(值得一提的是,目前主流的平臺(tái)已經(jīng)支持并實(shí)現(xiàn)了在移動(dòng)設(shè)備上進(jìn)行深度學(xué)習(xí)方面的計(jì)算。Apple在iOS10系統(tǒng)中新增了深度學(xué)習(xí)相關(guān)的開(kāi)發(fā)工具,F(xiàn)acebook去年發(fā)布了Caffe2Go使得深度學(xué)習(xí)模型能夠運(yùn)行在移動(dòng)設(shè)備上,而Google也在前不久發(fā)布了深度學(xué)習(xí)開(kāi)發(fā)工具TensorFlow Lite以用于安卓系統(tǒng)。)

▌ 數(shù)據(jù)傳輸并不是沒(méi)有代價(jià)

最新的SoC芯片讓人印象深刻。這篇論文使用了NVIDIA的Jetson TK1平臺(tái)(擁有4核心的ARM處理器和一個(gè)Kepler GPU)(如下表1),數(shù)十萬(wàn)個(gè)設(shè)備的組合的計(jì)算量是驚人的。

如果你對(duì)比一下服務(wù)器上的配置(如下表2),你會(huì)發(fā)現(xiàn)移動(dòng)設(shè)備的配置還是遠(yuǎn)比不上服務(wù)器的。

接下來(lái)我們來(lái)分析一個(gè)常用于圖片分類(lèi)任務(wù)的AlexNet模型(一個(gè)深層次的CNN網(wǎng)絡(luò)模型),該模型的輸入是一張大小為152KB的圖片。首先對(duì)比一下模型在兩種環(huán)境下的運(yùn)行情況:在云服務(wù)器上實(shí)施全部的計(jì)算操作和在移動(dòng)設(shè)備上實(shí)施全部的計(jì)算操作。

如果我們僅僅看應(yīng)用的延遲時(shí)間這一指標(biāo),(如下圖3)可以發(fā)現(xiàn)只要移動(dòng)設(shè)備擁有可用的GPU,在本地GPU上實(shí)施所有的計(jì)算操作能夠帶來(lái)最佳的體驗(yàn)(延遲時(shí)間最短)。而使用云服務(wù)器進(jìn)行全部的計(jì)算時(shí),統(tǒng)計(jì)表明計(jì)算所消耗的時(shí)間僅占全部時(shí)間的6%,而剩余的94%都消耗在數(shù)據(jù)傳輸上。

相較于現(xiàn)有方法,在LTE和3G網(wǎng)絡(luò)條件下,使用移動(dòng)設(shè)備自身的GPU進(jìn)行全部的計(jì)算能夠取得更低的系統(tǒng)延遲時(shí)間;同時(shí),在LTE和Wi-Fi網(wǎng)絡(luò)條件下,現(xiàn)有方法要比單純僅用移動(dòng)設(shè)備CPU進(jìn)行全部的計(jì)算操作要更好(系統(tǒng)延遲時(shí)間更少)。

下圖4是不同網(wǎng)絡(luò)條件下,使用云服務(wù)器和手機(jī)CPU/GPU下的電量消耗情況:

如果移動(dòng)設(shè)備連接的是Wi-Fi網(wǎng)絡(luò),最低的電量損耗方案是發(fā)送相應(yīng)的數(shù)據(jù)到云服務(wù)器并讓其進(jìn)行全部的計(jì)算操作。但如果連接的是3G或LTE網(wǎng)絡(luò),如果該移動(dòng)設(shè)備有可用的GPU,那么在本地GPU上實(shí)施全部的計(jì)算操作這一方案所導(dǎo)致的電量消耗,會(huì)比需要進(jìn)行數(shù)據(jù)傳輸且在云服務(wù)器上實(shí)施全部的計(jì)算操作這一方案更低。

盡管云服務(wù)器的計(jì)算能力要強(qiáng)于移動(dòng)設(shè)備,但由于其需要進(jìn)行數(shù)據(jù)的傳輸(在有的網(wǎng)絡(luò)環(huán)境下的所帶來(lái)的系統(tǒng)延遲時(shí)間和電量消耗量并不?。?,所以從系統(tǒng)的角度,完全使用云服務(wù)器進(jìn)行計(jì)算的方法并不一定是最優(yōu)的。

▌ 各種網(wǎng)絡(luò)層的數(shù)據(jù)傳輸和計(jì)算需求并不相同

那么,在所有計(jì)算都實(shí)施在云服務(wù)器或移動(dòng)設(shè)備上這兩種“相對(duì)極端”的方法之間,是否存在某個(gè)最優(yōu)切分點(diǎn)呢?換言之,在數(shù)據(jù)傳輸和實(shí)施計(jì)算兩者之間或許存在一種折中。下圖是一張簡(jiǎn)單的草圖,以方便理解接下來(lái)要做的事情。

一種直觀的切分方法是基于DNN中網(wǎng)絡(luò)層作為邊界。以AlexNet為例,如果我們能夠計(jì)算出每一層的輸出數(shù)據(jù)量和計(jì)算量,將得到如下的統(tǒng)計(jì)圖(下圖5):

從圖5中可以看出,對(duì)于AlexNet模型較前的卷積層而言,數(shù)據(jù)輸出量隨著層數(shù)增加而迅速遞減。然而,計(jì)算量在模型的中后部分開(kāi)始逐步遞增,在全連接層的計(jì)算量達(dá)到了最高的幅度。

接下來(lái)值得思考的是,如果我們將AlexNet模型中的各個(gè)網(wǎng)絡(luò)層分割開(kāi)會(huì)發(fā)生什么呢?(也就是說(shuō),在移動(dòng)設(shè)備上處理模型的前n層得到第n層的輸出結(jié)果,再將該輸出結(jié)果傳輸至云服務(wù)器上進(jìn)行之后的計(jì)算,最后再將輸出結(jié)果傳輸至移動(dòng)設(shè)備上。)

下圖6中你能看到AlexNet模型各層的延遲時(shí)間和電量消耗情況,最佳的分割點(diǎn)以星星符號(hào)表示。

以網(wǎng)絡(luò)層為粒度的分割算法能夠大大改善模型的延遲時(shí)間和電量消耗量。對(duì)于AlexNet模型,在移動(dòng)設(shè)備GPU可用和Wi-Fi網(wǎng)絡(luò)條件下,最佳的分割點(diǎn)處于模型的中部。

以上只是針對(duì)AlexNet模型的分割方法。然而,這種分割方法是否同樣適用于其他的用于處理圖像、視頻、語(yǔ)音和文本的DNN模型們?文章作者在多種DNN模型上做了相應(yīng)的分析如下表3:

對(duì)于應(yīng)用于計(jì)算機(jī)視覺(jué) (Computer Vision, CV) 領(lǐng)域的具有卷積層的模型,通常最佳的分割點(diǎn)在模型的中部。而對(duì)于通常只有全連接層和激活層的ASR, POS, NER和CHK網(wǎng)絡(luò)模型(主要應(yīng)用在語(yǔ)音識(shí)別(Automatic Speech Recognition, ASR)和自然語(yǔ)言處理領(lǐng)域(Natural Language Process, NLP))而言,只能說(shuō)有找到最佳的分割點(diǎn)的可能。

在DNN模型上進(jìn)行分割的最佳方法取決于模型中的拓?fù)鋵雍徒Y(jié)構(gòu)層。CV領(lǐng)域的DNN模型有時(shí)在模型的中部進(jìn)行分割是最好的,而對(duì)于ASR和NLP領(lǐng)域的DNN模型,在模型的開(kāi)始部分或者結(jié)尾部分進(jìn)行分割往往更好一點(diǎn)??梢钥闯?,最佳分割點(diǎn)隨著模型的不同而變化著,因此我們需要一種系統(tǒng)能夠?qū)δP瓦M(jìn)行自動(dòng)的分割并利用云服務(wù)器和設(shè)備GPU進(jìn)行相應(yīng)的計(jì)算操作。

▌Neurosurgeon的工作原理

對(duì)于一個(gè)DNN模型,影響最佳的分割點(diǎn)位置的因素主要有兩種:一種是靜態(tài)的因素,例如模型的結(jié)構(gòu);一種是動(dòng)態(tài)的因素,例如網(wǎng)絡(luò)層的可連接數(shù)量、云服務(wù)器上數(shù)據(jù)中心的負(fù)載以及設(shè)備剩余可用的電量等。

由于以上動(dòng)態(tài)因素的存在,我們需要一種智能系統(tǒng)來(lái)自動(dòng)地選擇出DNN中的最佳分割點(diǎn),以保證最終系統(tǒng)延遲時(shí)間和移動(dòng)設(shè)備的電池消耗量達(dá)到最優(yōu)的狀態(tài)。因此,我們?cè)O(shè)計(jì)了出這樣一種智能切分DNN模型的系統(tǒng),也就是Neurosurgeon。

Neurosurgeon由以下兩個(gè)部分組成:一部分是在移動(dòng)設(shè)備上一次性地創(chuàng)建和部署用于預(yù)測(cè)性能(包括延遲時(shí)間和電量消耗量)的模型,另一部分是在服務(wù)器上對(duì)各種網(wǎng)絡(luò)層類(lèi)型和參數(shù)(包括卷積層、池化層、全連接層、激活函數(shù)和正則化項(xiàng))進(jìn)行配置。前一部分與所用的具體DNN模型結(jié)構(gòu)無(wú)關(guān),預(yù)測(cè)模型主要是根據(jù)DNN模型中網(wǎng)絡(luò)層的數(shù)量和類(lèi)型來(lái)預(yù)測(cè)延遲時(shí)間和電量消耗,而不需要去執(zhí)行具體的DNN模型。

預(yù)測(cè)模型會(huì)存儲(chǔ)在移動(dòng)設(shè)備中,之后會(huì)被用于預(yù)測(cè)DNN模型中各層的延遲時(shí)間和電量消耗。

在DNN模型的運(yùn)行時(shí),Neurosurgeon就能夠動(dòng)態(tài)地找到最佳的分割點(diǎn)。首先,它會(huì)分析DNN模型中各網(wǎng)絡(luò)層的類(lèi)型和參數(shù)情況并執(zhí)行之,然后利用預(yù)測(cè)模型來(lái)預(yù)測(cè)各網(wǎng)絡(luò)層在移動(dòng)設(shè)備和云服務(wù)器上的延遲時(shí)間和電量消耗情況。根據(jù)所預(yù)測(cè)的結(jié)果,結(jié)合當(dāng)前網(wǎng)絡(luò)層自身及數(shù)據(jù)中心的負(fù)載情況,Neurosurgeon選擇出最佳的分割點(diǎn),調(diào)整該分割點(diǎn)能夠?qū)崿F(xiàn)端到端延遲時(shí)間或者電量消耗的最優(yōu)化。

▌Neurosurgeon的實(shí)際應(yīng)用

之前的表3展示了用于評(píng)測(cè)Neurosurgeon的8種DNN模型,另外,實(shí)驗(yàn)用到的網(wǎng)絡(luò)環(huán)境有3種(Wi-Fi,LTE和3G網(wǎng)絡(luò))和2種移動(dòng)設(shè)備硬件(CPU和GPU)。在這些模型和配置下,Neurosurgeon能夠找到一種分割方法以加速應(yīng)用的響應(yīng)時(shí)間至最優(yōu)的98.5%。

實(shí)驗(yàn)結(jié)果表明,相比于目前使用僅使用云服務(wù)器的方法,Neurosurgeon能夠?qū)?yīng)用的延遲時(shí)間平均降低了3.1倍(最高能達(dá)到40.7倍)。

在電量消耗方面,相比于現(xiàn)有方法,Neurosurgeon能夠使得移動(dòng)設(shè)備的電量消耗量平均降低至59.5%,最高能降低至94.7%。

下圖14展示了Neurosurgeon隨著網(wǎng)絡(luò)環(huán)境的變化(即LTE帶寬變化)自適應(yīng)進(jìn)行分割和優(yōu)化的結(jié)果(下圖中的藍(lán)色實(shí)線(xiàn)部分),可以看出比起現(xiàn)有方法(下圖中的紅色虛線(xiàn)部分)能夠大幅度地降低延遲時(shí)間。

Neurosurgeon也會(huì)與云服務(wù)器保持周期性的通訊,以獲得其數(shù)據(jù)中心的負(fù)載情況。當(dāng)服務(wù)器的數(shù)據(jù)中心負(fù)載較大時(shí),它會(huì)減少往服務(wù)器上傳輸?shù)臄?shù)據(jù)量而增加移動(dòng)設(shè)備本地的計(jì)算量??傊琋eurosurgeon能夠根據(jù)服務(wù)器的負(fù)載情況作出適當(dāng)?shù)恼{(diào)整已達(dá)到最低的系統(tǒng)延遲時(shí)間。

我們利用 BigHouse (一種服務(wù)器數(shù)據(jù)中心的仿真系統(tǒng))來(lái)對(duì)比現(xiàn)有方法和Neurosurgeon。實(shí)驗(yàn)中將query數(shù)據(jù)均勻地分配到之前表3中8種DNN模型之上,使用所測(cè)量的所有模型的平均響應(yīng)時(shí)間,并結(jié)合Google網(wǎng)頁(yè)搜索中query的分布來(lái)得到query的完成率(query inter-arrival rate)。

上圖16表明,在移動(dòng)設(shè)備使用Wi-Fi網(wǎng)絡(luò)的條件下,Neurosurgeon所帶來(lái)的的數(shù)據(jù)吞吐量是現(xiàn)有方法的1.04倍。而隨著連接網(wǎng)絡(luò)質(zhì)量的變差,Neurosurgeon會(huì)讓移動(dòng)設(shè)備承擔(dān)更多的計(jì)算量,此時(shí)云服務(wù)器上數(shù)據(jù)中心的吞吐量將增加:較現(xiàn)有方法,連接LTE網(wǎng)絡(luò)的情況下數(shù)據(jù)中心的吞吐量增加至1.43倍,而3G網(wǎng)絡(luò)條件下則增加至2.36倍。

論文出處

Neurosurgeon:collaborative intelligence between the cloud and mobile edge Kang et al.,ASPLOS’17

http://web.eecs.umich.edu/~jahausw/publications/kang2017neurosurgeon.pdf

責(zé)任編輯:林師授 來(lái)源: 掘金
相關(guān)推薦

2022-07-01 13:38:48

霧計(jì)算邊緣計(jì)算

2020-07-20 10:20:30

this前端代碼

2025-03-28 08:53:51

2019-07-10 15:15:23

JVM虛擬機(jī)Java

2020-11-17 07:43:24

互聯(lián)網(wǎng)MVC服務(wù)類(lèi)

2019-06-05 15:20:00

MongoDBNoSQL數(shù)據(jù)庫(kù)

2017-03-10 21:04:04

Android適配

2017-03-07 15:35:26

Android適配 界面

2023-10-08 19:06:41

2021-10-14 06:36:38

存儲(chǔ)云存儲(chǔ)本地存儲(chǔ)

2022-02-18 06:56:18

Wi-Fi路由器局域網(wǎng)

2019-08-01 11:04:10

Linux磁盤(pán)I

2022-09-02 19:10:46

高并發(fā)架構(gòu)系統(tǒng)

2024-11-19 18:03:04

2019-01-30 13:44:34

JVM內(nèi)存服務(wù)器

2021-03-14 15:58:26

手機(jī)定位系統(tǒng)

2018-10-31 11:41:49

Python代碼語(yǔ)言

2015-12-02 18:11:06

百度地圖/地圖軟件

2023-10-08 08:41:04

JavaPython編程語(yǔ)言

2019-10-31 09:48:53

MySQL數(shù)據(jù)庫(kù)事務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)