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 在大模型时代的技术布局又向前迈进了一步。
AutoGLM-Phone-9BAutoGLM-Phone-9B是基于AutoGLM构建的移动智能助手框架,依托多模态感知理解手机屏幕并执行自动化操作。Jinja00
Kimi-K2-ThinkingKimi K2 Thinking 是最新、性能最强的开源思维模型。从 Kimi K2 开始,我们将其打造为能够逐步推理并动态调用工具的思维智能体。通过显著提升多步推理深度,并在 200–300 次连续调用中保持稳定的工具使用能力,它在 Humanity's Last Exam (HLE)、BrowseComp 等基准测试中树立了新的技术标杆。同时,K2 Thinking 是原生 INT4 量化模型,具备 256k 上下文窗口,实现了推理延迟和 GPU 内存占用的无损降低。Python00
GLM-4.6V-FP8GLM-4.6V-FP8是GLM-V系列开源模型,支持128K上下文窗口,融合原生多模态函数调用能力,实现从视觉感知到执行的闭环。具备文档理解、图文生成、前端重构等功能,适用于云集群与本地部署,在同类参数规模中视觉理解性能领先。Jinja00
HunyuanOCRHunyuanOCR 是基于混元原生多模态架构打造的领先端到端 OCR 专家级视觉语言模型。它采用仅 10 亿参数的轻量化设计,在业界多项基准测试中取得了当前最佳性能。该模型不仅精通复杂多语言文档解析,还在文本检测与识别、开放域信息抽取、视频字幕提取及图片翻译等实际应用场景中表现卓越。00
GLM-ASR-Nano-2512GLM-ASR-Nano-2512 是一款稳健的开源语音识别模型,参数规模为 15 亿。该模型专为应对真实场景的复杂性而设计,在保持紧凑体量的同时,多项基准测试表现优于 OpenAI Whisper V3。Python00
GLM-TTSGLM-TTS 是一款基于大语言模型的高质量文本转语音(TTS)合成系统,支持零样本语音克隆和流式推理。该系统采用两阶段架构,结合了用于语音 token 生成的大语言模型(LLM)和用于波形合成的流匹配(Flow Matching)模型。 通过引入多奖励强化学习框架,GLM-TTS 显著提升了合成语音的表现力,相比传统 TTS 系统实现了更自然的情感控制。Python00
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00