阿里开源深度神经网络推理引擎 MNN
近日,阿里正式開(kāi)源了輕量級(jí)深度學(xué)習(xí)端側(cè)推理引擎 “MNN”。
MNN 是一個(gè)輕量級(jí)的深度學(xué)習(xí)端側(cè)推理引擎,核心解決深度神經(jīng)網(wǎng)絡(luò)模型在端側(cè)推理運(yùn)行問(wèn)題,涵蓋深度神經(jīng)網(wǎng)絡(luò)模型的優(yōu)化、轉(zhuǎn)換和推理。
官方希望 MNN 能夠抹平 Android 和 iOS 的差異、碎片設(shè)備之間的差異、不同訓(xùn)練框架的差異,實(shí)現(xiàn)快速的在端側(cè)部署運(yùn)行,并且能夠根據(jù)業(yè)務(wù)模型進(jìn)行 OP 靈活添加和 CPU/GPU 等異構(gòu)設(shè)備深入性能優(yōu)化。
△ MNN 架構(gòu)設(shè)計(jì),分為 Converter 和 Interpreter 兩部分
具體來(lái)說(shuō),MNN 負(fù)責(zé)加載網(wǎng)絡(luò)模型,推理預(yù)測(cè)返回相關(guān)結(jié)果。整個(gè)推理過(guò)程可以分為模型的加載解析、計(jì)算圖的調(diào)度、在異構(gòu)后端上高效運(yùn)行。MNN 具備四大特征:
-
通用性:支持 Tensorflow、Caffe、ONNX 等主流模型文件格式,支持 CNN、RNN、GAN 等常用網(wǎng)絡(luò);
-
輕量性:針對(duì)端側(cè)設(shè)備特點(diǎn)深度定制和裁剪,無(wú)任何依賴,可以方便地部署到移動(dòng)設(shè)備和各種嵌入式設(shè)備中。
-
高性能:不依賴任何第三方計(jì)算庫(kù),依靠大量手寫匯編實(shí)現(xiàn)核心運(yùn)算,充分發(fā)揮 ARM CPU 的算力。
-
易用性:具備完善的文檔和實(shí)例,有高效的圖像處理模塊,覆蓋常見(jiàn)的形變、轉(zhuǎn)換等需求。支持回調(diào)機(jī)制,方便提取數(shù)據(jù)或者控制運(yùn)行走向。
關(guān)于 MNN 的優(yōu)勢(shì),已入職阿里的 AI 科學(xué)家賈揚(yáng)清評(píng)價(jià)道:
與 Tensorflow、Caffe2 等同時(shí)覆蓋訓(xùn)練和推理的通用框架相比,MNN 更注重在推理時(shí)的加速和優(yōu)化,解決在模型部署的階段的效率問(wèn)題,從而在移動(dòng)端更高效地實(shí)現(xiàn)模型背后的業(yè)務(wù)。
這意味著 MNN 和服務(wù)器端 TensorRT 等推理引擎的想法相符合。在大規(guī)模機(jī)器學(xué)習(xí)應(yīng)用中,考慮到大規(guī)模的模型部署,機(jī)器學(xué)習(xí)的推理側(cè)計(jì)算量往往是訓(xùn)練側(cè)計(jì)算量的十倍以上,所以推理側(cè)的優(yōu)化尤其重要。
△ MNN 與 Caffe2 等框架進(jìn)行性能比較,有 20% 以上優(yōu)勢(shì)
目前,MNN 已經(jīng)在手淘、手貓、優(yōu)酷、聚劃算、UC 等 20 多個(gè) App 中使用,覆蓋直播、短視頻、搜索推薦、商品圖像搜索等場(chǎng)景,每天穩(wěn)定運(yùn)行上億次。此外,IoT 等場(chǎng)景下也有若干應(yīng)用。官方計(jì)劃每?jī)蓚€(gè)月發(fā)布一個(gè)穩(wěn)定版本。
參考:MNN 項(xiàng)目介紹、阿里技術(shù)
總結(jié)
以上是生活随笔為你收集整理的阿里开源深度神经网络推理引擎 MNN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一线| Uber IPO定价再度下调 或
- 下一篇: 辽宁又现飞天怪龙!恐龙界的“蝙蝠侠”终于