你有没有因为 DeepSeek R1 的服务器不稳定而抓狂过?忙活半天就等到一句“服务器繁忙,请稍候重试”?如果你也深陷这个泥潭,不妨试试我们开源的 MNN LLM(https://github.com/alibaba/MNN/blob/master/project/android/apps/MnnLlmApp/README_CN.md,github 链接,欢迎 Star),并且它有以下特点:
本地部署:无需依赖远程服务器;
一台手机就能跑:愉快运行DeepSeek R1 Qwen 蒸馏 7B 模型;
多模态支持:文生图、语音输入全都可以。
关键是,再也不用担心服务器忙不过来了,真·自己动手丰衣足食!
推理速度优化
针对移动端设备, MNN 通过模型量化、混合存储和硬件特定优化等创新措施,解决高内存消耗和计算成本等挑战。MNN CPU Decode 有20-50%优势,尤其是在 Prefill 阶段快于其他方案1倍以上;GPU 性能在小模型上快于其他方案30%以上,较大模型上与MLC-LLM持平。但相比MLC-LLM,MNN-LLM的GPU输出更稳定(不容易crash)。
超给力的多模态
不只聊文字,还能图片输入、语音输入、文生图……
大家都知道 Diffusion 模型在手机上跑起来可很吃力,MNN 把这方面也优化了,端上生成更快、更省内存,比 OnnxRuntime 方案速度快三倍!
下载超省心
国内用户通过 pocketpal等基于huggingface下载的客户端, 经常无法访问,即使偶尔可以连接上,可能下载半天发现下载失败了,就需要删掉重新下载:
MNN LLM App 针对网络问题优化了:
Modelscope 下载的支持,速度飞起,不再苦等 Hugging Face 半天失败。
自带断点续传功能,下载失败了也能断点续上,不用重头再来。
Android & iOS 还有桌面版,怎么用起来
是不是已经迫不及待的想要自己尝试一下,那就让继续来看看如何使用吧:
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 用户当前需要自行编译,后续 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
-DMNN_SUPPORT_TRANSFORMER_FUSE=ON"
mv MNN-iOS-CPU-GPU/Static/MNN.framework /apps/iOS/MNNLLMChat/MNN.framework
cd /apps/iOS/MNNLLMChat
open MNNLLMiOS.xcodeproj
sudo xattr -rd com.apple.quarantine ./mls
chmod +x ./mls
就可以执行。
其他用户可以按照下列文档编译。桌面端提供了命令行以及rest api
make build
cd build
cmake ../ -DMNN_LOW_MEMORY=true -DMNN_CPU_WEIGHT_DEQUANT_GEMM=true -DMNN_BUILD_LLM=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true -DBUILD_MLS=true
make -j16
MNN_AVX512
的宏:make build
cd build
cmake ../ -DMNN_LOW_MEMORY=true -DMNN_CPU_WEIGHT_DEQUANT_GEMM=true -DMNN_BUILD_LLM=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true -DBUILD_MLS=true -DMNN_AVX512=true
make -j16
MNN_METAL
的宏make build
cd build
cmake ../ -DMNN_LOW_MEMORY=true -DMNN_CPU_WEIGHT_DEQUANT_GEMM=true -DMNN_BUILD_LLM=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true -DMNN_METAL=ON
make -j16
编译完成后,可以看到 mls 产物,通过 mls 命令可以执行下载、benchmark 测试、启动rest服务等功能。
国内用户如果下载有问题可以指定镜像:https://hf-mirror.com,或者使用 modelscope下载后运行。指定cofig 文件运行。
下载完成后,记得在 ~/.mnnmodels 文件夹下找到找到配置文件,设置 config.json 中的 backend 为合适的 backend, 例如 mac 上建议设置 backend 为 `metal`。
modelscope 用户可以下载后指定 config 文件运行,例如./mls run -c /Users/songjinde/.cache/modelscope/hub/MNN/DeepSeek-R1-1.5B-Qwen-MNN/config.json
modelscope 用户可以下载后指定 config 文件运行,例如./mls serve -c /Users/songjinde/.cache/modelscope/hub/MNN/DeepSeek-R1-1.5B-Qwen-MNN/config.json
如果喜欢 三方客户端,例如 Chatbox 、LobeChat 等,也可以按照三方客户端配置教程配置。以Chatbox 为例,新建模型配置,填写服务器地址,并且设置 API PATH 为/chat/completions。
模型支持列表
以下是我们目前支持的模型列表,注意:
Android:由于大模型对算力要求比较大,Android 设备建议8GB 内存, 7B 以上模型建议 8gen1 以后机型使用。
iOS:针对 iPhone 的模型建议是:8GB 内存可使用 8B 以下模型,6GB 内存建议选择 3B 以下模型,而4GB 内存则推荐使用 1B 或更小模型。
模型名 |
DeepSeek-R1-7B-Qwen-MNN |
DeepSeek-R1-1.5B-Qwen-MNN |
Qwen2.5-0.5B-Instruct-MNN |
Qwen2.5-7B-Instruct-MNN |
gemma-2-2b-it-MNN |
Qwen2.5-3B-Instruct-MNN |
Qwen2.5-1.5B-Instruct-MNN |
deepseek-llm-7b-chat-MNN |
Qwen-VL-Chat-MNN |
Qwen-7B-Chat-MNN |
Baichuan2-7B-Chat-MNN |
internlm-chat-7b-MNN |
glm-4-9b-chat-MNN (iOS目前不支持) |
Yi-6B-Chat-MNN |
chatglm3-6b-MNN |
TinyLlama-1.1B-Chat-MNN |
Llama-2-7b-chat-ms-MNN |
TinyLlama-1.1B-Chat-v1.0-MNN |
Qwen2-Audio-7B-Instruct-MNN |
Qwen1-1_8B-Chat-MNN |
Qwen2-VL-7B-Instruct-MNN |
Qwen2-VL-2B-Instruct-MNN |
Meta-Llama-3.1-8B-Instruct-MNN |
Llama-3.2-3B-Instruct-MNN |
MobileLLM-125M-MNN |
Qwen2.5-Coder-7B-Instruct-MNN |
SmolLM2-135M-Instruct-MNN |
Meta-Llama-3-8B-Instruct-MNN |
Qwen2.5-Math-7B-Instruct-MNN |
SmolLM2-360M-Instruct-MNN |
phi-2-MNN |
MobileLLM-1B-MNN |
SmolLM2-1.7B-Instruct-MNN |
Llama-3.2-1B-Instruct-MNN |
Qwen2.5-Coder-1.5B-Instruct-MNN |
Qwen2-0.5B-Instruct-MNN |
reader-lm-1.5b-MNN |
Qwen2.5-Math-1.5B-Instruct-MNN |
reader-lm-0.5b-MNN |
MobileLLM-600M-MNN |
Qwen2-1.5B-Instruct-MNN |
Qwen2-7B-Instruct-MNN |
MobileLLM-350M-MNN |
stable-diffusion-v1-5-mnn-opencl (iOS暂不支持) |
相关链接
MAC桌面端下载链接:https://meta.alicdn.com/data/mnn/mls.zip
MNN在端侧大模型部署上的探索:https://mp.weixin.qq.com/s/rgN_sry7prwfXvJaz6ruLg
MNN github:https://github.com/alibaba/mnn
MNN Llm APP:https://github.com/alibaba/MNN/blob/master/project/android/apps/MnnLlmApp/README.md
MNN LLM 文档:https://mnn-
docs.readthedocs.io/en/latest/transformers/llm.html