ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

让大模型离线跑在手机上:Android 本地大模型 llama.cpp 部署完整指南

让大模型离线跑在手机上:Android 本地大模型 llama.cpp 部署完整指南 让大模型离线跑在手机上Android 本地大模型 llama.cpp 部署完整指南【免费下载链接】llama.cppLLM inference in C/C项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp把大模型搬进手机、全程不联网这就是 Android 本地大模型部署要解决的事。llama.cpp 是一套 C/C 写的推理引擎专门跑 GGUF 格式量化打包后的大模型文件的模型。下面给两条落地路线一条在手机的 Termux 里直接编译另一条在电脑上用 NDK 交叉编译再推到手机。先对照体检再挑路线跟着做就行。 ① 先体检你的手机够不够格动手前先把这张自查清单过一遍三项都打勾再往下走系统版本Android 7.0API 24及以上设置-关于手机里能查到运行内存至少 4GB8GB 起步体验才顺存储空间至少 2GB 空闲装编译产物和模型文件一句话结论三条全中放心开干内存不到 4GB 的机型不建议硬上跑起来会非常吃力。️ ② 先选路Termux 编译与 NDK 交叉编译怎么选两条路线的差别说白了就是编译这件事在哪台机器上干。Termux 路线把手机当电脑全程不离开手机但手机 CPU 弱第一次编译要等很久NDK 路线借电脑的力气编好手机只负责运行代价是你得先搭好电脑端环境。先对号入座再读对应章节。路线适合谁慢在哪Termux 设备内编译有终端基础、想全程用手机解决的人手机 CPU 编译慢首次构建可能要几十分钟NDK 电脑交叉编译电脑在手、不想折腾手机的人环境搭建有门槛装 NDK、配 ADB 要花点时间③ 路线ATermux 设备上直接编译 llama.cpp1. 装好 Termux 环境Termux 是手机上的终端模拟器相当于给 Android 装了一条命令行。建议从 F-Droid 渠道安装装完打开它看到的就是一个 Linux 风格的 shell。2. 安装 git、cmake、clang 依赖先更新包管理器和已有软件再装上抓代码、编译需要的三件套apt update apt upgrade -y apt install git cmake clang3. 克隆 llama.cpp 代码把仓库拉到手机存储里再进到项目目录git clone https://gitcode.com/GitHub_Trending/ll/llama.cpp cd llama.cpp4. 编译出可执行文件cmake 负责生成构建配置make 真正干活-j4 表示开 4 个并行任务。这一步是整个流程最慢的环节手机别锁屏放着让它跑完mkdir build cd build cmake .. make -j45. 下载 GGUF 模型把 {model-url} 换成任意 GGUF 模型的下载链接。这是全流程唯一真正吃网速的一步模型一般几百 MB 起步curl -L {model-url} -o ~/model.gguf6. 第一次跑起来编译产物在 build/bin 里直接喂模型文件给它。看到回答逐字蹦出来就成功了cd ~/llama.cpp/build/bin ./llama-cli -m ~/model.gguf -c 2048 -p 你好世界提示-c 是上下文长度模型记住多少字2048 对手机够用细节看第⑤节。④ 路线B电脑 NDK 交叉编译再推送到手机1. 安装 NDK 并配置环境变量电脑上先装 Android Studio在 SDK Manager 里把 NDKSide by side勾上装好。NDK 就是给手机编译代码的工具链装完告诉系统它在哪export ANDROID_NDK/path/to/your/android-ndk2. NDK 交叉编译参数速查这组参数是 NDK 交叉编译的核心逐个都有用cmake \ -DCMAKE_TOOLCHAIN_FILE$ANDROID_NDK/build/cmake/android.toolchain.cmake \ -DANDROID_ABIarm64-v8a \ -DANDROID_PLATFORMandroid-28 \ -DCMAKE_C_FLAGS-marcharmv8.7a \ -DCMAKE_CXX_FLAGS-marcharmv8.7a \ -DGGML_OPENMPOFF \ -DGGML_LLAMAFILEOFF \ -B build-android参数速查CMAKE_TOOLCHAIN_FILE指向 NDK 工具链交叉编译的关键ANDROID_ABIarm64-v8a目标定到 64 位手机-marcharmv8.7a启用 ARMv8.7 指令集矩阵计算更快GGML_OPENMPOFF关掉 Android 侧的 OpenMP 多线程规避线程兼容问题配置完正式编译cmake --build build-android --config Release -j43. 用 ADB 把文件推到设备ADB 是电脑和手机之间的桥梁。三条命令依次是建目录、推二进制、推模型adb shell mkdir /data/local/tmp/llama.cpp adb push build-android/bin /data/local/tmp/llama.cpp/ adb push model.gguf /data/local/tmp/llama.cpp/4. 在手机上验证运行进 shell 后指定库路径再启动。LD_LIBRARY_PATH那行不能省否则找不到运行库adb shell cd /data/local/tmp/llama.cpp/bin LD_LIBRARY_PATH../lib ./llama-cli -m ../model.gguf -c 2048 -p 你好世界 ⑤ 首次运行GGUF 模型选择与 -c 上下文参数要点先说格式llama.cpp 只吃 GGUF这是它自己的模型容器格式一般由转换脚本从原始权重量化而来拿来即用。再商量化档位4-bit如 Q4_K_M和 8-bit如 Q8_0是最常见的两档。8-bit 更接近原始精度但体积和内存占用翻倍手机上 4-bit 通常是性价比最高的选择。-c 上下文长度直接决定内存占用给不了多少就别硬给2048 起步、够用再加。按内存选模型档位手机内存建议模型4GB1B~3B 小模型4-bit8GB7B 4-bit 量化版主流选择12GB 以上13B~14B 量化版体验更好⚡ ⑥ 提速技巧4 个立刻能做的动作模型别贪大7B 4-bit 适配大多数中高端手机13B 以上留给内存大的旗舰。量化降一档8-bit 换 4-bit内存和速度立刻松绑质量损失有限。清空后台跑之前把社交、浏览器这类吃内存的应用退干净。-c 压到最小2048 满足日常问答上下文每加一倍内存压力加一大截。️ ⑦ 卡住的时候编译失败、运行崩溃、速度慢排查编译失败现象make 阶段刷出一大串报错可能原因git/cmake/clang 没装齐或 Termux、NDK 版本过旧处理重跑一遍依赖安装命令Termux 更新到最新版电脑端把 NDK 升到新版再试运行崩溃现象一启动就闪退或报错后进程直接消失可能原因-c 给太大撑爆内存模型文件下载不完整处理把 -c 降到 1024 再试重新下载模型并核对文件大小运行前关掉其他应用速度慢现象每秒出不了几个字可能原因模型对这台机器太大或后台程序抢 CPU 和内存处理换更小的模型或更低的量化档清理后台设备支持的话再看 GPU 加速方案无论是 Termux 现场编译还是 NDK 交叉编译只要模型落到手机上、断网也能逐字作答你的 Android 本地大模型就算真正跑起来了。想深入细节可以看官方文档docs/android.md。觉得有用的话点个赞、关注一下后续更新不迷路。【免费下载链接】llama.cppLLM inference in C/C项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表