近日,阿里正式開源了輕量級深度學習端側推理引擎 「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 等場景下也有若干應用。官方計劃每兩個月發布一個穩定版本。
[admin
]