高效輕量級深度學習框架,專為移動端和嵌入式設備優化,支持模型推理和訓練
Apache-2.0C++ 12.6kalibabaMNN Last Updated: 2025-07-24
MNN - 阿里巴巴開源輕量級深度學習框架
項目概述
MNN是一個高效輕量級的深度學習框架,支持深度學習模型的推理和訓練,在設備端推理和訓練方面具有業界領先的性能。目前,MNN已經集成到阿里巴巴30多個應用中,如淘寶、天貓、優酷、釘釘、閒魚等,覆蓋直播、短視頻拍攝、搜索推薦、拍立淘、互動營銷、權益發放、安全風控等70多個使用場景。
GitHub地址: https://github.com/alibaba/MNN
核心特性
1. 極致輕量化
- iOS平台: armv7+arm64平台靜態庫大小約12MB,鏈接後可執行文件增量約2MB
- Android平台: 核心so庫大小約800KB (armv7a - c++_shared)
- 使用MNN_BUILD_MINI可減少約25%的包大小
- 支持FP16/Int8量化,可減少模型大小50%-70%
2. 廣泛的模型支持
- 框架支持: TensorFlow、Caffe、ONNX、Torchscripts
- 網絡類型: CNN、RNN、GAN、Transformer等常見神經網絡
- 算子支持:
- 178個TensorFlow算子
- 52個Caffe算子
- 163個Torchscripts算子
- 158個ONNX算子
3. 跨平台兼容性
- 移動平台: iOS 8.0+, Android 4.3+
- 嵌入式設備: 支持POSIX接口的設備
- 多設備混合計算: CPU和GPU協同工作
- IoT設備: 在物聯網設備上也有應用
4. 高性能優化
- 大量優化的匯編代碼充分利用ARM/x64 CPU
- 使用Metal/OpenCL/Vulkan支持移動端GPU推理
- 使用CUDA和Tensor Core支持NVIDIA GPU
- Winograd卷積算法廣泛用於3x3、4x4、5x5、6x6、7x7等對稱卷積
- ARM v8.2架構FP16半精度計算支持,速度提升2倍
- ARM v8.2 sdot和VNNI支持,速度提升2.5倍
架構支持矩陣
架构/精度 | Normal | FP16 | BF16 | Int8 |
---|---|---|---|---|
CPU | ||||
Native | B | C | B | B |
x86/x64-SSE4.1 | A | B | B | A |
x86/x64-AVX2 | S | B | B | A |
x86/x64-AVX512 | S | B | B | S |
ARMv7a | S | S(ARMv8.2) | S | S |
ARMv8 | S | S(ARMv8.2) | S(ARMv8.6) | S |
GPU | ||||
OpenCL | A | S | C | S |
Vulkan | A | A | C | A |
Metal | A | S | C | S |
CUDA | A | S | C | A |
NPU | ||||
CoreML | A | C | C | C |
HIAI | A | C | C | C |
NNAPI | B | B | C | B |
說明: S-強烈推薦 | A-支持良好 | B-支持但有問題 | C-不支持
核心組件
1. MNN-Converter
模型轉換工具,支持將其他框架模型轉換為MNN模型:
- 支持TensorFlow(lite)、Caffe、ONNX、Torchscripts
- 進行圖優化以減少計算量
2. MNN-Compress
模型壓縮工具,減少模型大小並提高性能
3. MNN-Express
支持控制流的模型執行,使用MNN算子進行通用計算
4. MNN-CV
輕量級圖像處理庫,類似OpenCV但基於MNN實現
5. MNN-Train
支持MNN模型訓練
特色應用
MNN-LLM
基於MNN引擎開發的大語言模型運行時解決方案,目標是在每個人的平台(手機/PC/IoT)上本地部署LLM模型。支持:
- 千問、百川、智譜、LLAMA等主流大語言模型
- 全模態LLM Android應用
- 文本生成、圖像理解、語音轉文本、文本生成圖像
MNN-Diffusion
基於MNN引擎的穩定擴散模型運行時解決方案,支持在各平台本地部署穩定擴散模型。
學術成果
MNN相關研究成果已發表在頂級系統會議OSDI'22和MLSys 2020上,證明了其在學術界和工業界的影響力。
開發工具
MNN Workbench
可從MNN官網下載,提供:
- 預訓練模型
- 可視化訓練工具
- 一鍵模型部署到設備
Python API
為機器學習工程師提供易用的Python接口,無需編寫C++代碼即可進行推理、訓練和圖像處理。
總結
MNN作為阿里巴巴開源的深度學習框架,憑藉其輕量化、高性能、跨平台的特點,已成為移動端和嵌入式AI部署的優秀選擇。無論是傳統的CNN模型推理,還是最新的大語言模型部署,MNN都提供了完整的解決方案,是AI開發者不可多得的工具集。