本文來自一家美國公司的blog: 題目為: https:///blog/machine-learning-on-edge-devices-benchmark-report/ 為什么要進(jìn)行邊緣計算?人類正在產(chǎn)生和收集比以往更多的數(shù)據(jù),。我們口袋中的設(shè)備可以幫助創(chuàng)建大量數(shù)據(jù),,例如照片、gps坐標(biāo),、音頻以及我們有意識和無意識地顯示的各種個人信息,。 此外,我們不僅會出于個人原因生成數(shù)據(jù),,而且還會從交通和出行控制系統(tǒng),、視頻監(jiān)視設(shè)備、衛(wèi)星,、智能汽車以及無數(shù)種智能設(shè)備中收集我們不了解的數(shù)據(jù),。 這種趨勢一直存在,,并將繼續(xù)呈指數(shù)增長。就數(shù)據(jù)點而言,,國際數(shù)據(jù)公司(IDC)預(yù)測,,全球數(shù)據(jù)的總和將從2019年的33兆字節(jié)(ZB)增長到2025年的175 ZB,年增長率為61%,。 當(dāng)我們一直在處理數(shù)據(jù)時,,首先是在數(shù)據(jù)中心,然后是在云中,,這些解決方案不適合處理海量數(shù)據(jù)的高要求任務(wù),。網(wǎng)絡(luò)容量和速度達(dá)到極限,需要新的解決方案,。這是邊緣計算和邊緣設(shè)備時代的開始,。 在本報告中,我們將使用不同的框架和模型對五個新穎的邊緣設(shè)備進(jìn)行基準(zhǔn)測試,,以查看哪種組合效果最好,。特別是,我們將重點關(guān)注邊緣機器學(xué)習(xí)的性能結(jié)果,。 什么是邊緣計算,?邊緣計算包括將數(shù)據(jù)處理任務(wù)委派給網(wǎng)絡(luò)邊緣上盡可能靠近數(shù)據(jù)源的設(shè)備。這使得能夠以非常高的速度進(jìn)行實時數(shù)據(jù)處理,,這對于具有機器學(xué)習(xí)功能的復(fù)雜物聯(lián)網(wǎng)解決方案來說是必須的,。最重要的是,它減輕了網(wǎng)絡(luò)限制,,降低了能耗,,提高了安全性,并改善了數(shù)據(jù)保密性,。 在這種新范式下,,針對邊緣機器學(xué)習(xí)進(jìn)行了優(yōu)化的專用硬件和軟件庫的組合產(chǎn)生了可大規(guī)模部署的尖端應(yīng)用程序和產(chǎn)品。 構(gòu)建這些驚人的應(yīng)用程序所面臨的最大挑戰(zhàn)是音頻,,視頻和圖像處理任務(wù),。事實證明,深度學(xué)習(xí)技術(shù)在克服這些困難方面非常成功,。 在邊緣實現(xiàn)深度學(xué)習(xí)例如,,讓我們以自動駕駛汽車為例。在這里,,您需要快速而一致地分析傳入的數(shù)據(jù),,以破譯周圍的環(huán)境并在幾毫秒內(nèi)采取行動。解決該時間限制的原因是我們不能依靠云來處理數(shù)據(jù)流,,而必須在本地進(jìn)行處理的原因,。 在本地執(zhí)行此操作的缺點是硬件不像云中的超級計算機那樣強大,,并且我們不能在準(zhǔn)確性或速度上妥協(xié),。 解決方案是使用更強大,,更高效的硬件,或減少復(fù)雜程度的深度神經(jīng)網(wǎng)絡(luò),。為了獲得最佳結(jié)果,,必須在兩者之間取得平衡。 因此,,真正的問題是: 為了確定兩者的最佳組合,,我們將幾種最先進(jìn)的邊緣設(shè)備與不同的深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行了比較。 對新型邊緣設(shè)備進(jìn)行基準(zhǔn)測試基于我們認(rèn)為是最具創(chuàng)新性的用例,,我們著手通過一次圖像分類任務(wù)實時測量推理吞吐量,,從而獲得近似的每秒幀數(shù)。 為此,,我們評估了ImagenetV2特定子集的所有類別的top-1推理準(zhǔn)確性,,并將其與某些ConvNets模型進(jìn)行了比較,并在可能的情況下使用了不同的框架和優(yōu)化的版本,。 硬件加速器在過去幾年中,,盡管已投入大量精力來改進(jìn)現(xiàn)有的邊緣硬件,但我們還是選擇在這些新產(chǎn)品上進(jìn)行試驗鏈:
我們包括了Raspberry Pi和Nvidia 2080ti,,以便能夠?qū)⒔?jīng)過測試的硬件與知名系統(tǒng)(一種基于云和一種基于邊緣)進(jìn)行比較,。 在Tryolabs,我們設(shè)計和訓(xùn)練了我們自己的深度學(xué)習(xí)模型,。因此,,我們擁有大量的計算能力。因此,,我們使用了它,。為了在推理時間上設(shè)置此下限,我們在2080ti NVIDIA GPU上進(jìn)行了測試,。但是,,由于僅將其用作參考點,因此我們使用基本模型運行了測試,,沒有進(jìn)行任何優(yōu)化,。 在上限方面,我們選擇了最受歡迎的單板計算機:Raspberry Pi 3B,。 神經(jīng)網(wǎng)絡(luò)模型我們希望在此基準(zhǔn)測試中包含兩個主要網(wǎng)絡(luò):古老的,,知名的,經(jīng)驗豐富的Resnet-50和Google今年發(fā)布的新型EfficientNets,。 對于所有基準(zhǔn),,我們使用可在不同框架下運行的公開可用的預(yù)訓(xùn)練模型,。關(guān)于Nvidia Jetson,我們嘗試了TensorRT優(yōu)化,。對于Raspberry,,我們使用了Tensor Flow和PyTorch變體。對于珊瑚設(shè)備,,我們實現(xiàn)了S,,M和L EfficientNets模型的Edge TPU引擎版本;最后,,對于英特爾設(shè)備,,我們使用了由OpenVINO Toolkit 編譯的Resnet-50 。 數(shù)據(jù)集由于所有模型都是在ImageNet數(shù)據(jù)集上訓(xùn)練的,,因此我們使用ImageNet V2匹配頻率,。它包含10,000個類別的10,000張圖像。 我們對每個圖像進(jìn)行一次推理,,保存推理時間,,然后找到平均值。我們計算了所有測試的前1位準(zhǔn)確性,,以及某些模型的前5位準(zhǔn)確性,。 Top-1準(zhǔn)確性:這是常規(guī)準(zhǔn)確性,這意味著模型的答案(概率最高的答案)必須等于確切的預(yù)期答案,。 前5個準(zhǔn)確性:表示模型的前5個最高概率答案中的任何一個都必須與預(yù)期答案匹配,。 比較結(jié)果時要記住的一點是:對于快速的設(shè)備模型組合,我們運行了包含整個數(shù)據(jù)集的測試,,而對于慢速的組合,,我們僅使用了部分?jǐn)?shù)據(jù)集。 結(jié)果與分析下面的儀表板顯示了從實驗中獲得的指標(biāo),。由于模型和設(shè)備之間的推斷時間差異很大,,因此參數(shù)以對數(shù)刻度顯示。 推理時間贏家#1:Jetson Nano在推理時間方面,,贏家是Jetson NANO結(jié)合RESNET-50,,TensorRT和PyTorch。它完成了2.67毫秒,,即每秒375幀,。 這個結(jié)果令人驚訝,因為它比NVIDIA公布的推理率高出10倍,。結(jié)果的差異很可能與NVIDIA使用TensorFlow而不是PyTorch有關(guān),。 推理時間贏家#2:Coral Dev 板第二名是Coral Dev的組合。董事會與EfficientNet-S 。它完成了5.42毫秒,,即每秒185幀,。 這些結(jié)果相當(dāng)于Google承諾的5.5毫秒和每秒182幀。 盡管此組合的速度很高,,但準(zhǔn)確性卻不高,。我們無法獲取Google用于準(zhǔn)確性報告的確切驗證集,但是一個假設(shè)是,,他們對圖像預(yù)處理轉(zhuǎn)換的使用方式與我們不同,。由于量化的8位模型對圖像預(yù)處理非常敏感,因此這可能會對結(jié)果產(chǎn)生重大影響,。 準(zhǔn)確性獲勝者:Jetson Nano就準(zhǔn)確性而言,最佳結(jié)果來自Jetson Nano與TF-TRT和EfficentNet-B3的結(jié)合,,其準(zhǔn)確性超過85%,。但是,這些結(jié)果是相對的,,因為我們使用比其他模型更大的數(shù)據(jù)集訓(xùn)練了一些模型,。 我們可以看到,當(dāng)向模型提供較小的數(shù)據(jù)集時,,準(zhǔn)確率較高,;而在使用整個數(shù)據(jù)集時,準(zhǔn)確率較低,。這是因為我們沒有對較小的數(shù)據(jù)集進(jìn)行隨機排序,,因此圖像沒有得到足夠的平衡。 硬件加速器的可用性關(guān)于這些設(shè)備的可用性,,開發(fā)人員將注意到一些主要差異,。 Jetson NANO是最靈活的,當(dāng)它來選擇和使用預(yù)編譯模型和框架,。英特爾記憶棒排名第二,,因為它們提供了良好的庫,許多模型和出色的項目,。此外,,第一版和第二版之間的棍棒已經(jīng)大大改進(jìn)。唯一的缺點是它們的龐大庫OpenVINO僅在Ubuntu 16.04上受支持,,而更高版本的Linux OS不支持,。 與Jetson和Intel記憶棒相比,Coral設(shè)備存在一些局限性,。如果要在其上運行非官方模型,,則必須將它們轉(zhuǎn)換為TensorFlow Lite,然后對Edge TPU進(jìn)行量化和編譯。根據(jù)模型,,此轉(zhuǎn)換可能不可行,。不過,我們希望此后代的Google設(shè)備會有所改進(jìn),。 結(jié)論這里提出的研究基于我們對為深度學(xué)習(xí)算法設(shè)計的最新邊緣計算設(shè)備的探索,。 我們發(fā)現(xiàn)Jetson Nano和Coral Dev開發(fā)板在推理時間方面表現(xiàn)很好。 在方面的準(zhǔn)確性,,該杰特森納米再次取得了很大成績,,但結(jié)果是相對的。 鑒于Jetson Nano的整體性能,,它無疑是我們的贏家,。? 但是,必須指出的是,,由于設(shè)計不同,,我們無法使用相同的型號測試Jetson Nano和Coral。我們相信,,根據(jù)要完成的特定任務(wù),,每種設(shè)備都會有自己的最佳情況。 我們鼓勵您執(zhí)行與您的特定任務(wù)有關(guān)的詳細(xì)基準(zhǔn)測試,,并在下面的評論部分中分享您的結(jié)果和結(jié)論,。感興趣的進(jìn)一步研究可能包括利用量化感知訓(xùn)練來設(shè)計和訓(xùn)練自己的模型。 該博客文章是與Tryolabs的全棧開發(fā)人員Guillermo Ripa合作編寫的,。 |
|