嵌入式部署方式具有實(shí)時響應(yīng)、網(wǎng)絡(luò)開銷低、隱私保護(hù)、能耗比高等優(yōu)勢;但同時,由于邊緣設(shè)備種類繁多,適配部署難度較高。
在一項(xiàng)百度和波士頓咨詢公司的聯(lián)合調(diào)研中,我們發(fā)現(xiàn)在有定制業(yè)務(wù)模型需求的客戶中,超過35%的場景有離線邊緣計(jì)算的需求。而如上文所述,端計(jì)算由于設(shè)備的多樣性,研發(fā)和部署成本相比云部署更高,且往往實(shí)際業(yè)務(wù)場景對在端上運(yùn)行的模型的時延和穩(wěn)定性也會有極高的要求。因此,如何將定制好的模型部署到各類端設(shè)備上是一個技術(shù)難題。
為了滿足開發(fā)者對部署形式多樣化的需求,一站式零門檻AI開發(fā)平臺EasyDL支持多種部署方式,包括公有云部署、本地服務(wù)器部署、設(shè)備端SDK和軟硬一體解決方案。EasyDL是基于飛槳推出的面向企業(yè)打造的一站式零門檻AI開發(fā)平臺,提供智能標(biāo)注、模型訓(xùn)練、服務(wù)部署等全流程功能,內(nèi)置豐富的預(yù)訓(xùn)練模型,全面支持飛槳Master模式,面向不同人群與需求提供經(jīng)典版、專業(yè)版、零售版三個版本。
EasyDL支持的多種部署方式,適用于各類業(yè)務(wù)場景與運(yùn)行環(huán)境,便于開發(fā)者根據(jù)需求靈活選擇,其支持的設(shè)備也非常豐富,從最常見的x86、ARM、Nvidia-GPU,到NPU、FPGA,支持超過10類硬件。由于百度飛槳深度學(xué)習(xí)平臺相關(guān)功能的支持,EasyDL具備強(qiáng)大的端計(jì)算部署能力,在生成端計(jì)算模型時,會經(jīng)過一些列的優(yōu)化、加速、壓縮功能。
對于這一系列能力的講解,可以從網(wǎng)絡(luò)結(jié)構(gòu)層面和芯片能力兩方面入手。
在網(wǎng)絡(luò)結(jié)構(gòu)層面,會進(jìn)行op融合(如conv-add-relu,conv-bn等)、fp16/int8量化、模型裁剪等優(yōu)化。
以近期上線的ARM定點(diǎn)量化為例,其優(yōu)點(diǎn)包括低內(nèi)存帶寬、低功耗、低計(jì)算資源占用。在一些網(wǎng)絡(luò)中,可以帶來4倍的模型壓縮、4倍的內(nèi)存帶寬提升,以及更高效的cache利用。在很多場景中,定點(diǎn)量化不會對網(wǎng)絡(luò)精度造成額外損失。量化主要分為兩大類:Post Training Quantization和Quantization Aware Training,前者是使用KL散度等方法確定量化參數(shù)且不需要重新訓(xùn)練的定點(diǎn)量化方法,后者是對訓(xùn)練好的模型做再訓(xùn)練,建模來確定量化參數(shù)。在量化訓(xùn)練過程中,前向傳播的工作流可以表示為如下方式:
基于模擬量化訓(xùn)練前向過程的等價工作流
在訓(xùn)練量化的過程中,會在原有網(wǎng)絡(luò)算子前后插入連續(xù)的量化op和反量化op,并改變相應(yīng)的反向算子的輸入,評估階段,將量化算子參數(shù)變?yōu)榱炕蟮闹?,最終通過PaddleLite的工具改變模型文件中的參數(shù)數(shù)據(jù)類型為int8的na?ve buffer形式。
在后續(xù)的版本升級中,EasyDL會繼續(xù)上線模型裁剪優(yōu)化?;诿舾卸冗x擇最優(yōu)的裁剪率組合來進(jìn)行部分的卷積和裁剪,可以達(dá)到一倍以上模型體積的減少和低于1%的精度損失的優(yōu)化效果。結(jié)合定點(diǎn)量化以及后續(xù)的蒸餾策略,模型的體積和推理速度會得到更進(jìn)一步的全面優(yōu)化。
在芯片層面,EasyDL會根據(jù)具體的硬件類型進(jìn)行特屬優(yōu)化。比如在ARM64上如果芯片支持NEON,會充分利用其16個128位寄存器進(jìn)行浮點(diǎn)數(shù)計(jì)算的優(yōu)化;在英偉達(dá)GPU設(shè)備上,EasyDL會利用TensorRT庫進(jìn)行子圖的計(jì)算和加速;在蘋果手機(jī)上,會利用CoreML引擎進(jìn)行推理加速;在華為手機(jī)上,如果支持DDK,會調(diào)用華為HiAI引擎進(jìn)行推理。此外,EasyDL還支持英特爾的 MKL OpenVino, 高通的SNPE等推理引擎。在一些平臺上,能夠根據(jù)具體的深度學(xué)習(xí)網(wǎng)絡(luò)、芯片類型進(jìn)行合理的自動選擇,在保證精度的同時最大化利用芯片能力,極大地提升推理速度。經(jīng)過網(wǎng)絡(luò)、硬件等各層面的優(yōu)化之后,模型在體積、內(nèi)存占用、推理速度上都會有更優(yōu)的表現(xiàn),部分模型的推理速度可以提升數(shù)倍以上。
近期EasyDL新上線了華為Atlas 200、Atlas300加速卡的支持,能夠支持最新DaVinci架構(gòu)的昇騰310AI處理器,同時兼顧開發(fā)板及服務(wù)器的場景。結(jié)合EasyDL現(xiàn)有的優(yōu)化技術(shù),在EasyDL的高性能模型上,可以達(dá)到6ms的性能。開啟多Batch優(yōu)化后,單張300加速卡可以一秒處理高達(dá)1000張圖片。
在EasyDL平臺上,模型加速優(yōu)化的全過程都會在系統(tǒng)中自動完成,用戶只需根據(jù)自己的場景需要,選擇具體的硬件,即可自動生成適配對應(yīng)硬件的端計(jì)算部署包?,F(xiàn)在,在發(fā)布模型的時候,用戶只需要勾選“同時獲取加速版”,EasyDL后臺便會自動為用戶生成具備量化、壓縮等優(yōu)化能力的加速版模型和SDK,用戶可以直接下載使用,使用的流程也基本一致??偟膩砜矗珽asyDL的嵌入式模型部署整體使用流程非??焖俦憬?,用戶無需關(guān)注復(fù)雜的深度學(xué)習(xí)邊緣計(jì)算算法、具體硬件適配等底層邏輯,只需關(guān)注實(shí)際的業(yè)務(wù)需求,通過SDK輸入圖片即可獲得模型輸出的識別結(jié)果。
目前,已有多家企業(yè)根據(jù)具體業(yè)務(wù)場景,通過EasyDL平臺僅用少量業(yè)務(wù)數(shù)據(jù)訓(xùn)練高精度AI模型,并根據(jù)使用場景和運(yùn)行環(huán)境選擇適配的部署方式。使用門檻低、方便快捷的加速版SDK具備的量化壓縮等能力,正在越來越多的業(yè)務(wù)場景中發(fā)揮作用,快速解決業(yè)務(wù)需求。
立即嘗試EasyDL:https://ai.baidu.com/easydl/
來源:IT時代網(wǎng)