在行動和邊緣裝置上執行深度學習模型面臨獨特挑戰:有限的運算能力、受限的記憶體、電池敏感度以及多樣的硬體架構。MNN(Mobile Neural Network)是阿里巴巴對這些挑戰的回應,這是一款輕量級推論引擎,以最小的開銷和最大的效能將 AI 帶到邊緣。
MNN 為超過 30 個阿里巴巴應用提供支援,包括淘寶(電子商務)、優酷(影片串流)和各種企業工具。它已在十億使用者規模下經過實戰考驗,處理從即時電腦視覺到裝置端大型語言模型的各種任務。該引擎的二進位大小很小(核心執行環境不到 500 KB),執行時期記憶體佔用極少,使其甚至適用於低階裝置。
該專案自 2018 年開源發布以來有了顯著成長,現在支援新興的模型架構,包括轉換器、擴散模型和基於 Mamba 的架構。其可擴展的運算子庫涵蓋超過 150 種運算,每種都針對多種後端進行了優化。
MNN 與其他行動推論引擎相比如何?
行動推論領域包含多個競爭引擎,各有不同的優勢和取捨。
| 功能 | MNN(阿里巴巴) | TensorFlow Lite | ONNX Runtime | CoreML | NCNN(騰訊) |
|---|---|---|---|---|---|
| 二進位大小 | 約 500 KB | 約 1.5 MB | 約 3 MB | 系統內建 | 約 1 MB |
| 平台 | Android、iOS、Linux、Windows、macOS | Android、iOS、Linux、MCU | Android、iOS、Linux、Windows | 僅 iOS | Android、iOS、Linux |
| ARM 優化 | 優秀 | 良好 | 良好 | 原生 | 優秀 |
| 量化 | INT8、FP16、混合 | INT8、FP16 | INT8、FP16、INT4 | FP16 | INT8、FP16 |
| GPU 加速 | OpenCL、Vulkan、Metal | OpenCL、Metal | DirectML、Metal、Vulkan | Metal | Vulkan |
| LLM 支援 | 有(已優化) | 有限 | 有 | 有(ANE) | 有限 |
| RISC-V 支援 | 有 | 實驗性 | 有 | 無 | 有 |
MNN 結合了小體積、廣泛的平台支援和積極的硬體特定優化,使其在資源受限的 Android 和嵌入式 Linux 部署中特別強大。
graph LR
A[模型格式] --> B[MNNConvert]
B --> C[MNN 模型]
C --> D[MNN 執行環境]
D --> E[CPU 後端]
D --> F[GPU 後端]
D --> G[NPU/DSP 後端]
E --> H[ARM NEON]
E --> I[x86 AVX]
F --> J[OpenCL / Vulkan / Metal]
G --> K[Qualcomm / MediaTek / Apple]
MNN 實現了哪些裝置端 AI 能力?
MNN 廣泛的運算子覆蓋範圍和優化的核心使其適用於資源受限裝置上的各種 AI 任務。
| AI 能力 | 典型模型 | 使用案例 |
|---|---|---|
| 大型語言模型 | LLaMA、Qwen、ChatGLM | 裝置端聊天、文字補全 |
| 擴散模型 | Stable Diffusion 變體 | 圖片生成、編輯 |
| 電腦視覺 | ResNet、YOLO、MobileNet | 物體檢測、分類 |
| 自然語言處理 | BERT、RoBERTa、ALBERT | 情感分析、NER |
| 語音辨識 | Whisper、Paraformer | 語音命令、轉錄 |
| 多模態 | CLIP、BLIP-2 | 圖片搜尋、字幕生成 |
LLM 支援尤其值得關注。MNN 包含針對基於轉換器的語言模型的優化,包括 KV-cache 管理、推測解碼和 INT4 量化,使具有數十億參數的模型能夠在旗艦行動裝置上以合理的回應時間執行。
MNN 達到了哪些效能基準?
MNN 在基準比較中持續優於競爭對手的行動推論引擎,特別是在基於 ARM 的行動處理器上。
| 基準 | 模型 | MNN | TFLite | NCNN | 裝置 |
|---|---|---|---|---|---|
| 影像分類 | MobileNetV2 | 2.1 毫秒 | 3.0 毫秒 | 2.5 毫秒 | Snapdragon 8 Gen 3 |
| 物體檢測 | YOLOv5s | 8.5 毫秒 | 12.0 毫秒 | 9.2 毫秒 | Snapdragon 8 Gen 3 |
| NLP 推論 | BERT Base | 45 毫秒 | 65 毫秒 | 52 毫秒 | Snapdragon 8 Gen 3 |
| LLM(4-bit) | Qwen-1.8B | 18 tok/s | N/A | N/A | Snapdragon 8 Gen 3 |
| 影像分類 | MobileNetV2 | 1.8 毫秒 | 2.5 毫秒 | 2.0 毫秒 | Apple A17 Pro |
常見問題
什麼是 MNN? MNN(Mobile Neural Network)是阿里巴巴的開源超高速深度學習推論引擎,專為行動裝置、嵌入式系統和邊緣運算而優化。
MNN 支援哪些平台? 支援 Android、iOS、Windows、Linux(含 RISC-V)和 macOS,包含針對 Qualcomm、MediaTek 和 Apple Silicon 的優化。
MNN 支援哪些模型格式? 支援從 ONNX、TensorFlow、PyTorch、Caffe 和 MNN 格式轉換。
MNN 包含哪些工具? MNNConvert、MNNCompile、MNNTest、MNNV2Basic 和 MNNExpress,涵蓋完整工作流程。
MNN 的學術背景? 2018 年開源,論文發表於 ASPLOS 和 ACM Multimedia 等頂尖會議。
延伸閱讀
- MNN GitHub 儲存庫 – 原始碼、版本和文件
- MNN 文件 – 官方使用者指南和 API 參考
- 阿里巴巴開源上的 MNN – 阿里巴巴的 MNN 開源入口
- MNN 研究論文(ASPLOS) – 關於 MNN 架構的學術論文
- ONNX 模型 Zoo – 可轉換為 MNN 格式的預訓練模型
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!