在Phi-3大模型发布之际,我们基于Termux应用,在我的小米手机部署了Phi-3模型:
Termux应用是一个终端模拟器,它允许我们安装 Linux 操作系统,然后在 Linux 操作系统中安装 Ollama,最后基于 Ollama 下载和推理大模型,虽然方法可行,但是存在一些局限:
- 操作步骤繁琐,用户体验较差:安装 Linux 操作系统、启动系统、安装和启动 Ollama 等操作,都需要通过命令行完成,体验较差。
- 资源消耗较大:手机内存有限,Termux 应用、Linux 操作系统、Ollama 框架等都需要消耗资源,推理速度较慢,资源吃紧
DeepSeek R1 很火爆,导致在使用 DeepSeek R1 时,老牛同学经常会遇到“服务器繁忙,请稍后重试。”的问题:

今天老牛同学推荐一款更加先进的应用:MNN Chat,它是由阿里巴巴开源的全功能多模态模型应用。
- 仅需一台手机即可运行: 完全在设备本地运行,确保数据隐私,无需将信息上传至外部服务器。
- CPU 推理优化: 在安卓平台上,MNN-LLM 展现了卓越的 CPU 性能,预填充速度相较于 llama.cpp 提高了 8.6 倍,相较于 fastllm 提升了 20.5 倍,解码速度分别快了 2.3 倍和 8.9 倍。
- 多模态支持: 提供多种任务功能,包括文本生成文本、图像生成文本、音频转文本及文本生成图像。
- 广泛的模型兼容性: 支持多种领先的模型提供商,包括 Qwen、Gemma、Llama(涵盖 TinyLlama 与 MobileLLM)、Baichuan、Yi、DeepSeek、InternLM、Phi、ReaderLM 和 Smolm 等。
官网地址:https://www.mnn.zone
GitHub 源码地址:https://github.com/alibaba/MNN
接下来,我们在手机上部署试用一下,老牛同学的手机配置如下:

1.安装 MNN 应用
对于 Android 手机,我们可以直接下载和安装最新版本:下载地址

或者,我们也可以按照以下步骤,自己编译 Android 和 iOS 应用:
Android 编译和使用
- 克隆 MNN 源代码:
git clone https://github.com/alibaba/MNN.git
cdproject/androidmkdirbuild_64../build_64.sh"-DMNN_LOW_MEMORY=true-DMNN_CPU_WEIGHT_DEQUANT_GEMM=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"
mkdir-p../../../apps/Android/MnnLlmChat/app/src/main/jniLibs/arm64-v8afind.-name"*.so"-execcp{}../../../apps/Android/MnnLlmChat/app/src/main/jniLibs/arm64-v8a\;cd../../../apps/Android/MnnLlmChat./gradlewinstallDebug
iOS 应用编译和使用
- 克隆 MNN 源代码:
git clone https://github.com/alibaba/MNN.git
cdMNN/shpackage_scripts/ios/buildiOS.sh"-DMNN_ARM82=true-DMNN_LOW_MEMORY=true-DMNN_SUPPORT_TRANSFORMER_FUSE=true-DMNN_BUILD_LLM=true-DMNN_CPU_WEIGHT_DEQUANT_GEMM=true-DMNN_METAL=ON-DMNN_BUILD_DIFFUSION=ON-DMNN_BUILD_OPENCV=ON-DMNN_IMGCODECS=ON-DMNN_OPENCL=OFF-DMNN_SEP_BUILD=OFF-DMNN_SUPPORT_TRANSFORMER_FUSE=ON"
mvMNN-iOS-CPU-GPU/Static/MNN.framework/apps/iOS/MNNLLMChat/MNN.framework
确保 Link Binary With Libraried 中包含 MNN.framework,和其他三个 Framework:

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

cd/apps/iOS/MNNLLMChatopenMNNLLMiOS.xcodeproj
在 Xcode 项目属性中 Signing & Capabilities > Team 输入自己的账号和 Bundle Identifier:

等待 Swift Package 下载完成之后,进行编译使用。
2.下载模型文件
手机上安装好MNN Chat应用之后,我们打开应用,就可以看到它所兼容的模型列表,包括文本、音频、图像等:

点击即可下载,老牛同学想体验一下文本和图片识别,下载了DeepSeek-R1-7B-Qwen-MNN和Qwen2-VL-2B-Instruct-MNN这 2 个大模型,等待下载完成。
3. MNN 模型推理
先试用一下DeepSeek-R1-7B-Qwen-MNN文本模型,输入提示词:
同样是一年,为什么阳历固定12个月,而阴历却有闰月?

DeepSeek R1 开始思考,分析阳历和阴历的计算方法,最终得出结论:

从手机的推理速率来看,总体还算不错,比通过Termux应用的方式推理效率高多了。
接下来,看看Qwen2-VL-2B-Instruct-MNN图片多模态大模型,老牛同学让它进行车牌识别:

可以看到,识别的结果是很不错的!