高效轻量级深度学习框架,专为移动端和嵌入式设备优化,支持模型推理和训练
Apache-2.0C++MNNalibaba 13.3k Last Updated: October 16, 2025
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开发者不可多得的工具集。