llama.cpp 是 ggml-org 维护的 C/C++ 推理引擎,MIT 许可,版权署名 The ggml authors。它没有 Python 依赖,编译产物就是一组能直接扔到裸机上跑的二进制。构建号以 bXXXX 递增,一天能出好几个 tag——DeepSeek V4 的 -sm tensor 支持、GLM-4.5-Air 的修复、Mamba2 把投影层展平成 GEMM 的优化,都是这样几天之内进主干的。这也是它和「等一个官方推理框架适配」最大的区别。
但入口已经不是 2024 年那套了。官方快速上手现在是统一的 llama 命令:llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF 直接拉模型开聊,llama serve -hf ... 起 OpenAI 兼容服务;纯文本补全被拆到独立的 llama-completion。-ngl 和 -fa 的默认值都改成了 auto,不用再手数层数。所以网上贴 ./main 或 -no-cnv 的老教程,照抄大概率跑不起来。
真正决定你租哪张卡的,不是参数量,是 GGUF 文件体积加 KV 缓存。Llama-3.1-8B 的 f16 KV 缓存是每 token 128KB(8 个 KV head × 128 维 × K/V 两份 × 2 字节 × 32 层),32K 上下文就要吃掉 4GB;再加上 -np 并发 slot、mmproj 视觉投影和 MTP 草稿权重,24GB 常常比你以为的紧。NexGPU 有 1,175 个已验证可租节点、2,498 张卡、75 种型号,从 $0.188/卡·时 的 Tesla V100 32GB 到 141GB 的 H200 都能按秒起停——先租一小时量准,再决定长期方案。
01 —
GGUF 量化档位:官方实测的位宽与体积
位宽与 8B 体积取自 llama.cpp 仓库 tools/quantize 的实测表(基准模型 meta-llama/Llama-3.1-8B);27B 与 12B 一列取自 ggml-org 在 Hugging Face 上发布的 GGUF 实际文件大小。
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| Q4_K_M | 4.8944 bpw | 8B 4.58GB | 27B 19GB | 8B 配 q8_0 KV:24GB 卡可冲 128K | 默认首选。几乎所有 GGUF 发布页都把它排在第一位,质量与体积的拐点就在这一档。 |
| IQ4_XS | 4.4597 bpw | 8B 4.17GB | 比 Q4_K_M 多留约 0.4GB 给 KV | 显存卡在边缘时用的 i-quant,靠 imatrix 重要性矩阵把精度补回来,解码侧开销略高于 K-quant。 |
| Q5_K_M | 5.7036 bpw | 8B 5.33GB | 8B 配 f16 KV:24GB 卡约 96K | 怀疑 Q4 掉点、又不想付 Q8 体积时的中间档,常用来做 A/B 对照。 |
| Q6_K | 6.5633 bpw | 8B 6.14GB | 32GB 的 RTX 5090 上 8B 可开满 128K | 质量已经贴着 Q8,体积少 1.8GB。32GB 单卡跑 8B 长上下文时最合适。 |
| Q8_0 | 8.5008 bpw | 8B 7.95GB | 27B 28.6GB | 30B-A3B 33.6GB | 27B 在 48GB 卡上仍余约 19GB 给 KV | 近无损基线。评估量化掉点时该拿它做参照,而不是拿 F16——F16 的体积会让对照实验贵一倍。 |
| F16 / BF16 | 16.0005 bpw | 8B 14.96GB | 12B 23.8GB | 27B 53.8GB | 12B BF16 已顶满 24GB,需 48GB 起 | 量化与 imatrix 校准的源头。gemma-4-12B-it 的 BF16 是 23.8GB,24GB 卡装得下权重也装不下 KV,别硬试。 |
02 —
按量化档位选卡:NexGPU 实价对照
先算 GGUF 体积加 KV 缓存,再选卡。下面每一档都留了并发 slot 和计算缓冲的余量。
8B–12B 的 Q4_K_M 单卡冒烟测试与接口联调
RTX 3090 24GB$0.193/卡·时
sm_86 是 llama.cpp CUDA 后端打磨最久的架构之一,4.58GB 权重全量卸载后还剩十几 GB 喂 KV,是最便宜的 24GB 起步位。
27B Q4_K_M 带 mmproj 视觉投影跑长上下文
RTX A6000 48GB$0.817/卡·时
19GB 权重加 931MB 的 mmproj 一张卡吃得下,剩下二十多 GB 全给 KV 和 -np 并发 slot,完全不用碰多卡拆分。
Q8_0 的 27B 或 30B-A3B MoE 做质量对照与压测
A100 PCIE 80GB$0.824/卡·时
28.6GB / 33.6GB 的 Q8_0 权重装完仍余 45GB 以上,sm_80 的 Flash Attention 内核成熟,llama-bench 跑出来的数字可复现。
BF16 大模型多卡张量并行(-sm tensor + NCCL)
H100 SXM 80GB$3.582/卡·时
官方文档明确写着 -sm tensor 需要高速互联,只有 SXM 的 NVLink 撑得住;NexGPU 单节点最多可挂 14 张卡,节点显存上限 2,152GB。
03 —
从空机器到 OpenAI 兼容接口:四步
在 NexGPU 开一台带 NVIDIA 卡的实例,SSH 或 Web 终端进去照抄即可。
- 01
装 llama.cpp:官方 CUDA 镜像最省事
ghcr.io 上有 full / light / server 三个变体,各自还分 CUDA 12 与 CUDA 13。注意 RTX 5090 是 Blackwell(sm_120),必须走 CUDA 13 那一路,否则加载模型时会直接报 no kernel image is available for execution。
docker run --gpus all -p 8080:8080 -v $PWD/models:/models ghcr.io/ggml-org/llama.cpp:server-cuda13 -m /models/model.gguf --host 0.0.0.0 - 02
自己编时把计算能力显式锁死
GGML_NATIVE 默认按当前机器优化,二进制换台机器就可能不认。要在多种卡之间搬运就关掉它,并把计算能力一次列全:3090 / A10 / A6000 是 86,4090 是 89,A100 是 80,H100 与 H200 是 90,5090 是 120,V100 是 70,P40 是 61。
cmake -B build -DGGML_CUDA=ON -DGGML_NATIVE=OFF -DCMAKE_CUDA_ARCHITECTURES="61;70;80;86;89;90;120" && cmake --build build --config Release -j - 03
让 llama-fit-params 替你算显存
不用再猜 -ngl 给多少。它读设备可用显存,直接吐出一串能用的参数:压下来的 -c、算好的 -ngl,以及把哪几层 FFN 甩回 CPU 的 -ot 规则,管道接给 llama-server 就能跑。
./build/bin/llama-fit-params --model /models/model.gguf | tee args.txt && cat args.txt | xargs ./build/bin/llama-server --model /models/model.gguf - 04
起服务并对外暴露
llama-server 提供 /v1/chat/completions、/v1/completions、/v1/embeddings,以及 Anthropic 风格的 /v1/messages,还自带 WebUI。-np 开并发 slot 走连续批处理,--jinja 用模型自带模板,KV 缓存转 q8_0 可以再省近一半显存。对外暴露一定要加 --api-key。不带 -m 直接起还会进 router 模式,按请求里的 model 字段自动装载,--models-max 默认同时留 4 个实例。
llama serve -hf ggml-org/gemma-4-12B-it-GGUF:Q8_0 --host 0.0.0.0 --port 8080 -c 32768 -np 4 --jinja -ctk q8_0 -ctv q8_0 --api-key $LLAMA_KEY
一次完整量化实验要花多少钱
拿 Llama-3.1-8B 走一遍完整流程:下 14.96GB 的 F16 权重约 15 分钟,llama-imatrix 跑重要性矩阵约 40 分钟,llama-quantize 一次出 Q4_K_M(4.58GB)、Q5_K_M(5.33GB)、IQ4_XS(4.17GB)三档约 15 分钟,再用 llama-perplexity 各测一遍约 50 分钟,合计约 2 小时。放在 RTX 4090 24GB 上是 2 × $0.540 = $1.08;不赶时间换 RTX 3090 24GB,就是 2 × $0.193 = $0.386。把 4.58GB 的 Q4_K_M 拉回本地,出网按中位价 4.58 × $0.0081 ≈ $0.04。真正会咬人的是存储:19GB 的 27B 权重留在盘上一个月是 19 × $0.414 ≈ $7.87,比机器本身贵得多——算力在实例停掉那一秒就停止计费,存储要销毁卷才停。所以正确姿势是跑完把量化产物推回 Hugging Face,下次用 -hf 重新拉,而不是长期挂盘。按秒计费、无最低消费、无开通费、不用申请配额,一次实验的门槛就是这么低。
04 —
