直击行业痛点!端侧模型部署的成熟解决方案有了!
深度學習經過多年發展,AI已經深入人心,事實上,在圖像、文本領域,AI在多個產業已經落地了諸多應用,我們熟知的自動駕駛、語音助手,背后就大量運用了AI技術。
當下,飛槳PaddlePaddle、TensorFlow、PyTorch這樣的開源框架已經非常強大,為部署側也提供了相關的開源組件,以求降低開發難度。但由于端側硬件、系統種類繁多,各種加速芯片層出不窮,端側部署開發工作仍存在實實在在的挑戰,成為開發者將AI模型真正用起來的“攔路虎”。面對這些問題,是否存在一個平臺,能夠縮短部署開發的時間,實現一鍵式部署?同時對模型進行壓縮提速,實現高性能推理?百度EasyEdge專為解決以上問題而生,EasyEdge以PaddleLite、PaddleSlim為基礎,提供了簡單易用的端上部署套件,實現不寫代碼直接部署模型到端側,并支持二次開發。另外,EasyEdge也擴展了對主流端計算硬件的支持,適配更廣泛的硬件平臺、操作系統、模型類型,并針對特定加速芯片使用專有的計算庫,實現進一步的性能提升。
五大靈魂拷問,AI模型端部署難點在哪里?
靈魂拷問一——我的使用場景需要我將模型部署到端上,但是端上開發可能會面向嵌入式設備,操作系統也可能是Android、iOS,有一定的上手成本,怎樣才能更輕松地把模型落地到硬件設備上?
靈魂拷問二——這些年出了好多加速芯片、加速卡、邊緣計算盒,價格便宜還不占地,我想知道它們跑模型能達到什么樣的精度和性能,幫助我進行選型。
靈魂拷問三——我訓好的模型適配XX芯片,要在各種模型格式之間轉來轉去,有點頭大,好不容易模型格式對齊了,又有算子OP不支持,我該怎么辦才能讓它跑起來?
靈魂拷問四——我想換個芯片,卻發現怎么各家芯片的端上推理模型格式都不一樣,又得從頭適配,模型轉起來想想就頭大。
靈魂拷問五——費了九牛二虎之力,模型在端上跑起來了,可是速度不是太理想,我想讓它跑得更快,更省內存。聽說量化、剪枝、蒸餾這方面挺有用,但是好像自己研究代碼耗時太久。
EasyEdge提供最廣泛的硬件平臺適配
上述問題是開發者在端上部署模型時經常遇到的難點,為了解決這些問題,百度推出了EasyEdge端與邊緣AI服務平臺。通過EasyEdge,開發者可以便捷地將AI模型部署到各式各樣的AI芯片和硬件平臺上。事實上,最近EasyEdge又新增支持了兩個新的芯片系列:Atlas300 + 鯤鵬服務器以及瑞芯微多款NPU芯片(當前已適配RK3399Pro、RV1109、RV1126),下圖是EasyEdge的適配芯片矩陣,目前,EasyEdge支持20+ AI芯片與硬件平臺,4大主流操作系統。
? ?
你想把模型部署到Windows PC上?沒問題,安排!發布到手機上?Android還是iOS,隨便選!當然,Linux系統更加是支持的。
具體到推理芯片上面,EasyEdge支持了很多市面上常見的硬件,除了常見的CPU、GPU以及前面提到的新支持的芯片,同時還支持英偉達Jetson系列、比特大陸、海思NNIE系列、Intel VPU、主流手機上的NPU、GPU等芯片,以及百度自研的EdgeBoard系列邊緣AI計算盒。嵌入式設備、ARM CPU,那都不是事。而且,在未來,EasyEdge還會不斷適配更多的AI芯片、加速卡、邊緣計算盒,持續為開發者降低端側模型適配遷移的難度。
EasyEdge提供超全的模型適配
EasyEdge是專業的模型部署平臺,已經預置在百度EasyDL中。EasyDL作為零門檻的AI開發平臺,涵蓋了完整的數據處理、模型訓練與優化、服務部署等功能,支持非常完整的模型類型,包含圖像、文本、視頻、語音、OCR等多種場景多種類型的模型。通過EasyDL訓練的模型可以天然使用EasyEdge來方便的進行端上部署。
但如果你是專業的AI模型開發者,手上已經有訓練好的深度學習模型,只是苦于模型部署的麻煩,也可以來EasyEdge發布你的端上部署包。對于這樣的第三方模型,當前EasyEdge已經支持了飛槳PaddlePaddle、TensorFlow、PyTorch、Caffe、MXNet等諸多框架以及ONNX模型格式,支持的算法類型也包括了圖像分類、物體檢測、人臉識別等業界主流的各類算法。
EasyEdge提供更強的端上推理性能
為了適配諸多AI芯片,EasyEdge針對不同芯片做了大量適配加速工作。因為在訓練階段,更多地關注模型效果及調優的靈活性。當訓練完成后,模型就固化下來了。然而在端上部署時,關注點會變為模型的推理,在推理環節中的重點是推理性能。因此各家AI芯片廠商為了實現更高性能的推理能力,都在努力提高芯片的并行處理能力,或者通過GPU這樣的超多線程并行處理,或者通過ASIC芯片這樣極大增強芯片的單指令向量乃至矩陣處理能力。但不管怎樣,線程化或者向量化帶來算力巨大提升的同時,必然導致靈活性的下降。這也是為什么端側AI芯片大都具有自己的模型格式和計算庫。但同時也就帶來了部署上面大量的適配和模型轉換工作。為此,EasyEdge內置了強大的模型互轉工具,實現各個框架模型到統一IR的轉換,再將統一的IR適配到各個端上。當模型部署到端上時,遇到有些OP不支持的情況時,EasyEdge提供了大量的OP優化和替換操作。同時,EasyEdge還會利用芯片的自定義OP功能或者底層的編程語言進行自定義OP的編寫,以保證模型端到端地運行到AI芯片上。
為了讓模型跑得更快更省內存,模型壓縮就是推理側非常強大且實用的技術了。這方面,EasyEdge不僅支持了業界領先的量化、剪枝和蒸餾技術,還能夠混合使用這幾項能力,在盡可能保證效果的同時達到更好的壓縮效果。左下圖展示了幾款常見硬件的定點數算力和浮點數算力的比對,可以看到在很多硬件上定點數算力都遠大于浮點數算力,對于這樣的硬件,量化是非常必要的。而右圖中則可以看到剪枝和蒸餾對于模型推理的加速效果,剪枝和蒸餾本質都是對基礎模型在盡量不影響精度的前提下進行精簡,自然模型小了,內存占用就少了,推理時間也就短了。
EasyEdge內置全自動評估系統,展示模型精度、性能、內存等多維度評價指標
事實上,在EasyEdge,當你發布模型的時候,你通常能見到這樣的網頁:
一次訓練,多端部署。一個模型可以發布這么多的部署包,省去了一個個適配的麻煩。在這個頁面上還最新上線了模型效果評估的功能,打開性能評估報告,便能看到下面這樣的頁面。模型的精度、對應硬件上的推理時間都一目了然的展示出來了(tips:這里的推理時間可不是經驗時間,是你的模型真實在硬件跑出來的時間哦),有個這個報告,大家在部署前就能對自己的模型精度和性能情況了然于胸,是不是很貼心呢?
如果你選擇SDK的方式進行模型部署,你將獲取一個功能強大的部署包:不僅有完整且簡單的接口,也有非常完善的demo工程,包括圖片的推理、視頻流的推理、多線程的推理等等,如果你是一個編程高手,相信你看完接口和demo,很快就能集成AI的能力去進行應用開發。那如果不想寫代碼就想部署模型怎么辦呢?安排,SDK里面提供了部署Serving服務的能力,不用寫代碼,運行一下編譯出來的二進制,你的模型Serving服務就起來了,還附帶H5頁面,可以在這個頁面上拖入圖片看看效果。也可能通過http方式去請求Serving服務,操作非常便捷。事實上,EasyEdge的工具包中還有諸多類似這樣方便開發和調試的小工具,限于篇幅沒法一一列舉,靜待開發者來探索與體驗。
快來訓練部署你的模型吧!
相信通過前面的介紹,大家對于EasyEdge的多操作系統、多芯片適配的能力已經有了大體的認知了,那不妨親自來體驗一下。
EasyDL是基于飛槳深度學習開源平臺,面向企業AI應用開發者的零門檻AI開發平臺,實現零算法基礎定制高精度AI模型。EasyDL提供一站式的智能標注、模型訓練、服務部署等全流程功能,內置豐富的預訓練模型,支持公有云、設備端、私有服務器、軟硬一體方案等靈活的部署方式。準備好你的場景數據,去訓練一個模型并部署到任何想部署的硬件上,使用EasyDL高效完成不是夢!
如果你已經有自己的模型,也可以去EasyEdge發布適配自己芯片的SDK和開發者套件哦。開發者套件使用十分簡單便捷,無需關注深度學習、具體硬件等底層邏輯,只需關注輸入圖片和輸出的識別結果即可。
還等什么,快點擊閱讀原文,立即行動吧!
總結
以上是生活随笔為你收集整理的直击行业痛点!端侧模型部署的成熟解决方案有了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刷新SOTA!Salesforce提出跨
- 下一篇: 关于知识图谱,我们接下来该研究什么?斯坦