MNN通用端侧深度学习预测框架介绍
最近端側(cè)的AI模型應(yīng)用越來越廣泛,在端側(cè)的模型應(yīng)用會面對很多的問題,比如模型適配性和機(jī)型適配性,還有計算性能方面的問題。是否有某種框架可以解決這些端側(cè)AI模型遇到的問題,Google、蘋果等公司都有相關(guān)的工作。今天介紹下MNN框架,由阿里巴巴開源的一款專注于端側(cè)深度學(xué)習(xí)模型預(yù)測框架。
項目開源地址:https://github.com/alibaba/MNN
MNN核心解決的問題
首先看下MNN的核心功能架構(gòu)圖:
?
MNN主要解決了三方面的問題:
Model compatibility:模型多樣性的兼容問題,比如來自TensorFlow、PyTorch、Caffe的模型全部兼容,甚至ONNX格式的模型也兼容
Resource limitation:在端側(cè)為了更好地解決性能問題,MNN做了很多框架層面的優(yōu)化問題
Device diversity:手機(jī)端不同品牌的手機(jī)系統(tǒng)兼容性一直是嵌入式開發(fā)的痛點(diǎn),作者當(dāng)年創(chuàng)業(yè)做手機(jī)應(yīng)用的時候就被這個問題折磨很久。MNN框架不光適配了Android、IOS等系統(tǒng),更對不同硬件環(huán)境的手機(jī)進(jìn)行了適配,比如對手機(jī)側(cè)的CPU、GPU分別作了一定適配。
MNN技術(shù)架構(gòu)
接下來看下MNN技術(shù)架構(gòu)圖:
MNN的整體技術(shù)架構(gòu)分為兩個大模塊:
-
Offline conversion:離線的模型轉(zhuǎn)換模塊,在這個模塊需要把不同格式的模型進(jìn)行格式轉(zhuǎn)換,生成MNN可以接受的格式。另外還需要做計算圖優(yōu)化和模型壓縮,是得模型的體檢減小
-
On-device Inference:在線模型預(yù)測模塊,在在線預(yù)測模塊提供3個優(yōu)化策略,分別是pre-inference、operator-level optimization和backend abstraction
MNN在線預(yù)測模塊技術(shù)詳解
?
接下來就MNN的On-device Inference的三個技術(shù)模塊pre-inference、operator-level optimization和backend abstraction分別作介紹。
(1)pre-inference
pre-inference可以分為兩個部分,分別是computation scheme selection和preparation-execution decoupling。pre-inference本質(zhì)上就是在基本可以確定要預(yù)測的數(shù)據(jù)量級的情況下做提前的準(zhǔn)備。
computation scheme selection指的是將計算量適配到合理的計算資源以及算法層面,他舉一個例子,卷積網(wǎng)絡(luò)可以有兩種算法實(shí)現(xiàn),針對不同場景選擇更合適的算法是一種提效手段。另外
preparation-execution decoupling指的是提前規(guī)劃好需要使用的內(nèi)存資源,這樣就可以節(jié)約現(xiàn)申請內(nèi)存帶來的時間消耗。
(2)operator-level optimization
operator-level optimization指的就是預(yù)測階段使用的神經(jīng)網(wǎng)絡(luò)的一些op在MNN框架層面的優(yōu)化,更多的是一些數(shù)學(xué)層面的推理,就不詳細(xì)介紹了。
(3)backend abstraction
backend abstraction指的是一些針對GPU、TPU、CPU硬件和OpenGL、OpenCL、Vulkan軟件層面的優(yōu)化。backend abstraction的宗旨就是把最合適的計算放到最合適的硬件或者軟件環(huán)境中進(jìn)行,比如卷積放到CPU上執(zhí)行,然后ReLU可以放到GPU上去執(zhí)行。
總結(jié)一下
?
MNN是一個很好地端側(cè)模型應(yīng)用框架,基本把端側(cè)的模型應(yīng)用的臟活累活都解決了,在AIEdge的時代,MNN占據(jù)了一個絕佳的流量入口,后續(xù)MNN應(yīng)該有更多的應(yīng)用,可能很快我們熟知的各種APP中就會陸續(xù)出現(xiàn)MNN的身影。
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的MNN通用端侧深度学习预测框架介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机端部署的超分机器学习模型-MobiS
- 下一篇: Google的AI模型是如何做A/B T