llama.cpp 没有发布官方 aarch64 的二进制,需要自己编译,好在 Termux 已经有编译好的包可用。
按照相关方法,
- 在 Termux 中安装 llama-cpp 软件
~ $ apt install llama-cpp
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package llama-cpp
~ $ apt update
Get:1 https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable InRelease [14.0 kB]
...
The following additional packages will be installed:
libandroid-spawn
Suggested packages: llama-cpp-backend-vulkan llama-cpp-backend-opencl
The following NEW packages will be installed:
libandroid-spawn llama-cpp
...
Setting up libandroid-spawn (0.3) ...
Setting up llama-cpp (0.0.0-b8184-0) ...
如果找不到这个包,就先执行 apt update 更新目录。为简单起见,先不安装 llama-cpp-backend-vulkan,用 CPU 来执行 llama-cpp。
2. 下载 Qwen3.5-0.8B-UD-Q4_K_XL.gguf 模型
~ $ mkdir model
~ $ cd model
~/model $ curl -LO https://hf-mirror.com/unsloth/Qwen3.5-0.8B-GGUF/resolve/main/Qwen3.5-0.8B-UD-Q4_K_XL.gguf
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed
100 532M 100 532M 0 0 4147k 0 0:02:11 0:02:11 --:--:-- 5141k
这个模型是 Q4 量化的,比原版减少了一半空间,而能力差不多。 3. 用 llama-cli 交互工具加载模型并对话
~/model $ llama-cli -m Qwen3.5-0.8B-UD-Q4_K_XL.gguf --ctx-size 16384 -cnv
load_backend: loaded CPU backend from /data/data/com.termux/files/usr/bin/../lib/libggml-cpu.so
Loading model...
build : b0-unknown
model : Qwen3.5-0.8B-UD-Q4_K_XL.gguf
modalities : text
available commands:
/exiting or Ctrl+C stop or exit
/regen regenerate the last response
/clear clear the chat history
/read add a text file
用因式分解法解方程 x^2-x-20=0
模型成功响应了该测试问题。
Exiting... llama_memory_breakdown_print: | memory breakdown [MiB] | total free self model context compute unaccounted |
llama_memory_breakdown_print: | - Host | 1222 = 522 + 211 + 489 |
因为模型很小,智能比较弱,勉强算对了。 4. 利用 llama-server 内置的 web-ui 功能
~/model $ ls -l
total 546220
-rw------- 1 u0_a270 u0_a270 558772480 Mar 8 09:40 Qwen3.5-0.8B-UD-Q4_K_XL.gguf
~/model $ llama-server -m ./Qwen3.5-0.8B-UD-Q4_K_XL.gguf --jinja -c 0 --host 127.0.0.1 --port 8033
load_backend: loaded CPU backend from /data/data/com.termux/files/usr/bin/../lib/libggml-cpu.so
main: n_parallel is to auto, using n_parallel = 4 and kv_unified =
build: 0 (unknown) with Clang 21.0.0 Android aarch64
system info: n_threads = 8, n_threads_batch = 8, total_threads = 8
...
srv load_model: loading model
...
main: server is listening on http://127.0.0.1:8033
main: starting the main loop...
srv update_slots: all slots are idle

