首页
/ MNN 3.1.0 发布:移动端大模型应用与性能全面升级

MNN 3.1.0 发布:移动端大模型应用与性能全面升级

2025-06-06 04:28:04作者:齐添朝

项目简介

MNN 是阿里巴巴开源的一款轻量级、高性能的深度学习推理引擎,特别针对移动端和边缘计算设备进行了优化。作为一款跨平台的深度学习框架,MNN 支持 Android、iOS、Linux、macOS 和 Windows 等多个平台,能够高效运行各种深度学习模型,包括近年来兴起的大语言模型(LLM)和扩散模型(Diffusion Model)。

3.1.0 版本核心更新

移动端大模型应用落地

本次更新的最大亮点是正式推出了面向移动设备的大模型应用:

  1. Android 平台:新增了完整的 LLM/Diffusion 大模型应用,开发者可以直接集成到 Android 项目中,实现本地化的大模型推理能力。

  2. iOS 平台:同步推出了 iOS 版本的大模型应用,为苹果生态开发者提供了便捷的大模型集成方案。

这些应用的发布标志着 MNN 在大模型移动端部署领域迈出了重要一步,使开发者能够在资源受限的移动设备上高效运行复杂的大模型。

多模态大模型支持扩展

3.1.0 版本显著增强了对多模态大模型的支持:

  • 新增支持 Qwen2-VL、Qwen2-Audio 和 Qwen2.5-VL 等多模态模型的导出和运行
  • 支持 DeepSeek-R1-1.5B-Qwen 和 DeepSeek-R1-7B-Qwen 等模型

这些更新使 MNN 能够处理更丰富的输入模态,包括视觉、语音等多模态数据,为开发更智能的跨模态应用提供了基础。

性能优化与技术创新

LLM 推理性能提升

  1. CPU 多线程优化:进一步优化了 LLM 在 CPU 上的多线程性能,提升了整体推理速度。

  2. Prefill 阶段优化:针对 CPU 上的 prefill 阶段进行了专门优化,使 1024 token 输入和 512 token 输入的 prefill 性能达到相近水平。

  3. 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版本有显著性能提升。

内存与计算优化

  1. 内存管理改进

    • LLM-CPU 支持 mmap 文件缓存,二次加载模型时避免内存重排
    • OpenCL 降低非对齐情况下申请的内存大小
    • 重构 ConvTranspose3D 为 ConvTranspose2D,大幅减少内存占用
  2. 计算效率提升

    • 将 Convolution3D 转换为 Convolution2D,降低耗时和内存占用
    • 优化 Conv3D 的 im2col 实现,减少 region 数量
    • Vulkan Image 分支性能优化,在8Gen系列芯片上与OpenCL持平,中低端设备提升30%

开发者工具与功能增强

模型开发与调试

  1. LLM 单步执行支持:新增单步执行功能,便于开发者调试和优化模型推理过程。

  2. 采样算法扩展:丰富了采样算法的支持,提供更多推理策略选择。

  3. 概率输出功能:LLM 导出模型时支持输出历史 Token 的概率值,便于模型分析和调优。

跨平台支持改进

  1. Pymnn 无 numpy 依赖:现在可以在没有 numpy 的环境下安装 Pymnn,降低了部署门槛。

  2. 数字人 KV Cache 回溯:新增对 KV Cache 回溯的支持,提升数字人模型推理效率。

  3. OpenCL 大模型分块计算:支持大模型分块计算,避免渲染卡顿问题。

问题修复与稳定性提升

本次更新修复了多个关键问题,包括:

  1. 精度问题:修复了 Arm v8 架构下 Debug 和 Release 模式 layernorm 计算的微小误差。

  2. 功能异常

    • 修复 LLM Lora 分离加载模式的误差问题
    • 修正 NNAPI 中 Binary 不支持 relu fuse 的问题
    • 解决 Onnx Cast 算子输出 fp16 时报错问题
  3. 内存问题

    • 修复 GPU 模型串联运行时内存访问越界
    • 解决 ConvTranspose CPU 内存占用过大问题
  4. 工具问题:修复离线量化工具和 MNN CV 处理中的错误。

技术架构演进

  1. 内存共享方案升级:OpenCL 内存共享方案切换为 HardwareBuffer,提升内存管理效率。

  2. 计算图优化:持续优化计算图转换和算子融合策略,提升整体推理效率。

  3. 量化支持增强:完善8bit量化支持,修复相关导出问题。

总结

MNN 3.1.0 版本在移动端大模型应用落地、多模态支持、性能优化和开发者体验等方面都取得了显著进展。特别是移动端大模型应用的发布,为开发者提供了开箱即用的解决方案,大大降低了在移动设备上部署大模型的技术门槛。

在性能方面,通过对 CPU、GPU 各个后端的持续优化,MNN 在各种硬件平台上都能提供高效的推理能力。同时,新增的调试和分析功能也为开发者优化模型性能提供了更多工具支持。

随着人工智能应用向边缘设备迁移的趋势加速,MNN 作为一款轻量级、高性能的推理引擎,将持续为移动端和边缘计算场景提供强大的技术支持。3.1.0 版本的发布,标志着 MNN 在大模型时代的技术布局又向前迈进了一步。

登录后查看全文
热门项目推荐

热门内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
860
511
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
259
300
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
595
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K