在DeepSeek R1服务器不稳定令人困扰的背景下,MNN LLM应运而生。这是一款开源工具,支持本地部署、移动端运行以及多模态处理(如文生图、语音输入等)。通过模型量化与硬件优化,MNN LLM显著提升了推理速度与稳定性,同时解决了下载困难的问题。无论是Android、iOS还是桌面端用户,都可以轻松体验大模型的强大功能,真正实现“自己动手,丰衣足食”。
简介
你有没有因为 DeepSeek R1 的服务器不稳定而抓狂过?忙活半天就等到一句“服务器繁忙,请稍候重试”?如果你也深陷这个泥潭,不妨试试我们开源的 MNN LLM(https://github.com/alibaba/MNN/blob/master/project/android/apps/MnnLlmApp/README_CN.md,github 链接,欢迎 Star),并且它有以下特点:
本地部署:无需依赖远程服务器;
一台手机就能跑:愉快运行DeepSeek R1 Qwen 蒸馏 7B 模型;
多模态支持:文生图、语音输入全都可以。
关键是,再也不用担心服务器忙不过来了,真·自己动手丰衣足食!
先来看看效果吧:
▐ Android
点击文章底部链接下载安装包
▐ iOS
▐ 桌面端
▐ MNN LLM 有啥不一样
此前开源社区已经存在 pocketpal、maid 等开源产品,那么 MNN 做了哪些优化?
推理速度优化
针对移动端设备, 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
Android用户可以直接在 github(链接在文章底部)上下载,也可自行编译定制功能:
git clone https://github.com/alibaba/MNN.gitcd project/androidmkdir 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-DMNN_SUPPORT_TRANSFORMER_FUSE=ON"
拷贝 framework 到 iOS 项目中
3. 移动 framework
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)
mac 用户可以点击文章底部链接下载。下载完成后解压然后执行:
sudo xattr -rd com.apple.quarantine ./mlschmod +x ./mls
就可以执行。
其他用户可以按照下列文档编译。桌面端提供了命令行以及rest api
编译
make buildcd buildcmake ../ -DMNN_LOW_MEMORY=true -DMNN_CPU_WEIGHT_DEQUANT_GEMM=true -DMNN_BUILD_LLM=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true -DBUILD_MLS=truemake -j16
x86架构额外加 MNN_AVX512
的宏:
make buildcd buildcmake ../ -DMNN_LOW_MEMORY=true -DMNN_CPU_WEIGHT_DEQUANT_GEMM=true -DMNN_BUILD_LLM=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true -DBUILD_MLS=true -DMNN_AVX512=truemake -j16
Mac 推荐增加 MNN_METAL
的宏
make buildcd buildcmake ../ -DMNN_LOW_MEMORY=true -DMNN_CPU_WEIGHT_DEQUANT_GEMM=true -DMNN_BUILD_LLM=true -DMNN_SUPPORT_TRANSFORMER_FUSE=true -DMNN_METAL=ONmake -j16
编译完成后,可以看到 mls 产物,通过 mls 命令可以执行下载、benchmark 测试、启动rest服务等功能。
使用说明
mls list:列出本地已经下载模型
mls search 搜索 huggingface 上所有支持的模型
mls download 下载 huggingface 上的模型
国内用户如果下载有问题可以指定镜像:https://hf-mirror.com,或者使用 modelscope下载后运行。指定cofig 文件运行。
下载完成后,记得在 ~/.mnnmodels 文件夹下找到找到配置文件,设置 config.json 中的 backend 为合适的 backend, 例如 mac 上建议设置 backend 为 `metal`。
mls run 通过命令行执行聊天
modelscope 用户可以下载后指定 config 文件运行,例如./mls run -c /Users/songjinde/.cache/modelscope/hub/MNN/DeepSeek-R1-1.5B-Qwen-MNN/config.json
mls serve 启动本地服务器,支持兼容 openai api 的客户端的 api
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。
就可以通过 Chatbox 聊天了:
mls benchmark 支持简单的benchmark 数据(兼容 llama.cpp 指标)
模型支持列表
以下是我们目前支持的模型列表,注意:
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暂不支持) |
相关链接
Android下载链接:https://github.com/alibaba/MNN/blob/master/project/android/apps/MnnLlmApp/README.md#releases
Github下载地址:
https://github.com/alibaba/MNN/blob/master/project/android/apps/MnnLlmApp/README.md#releases
Github文档:https://github.com/alibaba/MNN
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
团队介绍
我们是大淘宝技术Meta Team,负责面向消费场景的3D/XR基础技术建设和创新应用探索,通过技术和应用创新找到以手机及XR 新设备为载体的消费购物3D/XR新体验。团队在端智能、商品三维重建、3D引擎、XR引擎等方面有深厚的技术积累。团队在OSDI、MLSys、CVPR、ICCV、NeurIPS、TPAMI等顶级学术会议和期刊上发表多篇论文。
¤ 拓展阅读 ¤