如何实现手机端离线对话,部署Qwen-1.8B轻量级端侧AI模型?
- 内容介绍
- 文章标签
- 相关推荐
本文共计829个文字,预计阅读时间需要4分钟。
若您希望在手机端运行Qwen-1.8B模型并实现无需联网的本地对话功能,需解决模型体积过大、内存占用高及ARM+CPU推理效率低等问题。以下是一些可行的端侧部署路径:
一、使用MLC-LLM框架编译并打包Android APK
MLC-LLM通过机器学习编译技术将模型图与算子深度融合,生成高度优化的原生Android可执行代码,支持INT4量化与上下文动态管理,适用于中低端ARM设备。
1、克隆MLC-LLM仓库并在Linux/macOS主机上完成基础环境配置,确保安装Python 3.9+、Android NDK r23b及以上版本。
2、设置环境变量:MODEL_NAME=Qwen1.5-1.8B-Chat,QUANTIZATION=q4f16_1。
3、执行权重转换命令:mlc_llm convert_weight /share_model_zoo/LLM/Qwen/$MODEL_NAME/ --quantization $QUANTIZATION -o dist/$MODEL_NAME-$QUANTIZATION-MLC/。
4、生成适配Android的配置文件:mlc_llm gen_config /share_model_zoo/LLM/Qwen/$MODEL_NAME/ --quantization $QUANTIZATION --model-type qwen2 --conv-template chatml --context-window-size 4096 -o dist/${MODEL_NAME}-${QUANTIZATION}-MLC/。
5、调用build_apk.py脚本构建APK:python3 mlc_llm/build_apk.py --model dist/Qwen1.5-1.8B-Chat-q4f16_1-MLC/ --app-name QwenMobile --package-id ai.mlc.qwen。
6、将生成的app-release.apk安装至Android 10+设备,启用“允许安装未知来源应用”权限。
二、采用MNN-LLM框架在ARM Linux环境直接部署
MNN-LLM专为移动端CPU推理设计,不依赖GPU,通过静态图优化与内存复用策略显著降低RAM峰值占用,适合已Root或刷入LineageOS等定制系统的安卓设备(通过Termux或原生Linux chroot运行)。
1、在设备端或交叉编译环境中构建MNN-LLM:启用ARMV8、NEON及OpenMP支持,禁用CUDA与Vulkan后端。
2、下载Qwen1.5-1.8B-Chat原始HF格式模型,使用MNN-LLM提供的convert_tool转换为.mnn模型文件。
3、执行量化操作:./convert_tool --model_path ./Qwen1.5-1.8B-Chat --output_path ./qwen_1.8b_q4.mnn --quantize_method weight_quantize --bit_width 4。
4、将qwen_1.8b_q4.mnn与tokenizer.model一同拷贝至设备/data/local/tmp/目录。
5、运行推理示例:./llm_inference --model_file ./qwen_1.8b_q4.mnn --tokenizer ./tokenizer.model --prompt "你好,请介绍一下你自己"。
三、基于Docker容器化WebUI方案(需启用Android Termux+Proot-Distro)
该路径绕过原生APK开发流程,利用轻量级Linux发行版在Android上模拟x86_64兼容环境,以Web界面提供交互入口,适合开发者快速验证模型行为,不依赖Google Play服务。
1、在Termux中安装proot-distro并部署Ubuntu 22.04镜像。
2、进入Ubuntu环境后更新系统,安装Python 3.10、pip及git。
3、克隆Qwen WebUI项目:git clone https://github.com/QwenLM/Qwen/tree/main/examples/webui。
4、下载GPTQ-Int4量化模型至~/qwen-1.8b-chat/model/目录,并确认quantize_config.json存在且字段完整。
5、创建虚拟环境并安装依赖:pip install -r requirements.txt --no-cache-dir。
6、启动Web服务:python app.py --model-path ~/qwen-1.8b-chat/model --load-in-4bit。
7、在Android浏览器中访问http://127.0.0.1:7860,即可进行离线对话。
四、使用GPTQ-Int4量化模型配合llama.cpp-android移植版
llama.cpp-android是社区维护的ARM64优化分支,支持GGUF格式,具备极低内存开销与稳定token生成速率,Qwen1.5-1.8B-Chat经GPTQ转为GGUF后可直接加载。
1、从HuggingFace或ModelScope下载Qwen1.5-1.8B-Chat-GPTQ-Int4模型包。
2、使用convert-hf-to-gguf.py脚本将其转换为Q4_K_M精度的GGUF文件。
3、将生成的qwen1.5-1.8b-chat.Q4_K_M.gguf复制到Android设备的/storage/emulated/0/llama/models/目录。
4、启动llama.cpp-android应用,选择该GGUF模型,设置n_ctx=2048、n_threads=4、use_mlock=false。
5、在聊天界面输入问题,模型将在本地完成全部推理,响应延迟通常低于800ms/token。
本文共计829个文字,预计阅读时间需要4分钟。
若您希望在手机端运行Qwen-1.8B模型并实现无需联网的本地对话功能,需解决模型体积过大、内存占用高及ARM+CPU推理效率低等问题。以下是一些可行的端侧部署路径:
一、使用MLC-LLM框架编译并打包Android APK
MLC-LLM通过机器学习编译技术将模型图与算子深度融合,生成高度优化的原生Android可执行代码,支持INT4量化与上下文动态管理,适用于中低端ARM设备。
1、克隆MLC-LLM仓库并在Linux/macOS主机上完成基础环境配置,确保安装Python 3.9+、Android NDK r23b及以上版本。
2、设置环境变量:MODEL_NAME=Qwen1.5-1.8B-Chat,QUANTIZATION=q4f16_1。
3、执行权重转换命令:mlc_llm convert_weight /share_model_zoo/LLM/Qwen/$MODEL_NAME/ --quantization $QUANTIZATION -o dist/$MODEL_NAME-$QUANTIZATION-MLC/。
4、生成适配Android的配置文件:mlc_llm gen_config /share_model_zoo/LLM/Qwen/$MODEL_NAME/ --quantization $QUANTIZATION --model-type qwen2 --conv-template chatml --context-window-size 4096 -o dist/${MODEL_NAME}-${QUANTIZATION}-MLC/。
5、调用build_apk.py脚本构建APK:python3 mlc_llm/build_apk.py --model dist/Qwen1.5-1.8B-Chat-q4f16_1-MLC/ --app-name QwenMobile --package-id ai.mlc.qwen。
6、将生成的app-release.apk安装至Android 10+设备,启用“允许安装未知来源应用”权限。
二、采用MNN-LLM框架在ARM Linux环境直接部署
MNN-LLM专为移动端CPU推理设计,不依赖GPU,通过静态图优化与内存复用策略显著降低RAM峰值占用,适合已Root或刷入LineageOS等定制系统的安卓设备(通过Termux或原生Linux chroot运行)。
1、在设备端或交叉编译环境中构建MNN-LLM:启用ARMV8、NEON及OpenMP支持,禁用CUDA与Vulkan后端。
2、下载Qwen1.5-1.8B-Chat原始HF格式模型,使用MNN-LLM提供的convert_tool转换为.mnn模型文件。
3、执行量化操作:./convert_tool --model_path ./Qwen1.5-1.8B-Chat --output_path ./qwen_1.8b_q4.mnn --quantize_method weight_quantize --bit_width 4。
4、将qwen_1.8b_q4.mnn与tokenizer.model一同拷贝至设备/data/local/tmp/目录。
5、运行推理示例:./llm_inference --model_file ./qwen_1.8b_q4.mnn --tokenizer ./tokenizer.model --prompt "你好,请介绍一下你自己"。
三、基于Docker容器化WebUI方案(需启用Android Termux+Proot-Distro)
该路径绕过原生APK开发流程,利用轻量级Linux发行版在Android上模拟x86_64兼容环境,以Web界面提供交互入口,适合开发者快速验证模型行为,不依赖Google Play服务。
1、在Termux中安装proot-distro并部署Ubuntu 22.04镜像。
2、进入Ubuntu环境后更新系统,安装Python 3.10、pip及git。
3、克隆Qwen WebUI项目:git clone https://github.com/QwenLM/Qwen/tree/main/examples/webui。
4、下载GPTQ-Int4量化模型至~/qwen-1.8b-chat/model/目录,并确认quantize_config.json存在且字段完整。
5、创建虚拟环境并安装依赖:pip install -r requirements.txt --no-cache-dir。
6、启动Web服务:python app.py --model-path ~/qwen-1.8b-chat/model --load-in-4bit。
7、在Android浏览器中访问http://127.0.0.1:7860,即可进行离线对话。
四、使用GPTQ-Int4量化模型配合llama.cpp-android移植版
llama.cpp-android是社区维护的ARM64优化分支,支持GGUF格式,具备极低内存开销与稳定token生成速率,Qwen1.5-1.8B-Chat经GPTQ转为GGUF后可直接加载。
1、从HuggingFace或ModelScope下载Qwen1.5-1.8B-Chat-GPTQ-Int4模型包。
2、使用convert-hf-to-gguf.py脚本将其转换为Q4_K_M精度的GGUF文件。
3、将生成的qwen1.5-1.8b-chat.Q4_K_M.gguf复制到Android设备的/storage/emulated/0/llama/models/目录。
4、启动llama.cpp-android应用,选择该GGUF模型,设置n_ctx=2048、n_threads=4、use_mlock=false。
5、在聊天界面输入问题,模型将在本地完成全部推理,响应延迟通常低于800ms/token。

