MNN 3.1.0 发布:移动端大模型应用与性能全面升级
项目简介
MNN 是阿里巴巴开源的一款轻量级、高性能的深度学习推理引擎,特别针对移动端和边缘计算设备进行了优化。作为一款跨平台的深度学习框架,MNN 支持 Android、iOS、Linux、macOS 和 Windows 等多个平台,能够高效运行各种深度学习模型,包括近年来兴起的大语言模型(LLM)和扩散模型(Diffusion Model)。
3.1.0 版本核心更新
移动端大模型应用落地
本次更新的最大亮点是正式推出了面向移动设备的大模型应用:
-
Android 平台:新增了完整的 LLM/Diffusion 大模型应用,开发者可以直接集成到 Android 项目中,实现本地化的大模型推理能力。
-
iOS 平台:同步推出了 iOS 版本的大模型应用,为苹果生态开发者提供了便捷的大模型集成方案。
这些应用的发布标志着 MNN 在大模型移动端部署领域迈出了重要一步,使开发者能够在资源受限的移动设备上高效运行复杂的大模型。
多模态大模型支持扩展
3.1.0 版本显著增强了对多模态大模型的支持:
- 新增支持 Qwen2-VL、Qwen2-Audio 和 Qwen2.5-VL 等多模态模型的导出和运行
- 支持 DeepSeek-R1-1.5B-Qwen 和 DeepSeek-R1-7B-Qwen 等模型
这些更新使 MNN 能够处理更丰富的输入模态,包括视觉、语音等多模态数据,为开发更智能的跨模态应用提供了基础。
性能优化与技术创新
LLM 推理性能提升
-
CPU 多线程优化:进一步优化了 LLM 在 CPU 上的多线程性能,提升了整体推理速度。
-
Prefill 阶段优化:针对 CPU 上的 prefill 阶段进行了专门优化,使 1024 token 输入和 512 token 输入的 prefill 性能达到相近水平。
-
GPU 后端增强:
- 优化了 OpenCL AutoTuning 耗时,避免首次推理耗时过长
- Metal/OpenCL 后端支持 fp16 的 scale/bias 和对称量化优化
- 新增 LLM 加速选项,在 precision=low 时自动启用 fp16 优化
根据实测数据,在小米14设备上运行千问2.5-7B-Int4-128模型(输入512 token),3.1.0版本相比3.0.0版本有显著性能提升。
内存与计算优化
-
内存管理改进:
- LLM-CPU 支持 mmap 文件缓存,二次加载模型时避免内存重排
- OpenCL 降低非对齐情况下申请的内存大小
- 重构 ConvTranspose3D 为 ConvTranspose2D,大幅减少内存占用
-
计算效率提升:
- 将 Convolution3D 转换为 Convolution2D,降低耗时和内存占用
- 优化 Conv3D 的 im2col 实现,减少 region 数量
- Vulkan Image 分支性能优化,在8Gen系列芯片上与OpenCL持平,中低端设备提升30%
开发者工具与功能增强
模型开发与调试
-
LLM 单步执行支持:新增单步执行功能,便于开发者调试和优化模型推理过程。
-
采样算法扩展:丰富了采样算法的支持,提供更多推理策略选择。
-
概率输出功能:LLM 导出模型时支持输出历史 Token 的概率值,便于模型分析和调优。
跨平台支持改进
-
Pymnn 无 numpy 依赖:现在可以在没有 numpy 的环境下安装 Pymnn,降低了部署门槛。
-
数字人 KV Cache 回溯:新增对 KV Cache 回溯的支持,提升数字人模型推理效率。
-
OpenCL 大模型分块计算:支持大模型分块计算,避免渲染卡顿问题。
问题修复与稳定性提升
本次更新修复了多个关键问题,包括:
-
精度问题:修复了 Arm v8 架构下 Debug 和 Release 模式 layernorm 计算的微小误差。
-
功能异常:
- 修复 LLM Lora 分离加载模式的误差问题
- 修正 NNAPI 中 Binary 不支持 relu fuse 的问题
- 解决 Onnx Cast 算子输出 fp16 时报错问题
-
内存问题:
- 修复 GPU 模型串联运行时内存访问越界
- 解决 ConvTranspose CPU 内存占用过大问题
-
工具问题:修复离线量化工具和 MNN CV 处理中的错误。
技术架构演进
-
内存共享方案升级:OpenCL 内存共享方案切换为 HardwareBuffer,提升内存管理效率。
-
计算图优化:持续优化计算图转换和算子融合策略,提升整体推理效率。
-
量化支持增强:完善8bit量化支持,修复相关导出问题。
总结
MNN 3.1.0 版本在移动端大模型应用落地、多模态支持、性能优化和开发者体验等方面都取得了显著进展。特别是移动端大模型应用的发布,为开发者提供了开箱即用的解决方案,大大降低了在移动设备上部署大模型的技术门槛。
在性能方面,通过对 CPU、GPU 各个后端的持续优化,MNN 在各种硬件平台上都能提供高效的推理能力。同时,新增的调试和分析功能也为开发者优化模型性能提供了更多工具支持。
随着人工智能应用向边缘设备迁移的趋势加速,MNN 作为一款轻量级、高性能的推理引擎,将持续为移动端和边缘计算场景提供强大的技术支持。3.1.0 版本的发布,标志着 MNN 在大模型时代的技术布局又向前迈进了一步。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0197
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0125
MiMo-V2.5-Pro-FP4-DFlashMiMo-V2.5-Pro-FP4-DFlash 是驱动 MiMo-V2.5-Pro-UltraSpeed 的底层模型: FP4 量化骨干网络:对 MoE 专家采用 MXFP4 量化,同时保持模型其他部分的更高精度,在几乎无损质量的前提下,显著减小模型体积并降低内存带宽压力。 BF16 DFlash 草稿生成器:用于块扩散推测解码,每次前向传播可生成一整个块的 tokens,并让骨干网络一步完成验证。 两者协同作用,既降低了每参数的位宽,又减少了骨干网络前向传播的次数,而这两者正是万亿参数模型解码过程中的两大主要成本来源。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
AstrBot✨ 易上手的多平台 LLM 聊天机器人及开发框架 ✨ 平台支持 QQ、QQ频道、Telegram、微信、企微、飞书 | OpenAI、DeepSeek、Gemini、硅基流动、月之暗面、Ollama、OneAPI、Dify 等。附带 WebUI。Python05
handy-ollama动手学Ollama,CPU玩转大模型部署,在线阅读地址:https://datawhalechina.github.io/handy-ollama/Jupyter Notebook07