在 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

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐