從科研、金融、零售到工業(yè)、農(nóng)業(yè)等越來越多的行業(yè)與業(yè)務場景正在應用人工智能提升效率,降低成本。人工智能在產(chǎn)業(yè)升級、改善人類生活等方面發(fā)揮著越來越重要的作用。當在實際業(yè)務場景中部署AI模型時,會面臨一個部署方案設計的問題:不同的使用場景和業(yè)務問題中對模型的部署方式要求也有所差異。
AI模型有著多樣化的部署方式,常見的模型部署形態(tài)分為兩種:服務器部署和嵌入式部署。服務器部署指的是將模型部署在CPU/GPU上,形成可調(diào)用的API接口,根據(jù)需要可選擇云服務器部署和本地服務器部署;嵌入式部署指的是將模型部署到邊緣側(cè)或端側(cè)的嵌入式設備中,進行單機離線運行。下表對比了這兩種部署方式的特性。當用戶的模型應用場景沒有網(wǎng)絡覆蓋,或是業(yè)務數(shù)據(jù)較為機密,或是對預測延時要求較高時,往往會選擇嵌入式部署方式。
特性 |
AI云計算 AI Cloud Computing |
AI邊緣計算 AI Edge Computing |
算力 |
算力強大 ( TFLOPS, 并行可擴展 ) 適合訓練和推理階段計算 |
算力有限, 水平擴展性差, 更適合推理階段前向計算 |
時延 |
網(wǎng)絡時延+計算開銷 |
本地計算無網(wǎng)絡開銷或很低, 實時響應 |
網(wǎng)絡依賴 |
強依賴 |
弱依賴;隱私保護 |
能耗 |
高 (幾百瓦) |
低 (幾到幾十瓦, 能耗比高) |
系統(tǒng)架構(gòu) |
開放, 高度集中 |
封閉, 比較分散 |
多樣性 |
標準化程度高, CPU, GPU等 |
多樣的芯片架構(gòu), 傳感器等 |
研發(fā)成本 |
低 (配套完善, 可移植性極高) |
高 (配套不完善, 可移植弱) |
嵌入式部署方式具有實時響應、網(wǎng)絡開銷低、隱私保護、能耗比高等優(yōu)勢;
但同時,由于邊緣設備種類繁多,適配部署難度較高。
在一項百度和波士頓咨詢公司的聯(lián)合調(diào)研中,我們發(fā)現(xiàn)在有定制業(yè)務模型需求的客戶中,超過35%的場景有離線邊緣計算的需求。而如上文所述,端計算由于設備的多樣性,研發(fā)和部署成本相比云部署更高,且往往實際業(yè)務場景對在端上運行的模型的時延和穩(wěn)定性也會有極高的要求。因此,如何將定制好的模型部署適配到端設備,并兼顧識別效果、性能和內(nèi)存消耗,是一個需要耗費大量研發(fā)工作的技術(shù)難題。
正式為了應對AI模型多樣化的部署需求,百度零門檻AI開發(fā)平臺EasyDL提供了多種部署方式,包括公有云部署、本地服務器部署、設備端SDK和軟硬一體解決方案,適用于各類業(yè)務場景與運行環(huán)境,便于開發(fā)者根據(jù)需求靈活選擇。特別是在嵌入式部署方面,EasyDL的設備端SDK,支持的硬件類型也非常豐富,從最常見的x86、ARM、Nvidia-GPU,到NPU、FPGA,支持超過10類硬件。同時,依托于百度飛槳深度學習平臺相關(guān)功能的支持,EasyDL具備強大的端計算部署能力,在生成端計算模型時,會經(jīng)過一些列的優(yōu)化、加速、壓縮功能。
對于這一系列能力的講解,可以從網(wǎng)絡結(jié)構(gòu)層面和芯片能力兩方面入手。
在網(wǎng)絡結(jié)構(gòu)層面,會進行op融合(如conv-add-relu,conv-bn等)、fp16/int8量化、模型裁剪等優(yōu)化。
以近期上線的ARM定點量化為例,其優(yōu)點包括低內(nèi)存帶寬、低功耗、低計算資源占用。在一些網(wǎng)絡中,可以帶來4倍的模型壓縮、4倍的內(nèi)存帶寬提升,以及更高效的cache利用。在很多場景中,定點量化不會對網(wǎng)絡精度造成額外損失。量化主要分為兩大類:Post Training Quantization和QuantizationAware Training,前者是使用KL散度等方法確定量化參數(shù)且不需要重新訓練的定點量化方法,后者是對訓練好的模型做再訓練,建模來確定量化參數(shù)。
在訓練量化的過程中,會在原有網(wǎng)絡算子前后插入連續(xù)的量化op和反量化op,并改變相應的反向算子的輸入,評估階段,將量化算子參數(shù)變?yōu)榱炕蟮闹?,最終通過PaddleLite的工具改變模型文件中的參數(shù)數(shù)據(jù)類型為int8的na?ve buffer形式。
在后續(xù)的版本升級中,EasyDL會繼續(xù)上線模型裁剪優(yōu)化。基于敏感度選擇最優(yōu)的裁剪率組合來進行部分的卷積和裁剪,可以達到一倍以上模型體積的減少和低于1%的精度損失的優(yōu)化效果。結(jié)合定點量化以及后續(xù)的蒸餾策略,模型的體積和推理速度會得到更進一步的全面優(yōu)化。
在芯片層面,EasyDL會根據(jù)具體的硬件類型進行特屬優(yōu)化。比如在ARM64上如果芯片支持NEON,會充分利用其16個128位寄存器進行浮點數(shù)計算的優(yōu)化;在英偉達GPU設備上,EasyDL會利用TensorRT庫進行子圖的計算和加速;在蘋果手機上,會利用CoreML引擎進行推理加速;在華為手機上,如果支持DDK,會調(diào)用華為HiAI引擎進行推理。此外,EasyDL還支持英特爾的 MKL OpenVino, 高通的SNPE等推理引擎。在一些平臺上,能夠根據(jù)具體的深度學習網(wǎng)絡、芯片類型進行合理的自動選擇,在保證精度的同時最大化利用芯片能力,極大地提升推理速度。經(jīng)過網(wǎng)絡、硬件等各層面的優(yōu)化之后,模型在體積、內(nèi)存占用、推理速度上都會有更優(yōu)的表現(xiàn),部分模型的推理速度可以提升數(shù)倍以上。
近期EasyDL新上線了華為Atlas 200、Atlas300加速卡的支持,能夠支持最新DaVinci架構(gòu)的昇騰310AI處理器,同時兼顧開發(fā)板及服務器的場景。結(jié)合EasyDL現(xiàn)有的優(yōu)化技術(shù),在EasyDL的高性能模型上,可以達到6ms的性能。開啟多Batch優(yōu)化后,單張300加速卡可以一秒處理高達1000張圖片。
在EasyDL平臺上,模型加速優(yōu)化的全過程都會在系統(tǒng)中自動完成,用戶只需根據(jù)自己的場景需要,選擇具體的硬件,即可自動生成適配對應硬件的端計算部署包。現(xiàn)在,在發(fā)布模型的時候,用戶只需要勾選“同時獲取加速版”,EasyDL后臺便會自動為用戶生成具備量化、壓縮等優(yōu)化能力的加速版SDK和模型,用戶可以直接下載使用,且使用的流程也基本一致。且部署包的使用十分快速簡便,用戶無需關(guān)注深度學習、具體硬件等底層邏輯,只需關(guān)注輸入圖片和輸出的識別結(jié)果即可。
EasyDL面向企業(yè)開發(fā)者提供零門檻AI開發(fā)平臺,一站式支持智能標注、模型訓練、服務部署等全流程功能,內(nèi)置豐富的預訓練模型,支持圖像分類、物體檢測、文本分類、音視頻分類等多類模型,支持公有云/私有化/設備端等靈活部署方式。目前,已有數(shù)萬家企業(yè)根據(jù)具體業(yè)務場景,通過EasyDL平臺僅用少量業(yè)務數(shù)據(jù)訓練高精度AI模型,并根據(jù)使用場景和運行環(huán)境選擇適配的部署方式。使用門檻低、方便快捷的加速版SDK具備的量化壓縮等能力,正在越來越多的業(yè)務場景中發(fā)揮作用,快速解決業(yè)務需求。
立即嘗試EasyDL:https://ai.baidu.com/easydl/
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!