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 StartedRust050
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
ERNIE-ImageERNIE-Image 是由百度 ERNIE-Image 团队开发的开源文本到图像生成模型。它基于单流扩散 Transformer(DiT)构建,并配备了轻量级的提示增强器,可将用户的简短输入扩展为更丰富的结构化描述。凭借仅 80 亿的 DiT 参数,它在开源文本到图像模型中达到了最先进的性能。该模型的设计不仅追求强大的视觉质量,还注重实际生成场景中的可控性,在这些场景中,准确的内容呈现与美观同等重要。特别是,ERNIE-Image 在复杂指令遵循、文本渲染和结构化图像生成方面表现出色,使其非常适合商业海报、漫画、多格布局以及其他需要兼具视觉质量和精确控制的内容创作任务。它还支持广泛的视觉风格,包括写实摄影、设计导向图像以及更多风格化的美学输出。Jinja00