微信扫码
添加专属顾问
我要投稿
在手机上离线运行大语言模型?阿里开源MNN+Qwen组合带你轻松实现端侧AI部署!核心内容: 1. MNN与Qwen工具链详解:高性能推理引擎+轻量化大模型的完美组合 2. 三步快速体验:从APP安装到模型下载的完整流程 3. 进阶开发指南:从源码编译到命令行测试的全链路实战教学
上一期,我们把 Qwen3 装进了树莓派,用一块 OLED 屏和一个九键键盘,打造出了一台真正离线对话的“电子鹦鹉”。
本期,主战场转向你最熟悉的设备——手机。我们将通过 MNN + Qwen,手把手完成端侧大模型的部署、运行与调优。
本教程完全遵从你的开发习惯:先上手体验,再深入源码,最后进阶调优。无论你是想快速验证创意,还是希望深度定制自己的端侧 AI 应用,这里都提供一条清晰、可复现的全链路路径。
基础篇
认识我们的工具箱
在开始之前,让我们先快速了解一下本次实战的几位“主角”。
MNN:阿里巴巴开源的端侧推理引擎,具备高性能、轻量级、高通用性的特点。
GitHub➡️https://github.com/alibaba/MNN
MNN-LLM:MNN中专为大语言模型设计的模块,提供了从模型转换、量化到推理部署的全链路工具。
源码路径⬇️
https://github.com/alibaba/MNN/tree/master/transformers
Qwen模型:本次挑战赛的核心模型,我们将主要使用其小尺寸版本,如Qwen3-0.6B、1.7B等。
Qwen模型仓库⬇️
https://modelscope.cn/organization/Qwen
MNN 模型仓库:MNN 官方已经为大家转换和量化好了多款 Qwen 模型,可直接下载使用。
MNN模型仓库⬇️
https://modelscope.cn/organization/MNN
快速体验篇
安装 MNN Chat,一键玩转端侧大模型
在深入研究代码之前,最直观的方式是先体验一下最终成品的效果。我们强烈建议您先下载官方已经打包好的 MNN Chat APP 。
MNN Chat 是一个功能强大的示例应用,它集成了MNN-LLM的核心能力,支持文本、语音、图像等多种模态的交互。
如何安装
Android 用户
前往 MNN Github 的 Releases页面下载最新的APK安装包。
(可选)在Google Play商店搜索“MNN Chat”。
iOS用户
在 App Store(美区)搜索“MNN Chat”。
(可选)从 Github 下载源码,使用Xcode编译安装。
如何使用
1、进入模型市场:打开 APP,在“模型市场”中,你可以看到MNN官方支持的各类模型。
2、下载Qwen模型:找到你感兴趣的 Qwen 模型(如 Qwen3-0.6B-MNN),点击下载。
3、开始对话:下载完成后,进入对话界面,即可开始与本地运行的 Qwen 模型进行交互!你甚至可以尝试图片问答等多模态功能。
实战篇
从零构建与测试
体验完 App 后,您一定想知道如何从源代码开始,构建一个属于自己的端侧大模型应用。下面,我们将完整走一遍从源码编译到命令行测试的全流程。
🟣 源码下载与编译
首先,我们需要编译 MNN 引擎本身,获取模型转换和推理所需的工具。(建议在 macOS, Linux 或 WSL 环境下操作, Windows 环境准备参考:https://mnn-docs.readthedocs.io/en/latest/compile/engine.html#windows-visual-studio)
# 1. 下载MNN源码git clone https://github.com/alibaba/MNN.gitcd MNN# 2. 创建编译目录并编译mkdir build && cd buildcmake -DMNN_BUILD_LLM=ON -DMNN_BUILD_LLM_OMNI=ON -DMNN_BUILD_CONVERTER=ON ..make -j8
💡核心:-DMNN_BUILD_LLM=ON 等参数是关键,它会确保编译出LLM所需的所有组件。
🟣 模型下载与转换
接下来,我们使用 MNN-LLM 提供的脚本,将官方的 Qwen 模型转换为 MNN 格式。
# 1. 进入MNN-LLM的export目录cd MNN/transformers/llm/export# 2. 安装python依赖pip install -r requirements.txt# 3. 从ModelScope下载模型 (以Qwen3-0.6B为例)modelscope download Qwen/Qwen3-0.6B --local_dir Qwen3-0.6B# 4. 执行转换脚本python llmexport.py --path Qwen3-0.6B --dst_path Qwen3-0.6B-MNN --export mnn -hqq
💡 核心:--export mnn 代表导出为 MNN 格式,-hqq 是推荐开启的量化选项,可以有效提升模型精度。
# 1. 回到编译目录cd MNN/build# 2. 准备一个prompt文件echo "你好,请问你是谁?</no_think>" > prompt.txt# 3. 运行命令行demo./llm_demo../transformers/llm/export/Qwen3-0.6B-MNN/config.json prompt.txt
移动端部署篇
编译Android & iOS APP
命令行测试成功,只是万里长征的第一步。接下来,我们将深入介绍如何将这一切能力完整地移植到手机 APP 上。这一步将分为 Android 和 iOS 两部分,请根据您的目标平台进行操作。
部署到 Android
🟣 第1步:编译 MNN Android 核心库
首先,我们需要为 Android 平台编译出MNN引擎的动态库(.so文件)。这个库是 APP 运行的核心。
# 1. 进入MNN的Android工程目录cd MNN/project/android# 2. 创建编译目录mkdir build_64 && cd build_64# 3. 执行编译脚本 (包含了LLM、VISION、OPENCL等关键模块)../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=OFF -DCMAKE_SHARED_LINKER_FLAGS='-Wl,-z,max-page-size=16384' -DCMAKE_INSTALL_PREFIX=."# 4. 安装编译产物make install
🟣 第2步:编译并安装 MNN Chat APP
核心库准备好后,我们就可以编译作为示例的 MNN Chat 应用了。
# 1. 进入MNN Chat的Android工程目录cd MNN/apps/Android/MnnLlmChat# 2. 执行安装脚本./installDebug.sh
💡 前提:请确保您的电脑已正确配置 Android 开发环境(SDK/NDK),并且手机已通过 USB 连接并开启开发者模式,adb devices 命令可以正常发现您的设备。该脚本会自动编译并安装APP到您的手机。
🟣 第3步:推送模型到手机
刚安装好的 APP 是一个“空壳”,我们需要把之前转换好的模型文件推送到手机的特定目录中,APP 就可以运行我们推送的模型。
# 1. 进入存放转换后模型的目录cd MNN/transformers/llm/export# 2. 在手机上创建模型文件夹adb shell mkdir -p /data/local/tmp/mnn_models# 3. 将模型文件夹推送到手机adb push Qwen3-0.6B-MNN /data/local/tmp/mnn_models/
现在,打开您手机上的 MNN Chat,它应该就能在“我的模型”中找到您刚刚推送的 Qwen 模型了!
部署到 iOS
🟣第1步:编译MNN iOS核心库 (Framework)
与 Android 类似,我们首先需要为 iOS 平台编译出 MNN 的 .framework 静态库。
# 1. 回到MNN根目录cd MNN# 2. 执行iOS编译脚本 (同样包含一系列编译参数)sh package_scripts/ios/buildiOS.sh "-DMNN_BUILD_LLM=ON -DMNN_METAL=ON ..."# 3. 将编译产物移动到Xcode工程目录中mv MNN-iOS-CPU-GPU/Static/MNN.framework apps/iOS/MNNLLMChat
💡 提示:编译 iOS 库通常需要在 macOS 环境下进行。
# 1. 进入MNNLLMChat的iOS工程目录cd MNN/apps/iOS/MNNLLMChat# 2. 使用Xcode打开工程文件open MNNLLMiOS.xcodeproj
💡 操作:在 Xcode 中,选择您的真机设备作为目标,然后点击“▶️”(Run)按钮即可完成编译和安装。
💡 提示:在Signing & Capabilities 界面中,Team栏选择你的账号;修改一个可用的Bundle Identifier。
💡 注意:如果你的账号不是苹果开发者账号,请删除该界面下面的 Extended Virtual Addressing 和 Increased Memory Limit 两个权限,否则无法编译。
完成以上步骤后,再次运行 APP,它就能在内置的资源目录中找到并加载 Qwen 模型了。
进阶篇
精度与性能调优秘籍
--lm_quant_bit 4: 对 lm_head 使用更低的位数,进一步降低权重大小。
模型导出后,可以通过修改 config.json 文件来控制运行时的行为:
backend_type:指定后端,cpu 或 opencl/metal(GPU)。
thread_num:调整线程数,通常设置为大核数量。
precision:精度模式,low 模式(如fp16)速度更快。
use_mmap:在手机上建议设为 true,内存不足时可避免闪退。
sampler_type 等采样参数:调整可以改变模型生成文本的“性格”,如创造性、随机性等。
从快速体验 APP,到亲手编译运行,再到进阶性能调优,相信通过这篇教程,你已经掌握了使用 MNN 部署 Qwen 大模型的全链路技术。端侧 AI 的想象空间是巨大的,真正的挑战在于如何将这些强大的技术与创新的应用场景相结合。
希望这篇教程能成为你通往成功的垫脚石。期待在“端侧AI创新挑战赛”中看到你的精彩作品!
💬 今日福利
提交创意报名表,分享你的参赛项目,越详细越好(如:模型选择、项目介绍、架构图......)我们将会从中抽取10位用户送出通义定制帆布袋,获奖名单将会在挑战赛群揭晓~
活动截止时间:2025年11月8日23:59
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-11-29
一切皆可对话:AnythingLLM,打造您的专属私有化智能知识助手
2025-11-28
DeepSeek R2憋大招:4个线索指向在线强化学习
2025-11-28
智能体工具调度的新突破:8B小模型击败GPT-5
2025-11-28
刚刚,deepseek低调开源,金牌级模型!
2025-11-28
GPT-5危了!DeepSeek开源世界首个奥数金牌AI,正面硬刚谷歌
2025-11-26
7800美元!微博Vibethinker-1.5B数学能力超越R1-671B
2025-11-25
混元OCR模型宣布开源,参数仅1B,多项核心能力SOTA
2025-11-25
5分钟部署AstrBot+NapCat:用Docker把 DeepSeekAI接入你的QQ
2025-09-07
2025-09-06
2025-10-20
2025-09-08
2025-10-27
2025-11-19
2025-10-27
2025-10-03
2025-09-17
2025-09-29
2025-11-12
2025-11-10
2025-11-03
2025-10-29
2025-10-28
2025-10-13
2025-09-29
2025-09-17