近日,阿里正式開源了輕量級深度學習端側推理引擎 “MNN”。
MNN 是一個 輕量級的深度學習端側推理引擎 ,核心解決深度神經網路模型在端側推理執行問題,涵蓋深度神經網路模型的優化、轉換和推理。
官方希望 MNN 能夠抹平 Android 和 iOS 的差異、碎片裝置之間的差異、不同訓練框架的差異,實現快速的在端側部署執行,並且能夠根據業務模型進行 OP 靈活新增和 CPU/GPU 等異構裝置深入效能優化。
△ MNN 架構設計,分為 Converter 和 Interpreter 兩部分
具體來說,MNN 負責載入網路模型,推理預測返回相關結果。整個推理過程可以分為模型的載入解析、計算圖的排程、在異構後端上高效執行。MNN 具備四大特徵:
- 通用性: 支援 Tensorflow、Caffe、ONNX 等主流模型檔案格式,支援 CNN、RNN、GAN 等常用網路;
- 輕量性: 針對端側裝置特點深度定製和裁剪,無任何依賴,可以方便地部署到移動裝置和各種嵌入式裝置中。
- 高效能: 不依賴任何第三方計算庫,依靠大量手寫彙編實現核心運算,充分發揮ARM CPU的算力。
- 易用性: 具備完善的文件和例項,有高效的影像處理模組,覆蓋常見的形變、轉換等需求。支援回撥機制,方便提取資料或者控制執行走向。
關於 MNN 的優勢,已入職阿里的 AI 科學家賈揚清評價道:
與 Tensorflow、Caffe2 等同時覆蓋訓練和推理的通用框架相比,MNN 更注重在推理時的加速和優化,解決在模型部署的階段的效率問題,從而在移動端更高效地實現模型背後的業務。
這意味著 MNN 和伺服器端 TensorRT 等推理引擎的想法相符合。在大規模機器學習應用中,考慮到大規模的模型部署,機器學習的推理側計算量往往是訓練側計算量的十倍以上,所以推理側的優化尤其重要。
△ MNN 與 Caffe2 等框架進行效能比較,有 20% 以上優勢
目前,MNN已經在手淘、手貓、優酷、聚划算、UC等 20 多個 App 中使用,覆蓋直播、短視訊、搜尋推薦、商品影像搜尋等場景,每天穩定執行上億次。此外,IoT 等場景下也有若干應用。 官方計劃每兩個月釋出一個穩定版本。