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