适合小显存的本地大语言模型配置。本地配置大语言模型来进行代码编写或者文档处理等工作的优势不用赘述。直接上干货。
配置llama
要运行bonsai2 27b的模型,需要bonsai自己修改适合llama.cpp程序。按照以下命令进行配置
git clone https://github.com/PrismML-Eng/llama.cpp.git
cd llama.cpp
cmake -B build \
-DGGML_CUDA=ON \
-DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
配置好后,运行一下命令进行版本验证
./build/bin/llama-cli --version
下载权重
安装 HF CLI:
pip install -U huggingface_hub
然后:
mkdir -p ~/models/bonsai2-27b
cd ~/models/bonsai2-27b
hf download \
prism-ml/Ternary-Bonsai-2-27B-gguf \
Ternary-Bonsai-2-27B-PQ2_0.gguf \
--local-dir .
本地运行
假设:
LLAMA=~/llama.cpp/build/bin/llama-cli
MODEL=~/models/bonsai2-27b/Ternary-Bonsai-2-27B-PQ2_0.gguf
运行:
$LLAMA \
-m $MODEL \
-ngl 99 \
-fa on \
-c 32768 \
--temp 1.0 \
--top-p 0.95 \
--top-k 20 \
-p "Explain how CUDA Tensor Cores work." \
-n 1024
其中:
-ngl 99
表示尽量把全部层放 GPU。
-fa on
开启 Flash Attention。
-c 32768
先分配 32K context。
虽然模型支持最高 262144 tokens,但我不建议第一次直接:
-c 262144
因为模型权重只有约 6 GB,不代表 KV cache 也只有这么一点;context 拉长后 KV cache 也会占用显存/内存(显存不够时)的一部分。官方示例同样首先使用 32768。
部署成 OpenAI API
这通常更适合你后面接 Agent / VS Code / 自己写 Python client。
~/llama.cpp/build/bin/llama-server \
-m ~/models/bonsai2-27b/Ternary-Bonsai-2-27B-PQ2_0.gguf \
-ngl 99 \
-fa on \
-c 32768 \
--host 0.0.0.0 \
--port 8080 \
--temp 1.0 \
--top-p 0.95 \
--top-k 20
然后测试:
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "bonsai2",
"messages": [
{
"role": "user",
"content": "Write a CUDA vector addition kernel."
}
],
"max_tokens": 512
}'
这样就有一个:
http://127.0.0.1:8080/v1
兼容 OpenAI API 的本地 endpoint。
更新日志
2026-09-24:不同 GPU 的上下文与生成速度实测
使用相同的 Ternary-Bonsai-2-27B-PQ2_0.gguf 权重,在三款 NVIDIA GPU 上进行了部署测试。以下速度均为实际运行时观察到的生成速度;受提示词长度、上下文占用和采样阶段影响,结果会有一定波动。
| GPU | 显存 | 测试上下文 | 生成速度 | 备注 |
|---|---|---|---|---|
| RTX 5080 | 16 GB | 119,500 tokens | 约 60 tokens/s | 本次测试可运行的最大上下文 |
| RTX 5080 | 16 GB | 64K tokens | 约 79 tokens/s | 速度相对更快 |
| RTX A4000 Ada | 20 GB | 198,000 tokens | 约 34 tokens/s | 本次测试可运行的最大上下文;未测试其他长度 |
| RTX L20 | 48 GB | 265K tokens | 约 50 tokens/s | 本次测试可运行的最大上下文 |
| RTX L20 | 48 GB | 132K tokens | 约 40–70 tokens/s | 运行速度存在波动 |
加入 draft model 进行推测解码后,观察到的生成速度约为 50–150 tokens/s,具体速度会随任务和命中率变化。
这里的“最大上下文”是本次配置和测试条件下成功运行的结果,并不代表硬件在所有配置下的绝对上限。