搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

alibaba/MNN

机器学习

面向手机、PC 和嵌入式设备的轻量深度学习推理引擎,可在端侧运行模型和 LLM。

16,423
2,511
C++
Apache-2.0
创建于 7 年前

项目介绍

MNN 是一个面向端侧推理与训练的深度学习框架,重点优化手机和嵌入式设备上的性能。它可以把 TensorFlow、Caffe、ONNX、TorchScript 模型转换为 MNN 格式,再在 CPU、GPU 和多种 NPU 后端上运行。仓库同时包含用于本地大模型部署的 MNN-LLM,以及运行 Stable Diffusion 类模型的 MNN-Diffusion。

目标用户是需要紧凑二进制体积和可控性能的移动端、嵌入式开发者。按文档说明,Android 核心库在 armv7a C++ 共享库配置下约 800 KB,iOS 完整静态库约 12 MB (46)。框架支持 CNN、RNN、GAN、Transformer,以及动态输入、控制流和多输入多输出模型 (47)。后端覆盖较广,但不同精度下的支持程度并不一致,README 的支持表把深度优化路径与“可用但未优化”路径区分开来 (49)。

除引擎外,仓库还提供 MNN-Converter、MNN-Compress、MNN-Express、轻量 OpenCV 风格图像模块和 MNN-Train (50)。应用示例包括 Android 端的 MNN Chat 多模态本地大模型应用和 TaoAvatar 3D 数字人应用 (30)(28)。

快速使用

最稳妥的入口是官方文档 (6),其中覆盖源码构建、模型转换和各运行时用法。典型流程如下:

  1. 安装目标平台的构建依赖,例如 CMake、C++ 编译器,以及 Xcode 或 Android NDK 等平台 SDK。
  2. 克隆仓库,按对应平台文档给出的 CMake 选项构建引擎。
  3. 用 MNN-Converter 转换已有的 ONNX、TensorFlow、Caffe 或 TorchScript 模型。
  4. 通过 C++ 或 Python API 加载转换后的模型并执行推理。

README 没有给出完整的克隆、构建、转换命令序列,因此需要按文档中的分平台步骤操作,不要自行猜测编译选项。部署 LLM 时使用 MNN-LLM 指南 (36);部署扩散模型时使用 MNN-Diffusion 指南 (38)。模型格式转换细节和算子支持也在对应文档中说明。

使用约束

  • 平台支持包括 iOS 8.0+、Android 4.3+ 和带 POSIX 接口的嵌入式设备,并提供 CPU 与 GPU 混合执行 (47)(48)。
  • GPU 和 NPU 加速取决于后端和精度。例如 Vulkan 与 OpenCL 的 INT8/FP16 支持级别不同,CoreML 内部主要使用 FP16 (49)。
  • 量化可将模型体积减少约 50%–70%,但支持表说明 INT8/INT4 评级并不代表每个算子都能执行完整整数运算 (46)(49)。
  • 启用 MNN_BUILD_MINI 可再减小约 25% 的包体积,代价是模型输入尺寸固定 (46)。
  • 项目采用 Apache-2.0 许可证 (53)。
  • 社区讨论以中文为主,通过钉钉群进行,也欢迎英文使用者 (51)。

HotRepo 点评

在 2026-11-07 的 C++ 日榜中,MNN 单日新增 26 星,位列当日该语言榜第 6。单次快照只能说明当天 C++ 开发者的关注情况,不能据此判断趋势。更稳定的信号是项目范围:一个 Apache-2.0 的推理引擎,已在阿里巴巴内部应用中使用,同时提供移动端 LLM 运行时和采用 Apache 2.0 发布的端侧小模型 MNN-Pocket-0.3B (18)。对于正在比较端侧运行时的读者,精度与后端的支持表和单独的 LLM/扩散模型指南,是可以结合自身硬件直接评估的具体材料。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

MNN – fast, lightweight deep learning framework
▲ 2 · 0 条评论 · 2026年1月22日
Alibaba mnn android app support DeepSeek R1 model
▲ 2 · 0 条评论 · 2025年2月6日