在安卓设备上部署 llama.cpp 框架推理大模型

llama.cpp 是使用 C/C++ 编写的高性能推理框架,没有外部依赖,因此可以跨平台快速部署。并且,llama.cpp 还支持多种硬件平台上的计算库,包括 Metal、BLAS、CUDA、Vulkan、CANN 等,以加速模型的推理。此外,llama.cpp 还支持多种量化方案以加快推理速度并减少内存占用。

如果需要在移动端上部署大模型,那么使用 llama.cpp 是较为便捷的方案。本教程将介绍如何在单框架手机上使用 llama.cpp 框架推理大模型,主要分为三个步骤:

  • 交叉编译推理框架
  • 下载模型
  • 在安卓设备上推理模型

1. 交叉编译推理框架

llama.cpp 官方仓库。仓库 Release 提供了数个硬件平台的编译版本,可以按需下载。如果没有预编译的版本,则可以按照以下步骤进行编译。

1.1. 配置 Android NDK 环境

在安卓开发者官网中下载最新版本的 Android NDK。将下载的压缩包拷贝到本地 Linux 环境下,然后解压:

unzip android-ndk-r29-beta3-linux.zip

设置 NDK 环境变量:

export NDK=<path>/android-ndk-r29-beta3
1.2. 配置 llama.cpp 编译选项

克隆 llama.cpp 仓库:

git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp

在 llama.cpp 仓库下,执行以下 cmake 命令以构建:

mkdir build
cd build
cmake \
-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=35 \
-DCMAKE_C_COMPILER=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang \
-DCMAKE_C_FLAGS="-march=armv8-a" \
-DCMAKE_CXX_COMPILER=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ \
-DCMAKE_CXX_FLAGS="-march=armv8-a" \
-DGGML_OPENMP=OFF \
-DGGML_LLAMAFILE=OFF \
-DLLAMA_CURL=OFF \
-B build-android \
..

以下是编译参数的说明:

选项 说明
DCMAKE_TOOLCHAIN_FILE 指定 cmake 工具链文件
DANDROID_ABI 安卓程序二进制接口
DANDROID_PLATFORM 安卓平台版本
DCMAKE_C_COMPILER C 编译器路径
DCMAKE_C_FLAGS C 编译器标志
DCMAKE_CXX_COMPILER CPP 编译器路径
DCMAKE_CXX_FLAGS CPP 编译器标志
DGGML_OPENMP 是否使用 OpenMP 库,旧版本安卓暂不支持
DGGML_LLAMAFILE 是否使用 llamafile 打包,安卓暂不支持
1.3. 编译 llama.cpp

完成项目配置后,执行以下 cmake 命令进行安装:

cmake --build build-android --config Debug -j8
cmake --install build-android --prefix output --config Debug

安装完成后,在 output 下,我们可以看到生成了三部分内容:binincludelib。将这些文件夹传输到手机上:

adb shell "mkdir /data/local/tmp/llama.cpp"
adb push output/ /data/local/tmp/llama.cpp/

2. 下载模型

在 ModelScope 等社区上可以下载开源的模型。这里我们选择阿里千问模型,下载 Qwen3-0.6B-Q8_0 的 GGUF 模型:ModelScope.

模型下载完成后,发送到手机上:

adb shell "mkdir /data/local/tmp/models"
adb push Qwen3-0.6B-Q8_0.gguf /data/local/tmp/models

3. 在安卓设备上推理模型

我们使用 llama-cli 在命令行中创建对话:

adb shell
cd /data/local/tmp/llama.cpp/output
chmod 777 -R ./bin/
LD_LIBRARY_PATH=lib ./bin/llama-cli -m /data/local/tmp/models/Qwen3-0.6B-Q8_0.gguf

这样我们就可以在命令行中使用 Qwen3 模型进行对话:

posted @ 2025-08-28 16:21  木杉的园子  阅读(409)  评论(0)    收藏  举报