3.0 KiB
3.0 KiB
这是非常关键的一个决策问题,现在有真实 benchmark 数据可以精准回答。
速度对比:vllm vs llama.cpp(你的硬件)
基于真实测试数据 : github
| 指标 | vllm(当前) | llama.cpp(切换后) | 差距 |
|---|---|---|---|
| 单请求 decode 速度 | ~18 tok/s | ~20-28 tok/s | llama.cpp 反而更快 ✅ |
| 最大上下文 | 8192(极限) | 32768+ | llama.cpp 碾压 ✅ |
| 显存占用 | 15403 MiB(94%) | ~13000 MiB | llama.cpp 更省 ✅ |
| 高并发吞吐 | 更好 | 较差 | vllm 优势(你用不到) |
| 启动时间 | ~60s | ~10s | llama.cpp 更快 ✅ |
关键数据来源:一位 RTX 3070 笔记本用户(8GB VRAM)用 ollama(llama.cpp 封装)跑 Qwen3-30B MoE Q4,跑出了 24 tok/s 。你的是 16GB 版,可以装更多层到 GPU,速度会更快,预计 30-40 tok/s。 reddit
llama.cpp 单请求场景与 vllm 几乎持平,差距在 0-6% 以内 。vllm 的优势只在高并发(多用户同时请求)时才体现,你是个人单用户场景,这个优势完全用不到。 github
llama.cpp 快速部署
第一步:下载 GGUF 模型
# 从 ModelScope 下载 Q4_K_M 版本(推荐,质量与速度最佳平衡)
pip install modelscope
python -c "
from modelscope import snapshot_download
# 方案一:lmstudio-community(bartowski量化,推荐)
snapshot_download(
'lmstudio-community/Qwen3-30B-A3B-GGUF',
allow_file_pattern=['*Q4_K_M*'],
local_dir='/root/models/Qwen3-30B-A3B-GGUF'
)
"
第二步:安装 llama.cpp(CUDA 版)
pip install llama-cpp-python \
--extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu128
或直接用预编译二进制:
# 下载官方 CUDA release
wget https://github.com/ggml-org/llama.cpp/releases/latest/download/llama-linux-cuda-cu12.0-x64.zip
unzip llama-linux-cuda-cu12.0-x64.zip -d ~/llama.cpp/
第三步:启动 OpenAI 兼容服务
~/llama.cpp/llama-server \
-m /root/models/Qwen3-30B-A3B-GGUF/Qwen3-30B-A3B-Q4_K_M.gguf \
--host 0.0.0.0 \
--port 8000 \
-ngl 99 \
-c 32768 \
-n -1 \
-t 8 \
--parallel 1 \
--flash-attn \
-b 512
| 参数 | 含义 |
|---|---|
-ngl 99 |
全部层加载到 GPU |
-c 32768 |
32K 上下文(RAM 按需分配) |
--flash-attn |
启用 FlashAttention,Ampere 原生支持 |
-t 8 |
使用 5800X 全部 8 核心 |
-b 512 |
batch size,平衡速度与延迟 |
一句话总结
你的场景(单用户、需要长上下文、16GB 单卡)llama.cpp 全面优于 vllm:不仅不会更慢,反而更快 ~10-50%,且上下文长度从 8K 直接升到 32K,显存占用更低,部署更简单。 reddit