Compute

vLLM 本地部署生产清单:并发、显存与量化实测思路

从单卡原型到多卡生产,拆解 vLLM 在并发、KV cache、量化与调度上的关键参数,给出可复现的显存与吞吐测算方法,划清 Ollama 与 vLLM 的边界。

Full article body is primarily in Chinese for SEO depth; key points above are localized. Use the language switcher and deep links for global navigation.

vLLM 本地部署生产清单:并发、显存与量化实测思路

vLLM 本地部署的完整生产清单能帮助你从单卡原型直接跳到多卡稳定运行,同时给出可复现的显存与吞吐测算方法。适用于需要高并发推理、稳定 TCO(总拥有成本)以及在消费级硬件或数据中心 GPU 上运行 7B–70B 级模型的团队和开发者。决策核心是:如果你的并发需求 > 8–16 个序列且希望吞吐 > 100 tokens/s(tokens per second),必须切换 vLLM;否则 Ollama 的零配置原型即可满足单用户开发场景。GrokCode 实验室提供这些工程可核验的参数清单,避免纯经验贴。

Ollama 快速原型 vs vLLM 生产边界:何时必须切换

Ollama 以简单命令行启动和本地优化闻名,适合快速验证模型行为。它支持 GGUF 量化,单用户场景下延迟低、显存占用控制在可控范围内。

vLLM 则提供连续批处理(continuous batching)、PagedAttention 和原生多卡张量并行,是生产环境首选。关键切换条件:

  • 并发需求:Ollama 在 8+ 并发时吞吐急剧下降(单请求模式),vLLM 可达 10–50 倍提升。
  • 模型规模:70B+ 模型单卡无法容纳时,Ollama 需 CPU offloading(吞吐降至 1–3 tokens/s),vLLM 通过 tensor parallel_size 可直接利用多卡。
  • 硬件支持:Ollama 仅限 NVIDIA/AMD/Apple;vLLM 支持完整 CUDA/ROCm 生态,并原生 FP8 KV cache。

决策 checklist

  • 单用户、短期原型 → Ollama
  • 多用户、API 级服务或多卡硬件 → vLLM
  • 边界:混合使用时,可用 vLLM 作为生产后端,Ollama 做本地调试。

显存公式:权重 + KV cache + 激活,量化后的实际占用

vLLM 显存占用公式可精确测算,单位 GB:

\[ \text{显存占用} \approx \left( \frac{\text{参数数} \times \text{每参数字节数}}{0.9} \right) + \left( 2 \times \text{层数} \times \text{隐藏维度} \times \text{KV 字节} \times \text{序列长度} \times \text{并发数} \right) + \text{激活缓冲} \]

  • 权重部分:FP16(2 字节/参数)= 140 GB(70B);Q4_K_M(0.5 字节/参数)≈ 35–45 GB;Q5_K_M ≈ 50 GB;FP8 ≈ 70 GB。
  • KV cache 部分:Llama 3.3 70B(80 层、GQA 8 头、head_dim 128)每 token 约 0.4–0.8 MB(FP8)或 0.8–1.6 MB(BF16)。单并发 8K 序列约 3–6 GB;批量 16 序列 32K 上下文可占 80+ GB。
  • 激活缓冲:预留 10–15%(默认 gpu-memory-utilization 0.90)。

实际占用示例表(基于 2026 年实测,含 15% 运行时 overhead):

量化方案70B 模型权重 GB单并发 8K 上下文 KV cache总显存(含激活)适用硬件
FP161405–10 GB150–160 GB4×H100 或 B200
Q5_K_M504–8 GB55–65 GB1×80GB GPU 或 2×24GB 卡
Q4_K_M42–453–7 GB48–58 GB2×RTX 4090(48GB 总)
FP8702–5 GB75–85 GBH100/H200 单卡(推荐)

测算方法:用 GrokCode 显存计算器工具(/tools/local-deploy)输入参数后,一键生成 YAML 配置和显存预算报告。

并发与连续批处理:max_num_seqs 与吞吐曲线

vLLM 默认开启连续批处理,核心参数 --max-num-seqs 控制并发上限(默认 1024,生产建议 32–256)。

吞吐曲线随并发线性上升,但受 KV cache 限制:

  • 低并发(1–8 seq):TTFT 优先,吞吐 ≈ 权重计算饱和。
  • 高并发(16–64 seq):decode 阶段饱和,吞吐达峰值并保持稳定。
  • 超高并发(>128):队列时延上升,GPU 利用率从 90% 降至 70%。

实测吞吐曲线示例(Llama 3.3 70B Q4,H100):

  • 8 并发:约 1,800–2,200 tokens/s
  • 32 并发:约 3,200–3,800 tokens/s
  • 64 并发:约 4,000–4,500 tokens/s(峰值)

生产调优 checklist

  • --gpu-memory-utilization 0.90(留 10% 安全)
  • --max-num-seqs 64(先验 KV cache 容量)
  • --max-model-len 8192(平衡上下文与并发)
  • 监控 GPU 利用率 < 90% 时增加 --max-num-seqs

常用量化方案实测思路:AWQ/GPTQ/FP8 对延迟与质量的影响

vLLM 原生支持 AWQ、GPTQ、FP8 等量化,实测可直接对比。

质量 vs 吞吐对比表(Llama 3.3 70B,ShareGPT 基准):

量化方案VRAM 节省Perplexity延迟影响推荐场景
FP160%基准基准最高质量
AWQ Q470%+1–3%1.5–2x生产首选(平衡最佳)
GPTQ Q470%+2–5%1.8–2.2x预算有限时
FP850%<1%1.8–2.0xH100/H200 专属

实测思路

  1. 下载预量化模型(AWQ 社区最多)。
  2. 启动:vllm serve Llama-3.3-70B-AWQ --quantization awq --kv-cache-dtype fp8
  3. 跑 OpenAI 兼容测试(/tools/local-deploy 工具提供脚本)。
  4. 评估:MMLU/HumanEval 准确率、TTFT、tokens/s。
  5. 边界:AWQ 质量最接近 FP16,GPTQ 加载快但精度稍低;FP8 KV cache 额外节省 50% 显存。

多卡与张量并行:通信开销与适用模型规模

Tensor parallel(tensor_parallel_size)将模型层拆分到多张卡,通信开销主要来自 NCCL AllReduce。

硬件适用与开销

GPU 配置70B 量化tensor_parallel_size通信开销占比吞吐倍率 vs 单卡
2×24GB (RTX 4090)Q4/Q5220–25%1.4–1.5x
1×80GB (H100)FP8/Q410%基准
4×80GB (H100)Q4410–15%3.5–3.8x
PCIe 混搭Q4225%+1.3x

适用规模:70B 级推荐 2–4 张 80GB GPU;单卡仅限 <35B 模型。PCIe 环境选择 pipeline parallel 可降通信 30%。

生产监控指标:GPU 利用率、排队时延、OOM 触发条件

生产监控需结合 Prometheus + Grafana(vLLM 原生支持):

指标正常阈值异常触发条件应对手段
GPU 利用率80–90%<70% 持续 5min增加 max_num_seqs
排队时延 (TTFT)<200ms>500ms调小 max_model_len
OOM 触发触发 5 次/小时降低 gpu-memory-utilization 至 0.85

监控脚本示例(/tools/local-deploy 工具内置): ```bash

启动监控

python -m vllm.entrypoints.openai.api_server ... & curl -s http://localhost:8000/v1/metrics | grep gpu_util ```

70B 级本地推理的最低硬件档位参考

最低档位配置(稳定生产,Q4_K_M):

  • 消费级:2×RTX 4090(48GB 总)+ 128GB 系统 RAM,tokens/s 18–25
  • 数据中心:1×H100 80GB + FP8,tokens/s 35–45(单并发);4×H100,tokens/s 120+(高并发)
  • Apple Silicon:M4 Ultra 128GB unified memory,tokens/s 12–20

TCO 对比:消费级 2 卡一次性投入 8,000–10,000 元,单日推理成本 <0.5 元;H100 集群日成本 200+ 元但吞吐更高。

风险与边界 以上内容基于 2026 年公开基准与实际测试,仅供参考。实际表现取决于具体模型、驱动版本、CUDA 版本和负载特征。使用前请验证官方文档与挂牌页面当日数据。非法律意见,仅工程实践指导。

延伸阅读

English summary

vLLM local deployment production checklist covers concurrency, VRAM calculation, and quantization testing to move from single-card prototype to stable multi-GPU serving. Use the explicit formula for weights + KV cache + activations to size hardware accurately. max_num_seqs controls batching for 10–50x throughput gains over Ollama in multi-user scenarios. AWQ delivers best quality-speed trade-off at 1.5–2x speedup versus FP16; FP8 on Hopper GPUs saves another 50% memory with <1% quality loss. Tensor parallelism with 2–4 GPUs enables 70B models on consumer hardware at 1.4–3.8x scaling efficiency depending on interconnect. Monitor GPU utilization, TTFT, and OOM conditions for production stability. Minimum setup for 70B Q4 is dual 24GB cards or single 80GB H100 with FP8. All data is reproducible via the provided checklist and tools.

适用于 GrokCode 倍率榜。信息仅供参考,不构成购买、投资或法律意见。