OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  代码  ›  MNN — 阿里巴巴轻量推理引擎

MNN — 阿里巴巴轻量推理引擎

 
  mai ·  2026-02-28 01:06:37 · 2 次点击  · 0 条评论  

MNN

License
Documentation
中文版本
日本語バージョン
MNN Homepage

MNN Chat App
TaoAvatar
Sana

最新动态 🔥

  • [2026/02/13] MNN-Sana-Edit-V2 现已发布,位于 apps,提供基于 Sana 的卡通风格照片编辑功能。

Icon

  • [2025/10/16] 支持 Qwen3-VL 系列模型。
  • [2025/06/11] 新应用 MNN TaoAvatar 发布,您可以与 3D 虚拟形象离线对话!LLM、ASR、TTS、A2BS 和 NNR 模型全部在您的设备本地运行!MNN TaoAvatar

Icon

  • [2025/05/12] Android 应用支持 qwen2.5 omni 3b 和 7b 模型 MNN Chat App

Icon Icon Icon

历史动态 - [2025/04/30] Android 应用支持 qwen3 模型和深色模式 [MNN Chat App](./apps/Android/MnnLlmChat/README.md#releases)。

Icon

- [2025/02/18] iOS 多模态 LLM 应用发布 [MNN LLM iOS](./apps/iOS/MNNLLMChat/README.md)。

Icon

- [2025/02/11] Android 应用支持 [deepseek r1 1.5b](./project/android/apps/MnnLlmApp/README.md#version-021) 模型。

Icon

- [2025/01/23] 我们发布了完整的多模态 LLM Android 应用:[MNN-LLM-Android](./apps/Android/MnnLlmChat/README.md)。包含文本到文本、图像到文本、音频到文本以及文本到图像生成功能。

Icon Icon Icon Icon

简介

MNN 是一个高效、轻量的深度学习框架。它支持深度学习模型的推理与训练,在端侧推理和训练方面具有业界领先的性能。目前,MNN 已集成到阿里巴巴集团超过 30 个应用中,如淘宝、天猫、优酷、钉钉、闲鱼等,覆盖直播、短视频拍摄、搜索推荐、拍立淘、互动营销、权益发放、安全风控等超过 70 个使用场景。此外,MNN 也应用于嵌入式设备,如物联网设备。

MNN-LLM 是基于 MNN 引擎开发的大语言模型运行时解决方案。该项目的使命是在每个人的平台(手机/PC/IOT)上本地部署 LLM 模型。它支持通义千问、百川、智谱、LLAMA 等流行的大语言模型。MNN-LLM 用户指南

MNN-Diffusion 是基于 MNN 引擎开发的稳定扩散模型运行时解决方案。该项目的使命是在每个人的平台本地部署稳定扩散模型。MNN-Diffusion 用户指南

architecture

在阿里巴巴内部,MNN 作为 Walle 系统中计算容器的基础模块,Walle 是首个端到端、通用、大规模的设备-云协同机器学习生产系统,已发表在顶级系统会议 OSDI’22。MNN 的关键设计原则和广泛的基准测试结果(与 TensorFlow、TensorFlow Lite、PyTorch、PyTorch Mobile、TVM 对比)可在 OSDI 论文中找到。基准测试的脚本和说明位于路径 “/benchmark”。如果 MNN 或 Walle 的设计对您的研究或生产使用有所帮助,请引用我们的 OSDI 论文:

@inproceedings {proc:osdi22:walle,
    author = {Chengfei Lv and Chaoyue Niu and Renjie Gu and Xiaotang Jiang and Zhaode Wang and Bin Liu and Ziqi Wu and Qiulin Yao and Congyu Huang and Panos Huang and Tao Huang and Hui Shu and Jinde Song and Bin Zou and Peng Lan and Guohuan Xu and Fei Wu and Shaojie Tang and Fan Wu and Guihai Chen},
    title = {Walle: An {End-to-End}, {General-Purpose}, and {Large-Scale} Production System for {Device-Cloud} Collaborative Machine Learning},
    booktitle = {16th USENIX Symposium on Operating Systems Design and Implementation (OSDI 22)},
    year = {2022},
    isbn = {978-1-939133-28-1},
    address = {Carlsbad, CA},
    pages = {249--265},
    url = {https://www.usenix.org/conference/osdi22/presentation/lv},
    publisher = {USENIX Association},
    month = jul,
}

文档与工作台

MNN 的文档位于 Read the docs

您也可以阅读 docs/README 来构建文档的 HTML 版本。

MNN Workbench 可从 MNN 官网 下载,它提供预训练模型、可视化的训练工具,以及一键将模型部署到设备的功能。

核心特性

轻量级

  • 为设备优化,无依赖,可轻松部署到移动设备和各种嵌入式设备。
  • iOS 平台:包含 armv7+arm64 平台全选项的静态库大小约为 12MB,链接后可执行文件大小增加约 2M。
  • Android 平台:核心 so 库大小约为 800KB (armv7a - c++_shared)。
  • 使用 MNN_BUILD_MINI 可减少约 25% 的包大小,但限制模型输入尺寸固定。
  • 支持 FP16 / Int8 量化,可将模型大小减少 50%-70%。

通用性强

  • 支持 TensorflowCaffeONNXTorchscripts 模型格式,并支持 CNNRNNGANTransformer 等常见神经网络。
  • 支持多输入/多输出的 AI 模型、各种维度格式、动态输入、控制流。
  • MNN 支持 AI 模型所需的近似全部算子。转换器支持 178 个 Tensorflow 算子、52 个 Caffe 算子、163 个 Torchscripts 算子、158 个 ONNX 算子。
  • 支持 iOS 8.0+、Android 4.3+ 以及具有 POSIX 接口的嵌入式设备。
  • 支持多设备混合计算。目前支持 CPU 和 GPU。

高性能

  • 核心计算使用大量优化的汇编代码实现,以充分利用 ARM / x64 CPU。
  • 使用 Metal / OpenCL / Vulkan 支持移动端 GPU 推理。
  • 使用 CUDA 和张量核心支持 NVIDIA GPU 以获得更好性能。
  • 卷积和转置卷积算法高效稳定。Winograd 卷积算法被广泛用于优化对称卷积,如 3x3, 4x4, 5x5, 6x6, 7x7。
  • 对于支持 FP16 半精度计算的新架构 ARM v8.2,速度提升两倍。使用 ARM v8.2 的 sdot 和 VNNI 指令可提速 2.5 倍。

易于使用

  • 支持使用 MNN 的算子进行类似 numpy 的数值计算。
  • 支持类似 OpenCV 的轻量级图像处理模块,仅约 100k。
  • 支持在 PC / 移动端构建模型并进行训练。
  • MNN Python API 帮助机器学习工程师轻松使用 MNN 进行推理、训练和图像处理,无需接触 C++ 代码。

MNN 支持的架构/精度如下表所示:

  • S :支持且运行良好,深度优化,推荐使用
  • A :支持且运行良好,可以使用
  • B :支持但有 bug 或未优化,不推荐使用
  • C :不支持
架构 / 精度 常规 FP16 BF16 Int8
CPU Native B C B B
x86/x64-SSE4.1 A C C A
x86/x64-AVX2 S C C A
x86/x64-AVX512 S C C 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
QNN C B C C

工具

基于 MNN(张量计算引擎),我们提供了一系列用于推理、训练和通用计算的工具。

  • MNN-Converter:将其他模型转换为 MNN 模型以进行推理,例如 Tensorflow(lite)、Caffe、ONNX、Torchscripts。并进行图优化以减少计算量。
  • MNN-Compress:压缩模型以减少大小并提高性能/速度。
  • MNN-Express:支持带控制流的模型,使用 MNN 的算子进行通用计算。
  • MNN-CV:一个类似 OpenCV 的库,但基于 MNN,因此更加轻量。
  • MNN-Train:支持训练 MNN 模型。

如何与 MNN 社区讨论并获得帮助

群组讨论主要为中文。但我们欢迎并会帮助英语使用者。

钉钉讨论群:

群 #4 (可用):160170007549

群 #3 (已满)

群 #2 (已满):23350225

群 #1 (已满):23329087

历史论文

MNN 的早期版本,作为移动推理引擎并专注于手动优化,也已发表在 MLSys 2020。如果 MNN 曾对您的研究有所帮助,请引用该论文:

@inproceedings{alibaba2020mnn,
  author = {Jiang, Xiaotang and Wang, Huan and Chen, Yiliu and Wu, Ziqi and Wang, Lichuan and Zou, Bin and Yang, Yafeng and Cui, Zongyang and Cai, Yu and Yu, Tianhang and Lv, Chengfei and Wu, Zhihua},
  title = {MNN: A Universal and Efficient Inference Engine},
  booktitle = {MLSys},
  year = {2020}
}

许可证

Apache 2.0

致谢

MNN 参与者:淘宝技术部、搜索工程团队、达摩院团队、优酷及其他阿里巴巴集团员工。

MNN 参考了以下项目:
- Caffe
- flatbuffer
- gemmlowp
- Google Vulkan demo
- Halide
- Mace
- ONNX
- protobuffer
- skia
- Tensorflow
- ncnn
- paddle-mobile
- stb
- rapidjson
- pybind11
- pytorch
- bolt
- libyuv
- libjpeg
- opencv
- onnxruntime

2 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor