跳到主要内容

llama.cpp 快速入门

本文通过一组简短的示例介绍如何在 openRuyi 上使用 llama.cpp。本文将使用一个约 500 MiB 的小模型,CPU 上的示例可以在任意 openRuyi riscv64 物理机或虚拟机上运行,AMD GPU 上的示例需要支持的显卡。

下载模型​

llama.cpp 使用 GGUF 格式的模型文件。本文使用 ModelScope 上由 unsloth 提供的 Qwen3.5-0.8B 量化模型:

mkdir -p ~/models
curl -L -o ~/models/Qwen3.5-0.8B-Q4_K_M.gguf \
https://modelscope.cn/models/unsloth/Qwen3.5-0.8B-GGUF/resolve/master/Qwen3.5-0.8B-Q4_K_M.gguf

在 AMD GPU 上运行 llama.cpp​

检查 GPU​

安装 rocminfo 和 rocm-smi:

sudo dnf install rocminfo rocm-smi

rocminfo 应列出一个名称以 gfx 开头的 GPU agent,rocm-smi 显示显卡的温度、功耗和显存占用:

rocminfo
rocm-smi

安装 llama.cpp​

安装 ROCm 版本的 llama.cpp。如果已经安装了 CPU 版本,--allowerasing 会将其替换:

sudo dnf install --allowerasing llama-cpp-rocm

列出可用设备,输出中应出现 ROCm0:

llama-cli --list-devices

命令行对话​

llama-cli 启动一个交互式对话,输入 /exit 或按 Ctrl+C 退出。模型层默认会尽可能放到显存中:

llama-cli -m ~/models/Qwen3.5-0.8B-Q4_K_M.gguf

运行时可以在另一个终端中用 rocm-smi 观察 GPU 占用。

加上 -p 指定提示词、-st 只进行一轮对话,即可用于脚本或快速测试:

llama-cli -m ~/models/Qwen3.5-0.8B-Q4_K_M.gguf -p "用一句话介绍 RISC-V。" -n 64 -rea off -st

-n 限制生成的 token 数量。Qwen3.5 默认会先输出思考过程,-rea off 关闭思考,直接给出回答。回答结束后会打印提示词处理和生成的速度。

兼容 OpenAI API 的服务端​

llama-server 可以提供一个兼容 OpenAI API 的 HTTP 服务。

在终端中输入以下命令来启动服务:

llama-server -m ~/models/Qwen3.5-0.8B-Q4_K_M.gguf -rea off --host 127.0.0.1 --port 8080

在另一个终端中检查服务状态,并发送一个对话请求:

curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "你好,请介绍一下你自己。"}], "max_tokens": 64}'

对于本机支持 OpenAI API 的客户端和应用,将 API 地址设为 http://127.0.0.1:8080/v1 即可使用该服务。

备注

openRuyi 的 llama-server 不包含 Web 界面,请通过 API 访问。

在 CPU 上运行 llama.cpp​

没有显卡时,也可以使用 CPU 版本的 llama.cpp。如果已经安装了 ROCm 版本,请添加 --allowerasing 选项:

sudo dnf install --allowerasing llama-cpp

CPU 版本的用法与 ROCm 版本相同,请参阅上文。

PyTorch 与 vLLM​

安装 CPU 版本:

sudo dnf install python-torch python-vllm

安装 ROCm 版本时,Triton 会作为依赖一并安装:

sudo dnf install --allowerasing python-torch-rocm python-vllm-rocm

PyTorch 和 vLLM 的具体用法请参阅各自的上游文档。