01.概述

随着移动端算力、存储能力的提升,在端侧部署大模型已成为趋势。本地化运行可消除网络延迟实现毫秒响应,降低云端算力成本,同时避免数据上传保障隐私安全。MNN是阿里巴巴开源的一个高效轻量级深度学习框架,专注端侧AI部署优化,支持CNN/RNN/GAN/Transformer等主流模型架构,覆盖模型优化、异构计算(CPU/GPU/NPU)及动态输入处理,已在淘宝、钉钉等30+APP落地应用。

MNN-LLM是基于 MNN 引擎开发的大型语言模型运行时解决方案,旨在将 LLM 模型本地部署到所有平台(手机/PC/物联网)。

轻量化框架

  • 针对设备进行优化,无依赖性,可以轻松部署到移动设备和各种嵌入式设备。

  • iOS平台:arm v7+arm64平台静态库大小全选约12MB,链接后可执行文件大小增加约2M。

  • Android平台:核心so大小约为800KB(armv7a - c++_shared)。

  • 使用 MNN_BUILD_MINI 可以减少包大小约 25%,但模型输入大小有限制

  • 支持fp16/int8/int4量化,可缩小模型尺寸50%-70%

MNN 及大模型推理相关代码均已开源:

https://github.com/alibaba/MNN/

MNN推理端侧模型均已在魔搭社区开源:https://modelscope.cn/organization/MNN

02.MNN支持Qwen3系列模型

Qwen3 的发布在国内外引起很大的关注,社区中也有很多人有本地部署的需求,MNN Chat Android 第一时间做了适配,并且发布一天内又冲到了 Github Trending:

用户开启推理模式后,模型将进行更深入的推理再给出答案,若关闭则直接快速回答,满足不同使用场景。

Qwen3 no_think模式

https://live.csdn.net/v/478261

 

Qwen3-4B thinking模式

https://live.csdn.net/v/478260

 

更多自定义设置

采样设置

MNN Chat APP新增了Sampler的自定义设置功能,用户可自由决定输出是偏确定性还是更富创造性。

注,Qwen官方推荐的sample参数如下:

更多设置

除了采样设置外,新版本还加入了System Prompt和Max New Tokens等更多可自定义的设置项。比如Max New Tokens可以控制模型输出的长度,避免输出过短或过长的情况。

System Prompt则可以自定义模型的人设和回答风格,更好地满足个性化需求。

 

03.MNN支持Qwen2.5-Omni模型

Qwen2.5-Omni语音对话

https://live.csdn.net/v/478259

 

Qwen2.5-Omni视觉理解

https://live.csdn.net/v/478258

 

04.最佳实践

是不是已经迫不及待的想要自己尝试一下,那就让继续来看看如何使用吧!

Android

Android用户可以直接在 github上下载,也可自行编译定制功能:

git clone https://github.com/alibaba/MNN.git
cd project/android
mkdir build_64
../build_64.sh "-DMNN_LOW_MEMORY=true  -DMNN_BUILD_LLM=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true -DMNN_ARM82=true -DMNN_USE_LOGCAT=true -DMNN_OPENCL=true -DLLM_SUPPORT_VISION=true -DMNN_BUILD_OPENCV=true -DMNN_IMGCODECS=true -DLLM_SUPPORT_AUDIO=true -DMNN_BUILD_AUDIO=true -DMNN_BUILD_DIFFUSION=ON -DMNN_SEP_BUILD=ON"
find . -name "*.so" -exec cp {} ../apps/MnnLlmApp/app/src/main/jniLibs/arm64-v8a/  
cd ../apps/MnnLlmApp/
./gradlew installDebug

iOS

iOS 用户当前需要自行编译,后续 TestFlight 包审核后会在Github文档中更新:

1.下载仓库代码:

git clone https://github.com/alibaba/MNN.git

2.编译 MNN.framework:

cd MNN/
sh package_scripts/ios/buildiOS.sh "-DMNN_ARM82=true -DMNN_LOW_MEMORY=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true -DMNN_BUILD_LLM=true 
-DMNN_METAL=ON
-DMNN_BUILD_DIFFUSION=ON
-DMNN_BUILD_OPENCV=ON
-DMNN_IMGCODECS=ON
-DMNN_OPENCL=OFF
-DMNN_SEP_BUILD=OFF

3.拷贝 framework 到 iOS 项目中

mv MNN-iOS-CPU-GPU/Static/MNN.framework /apps/iOS/MNNLLMChat/MNN.framework

4.确保 Link Binary With Libraried 中包含 MNN.framework 和其他三个 Framework。

如果没有包含,可以手动添加:

5.修改 iOS 签名并编译项目

cd /apps/iOS/MNNLLMChatopen MNNLLMiOS.xcodeproj

在 Xcode 项目属性中 Signing & Capabilities > Team 输入自己的账号和Bundle Identifier

桌面端(Windows、Mac、Linux)

从魔搭下载模型,并源码编译进行模型推理,在Linux/Mac/Windows等设备上进行测试。

模型下载

#命令行工具下载
modelscope download --model 'MNN/Qwen2.5-Omni-3B-MNN' --local_dir 'path/to/dir'

环境安装

  • x86架构额外加 MNN_AVX512 的宏

  • Mac 推荐增加 MNN_METAL的宏

git clone https://github.com/alibaba/MNN.git

# 编译
cd MNN
mkdir build && cd build
cmake .. -DLLM_SUPPORT_VISION=ON -DMNN_BUILD_OPENCV=ON -DMNN_IMGCODECS=ON -DLLM_SUPPORT_AUDIO=ON -DMNN_BUILD_AUDIO=ON -DMNN_LOW_MEMORY=true -DMNN_CPU_WEIGHT_DEQUANT_GEMM=true -DMNN_BUILD_LLM=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true
make -j

编译完成后,可以看到 mls 产物,通过 mls 命令可以执行下载、benchmark 测试、启动rest服务等功能。

Qwen3模型推理

# 运行
./mnncli serve Qwen3-4B-MNN

会启动一个 REST 服务端。

接下来可以在 Chatbox 等客户端就可以配置使用 MNN 的服务。

 

Qwen2.5-Omni模型推理

./llm_demo /path/to/Qwen2.5-Omni-3B-MNN/config.json

多模态prompt示例:

<img>https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg</img>介绍一下这张图片
<audio>https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2-Audio/audio/translate_to_chinese.wav</audio>

 

点击链接, 即可跳转~

https://modelscope.cn/organization/MNN

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐