性能#性能#QPS#显存#批处理#KV cache
性能调优:推理速度、显存、并发 3 维度
QPS 不够?显存爆了?本文从推理引擎、量化、batching 三个角度系统讲调优。
盖茨·2026/7/22·19 阅读
性能调优:推理速度、显存、并发
性能瓶颈的 4 个层级
- 模型本身:Qwen2.5-7B 推理比 Llama-3-8B 快 1.3 倍(架构差异)
- 推理引擎:vLLM > TGI > llama.cpp > Transformers
- 硬件:H100 > A100 > 4090 > 3090
- 软件配置:batching、量化、KV cache
推理速度(latency)优化
Token 生成速度
- TTFT (Time To First Token):首字延迟
- 优化:减少 prompt 长度、用 speculative decoding
- TPOT (Time Per Output Token):每字延迟
- 优化:换更好的卡、INT8 量化
实用建议
| 模型 | TTFT | TPOT (vLLM) | TPOT (Ollama) |
|---|---|---|---|
| 7B | 50-100ms | 15-25ms | 25-40ms |
| 14B | 100-200ms | 30-50ms | 50-80ms |
| 72B | 300-600ms | 80-150ms | 150-250ms |
显存优化
显存占用公式
总显存 = 模型权重 + KV cache + 激活值 + 系统开销
= (参数量 × 字节数) + (batch × seq_len × hidden × layers × 2 × 2)
优化方法
- 量化:FP16 → INT8 → INT4,权重省 50% → 75%
- PagedAttention(vLLM):KV cache 节省 50-90%
- Continuous Batching:动态 batching 利用率提升 2-3 倍
- FlashAttention:激活值省 30-50%
- Offloading:把不常用的层卸载到 CPU
并发(QPS)优化
关键参数
# vLLM
--max-num-seqs 256 # 最大并发序列
--max-num-batched-tokens 8192 # 批处理最大 token
--block-size 16 # PagedAttention 块大小
--swap-space 4 # CPU swap 空间 GB
--enable-prefix-caching # 启用 prefix 缓存(重要)
实战数据
Qwen2.5-72B + 2×A100 80G + vLLM:
- 单并发:45 tok/s
- 32 并发:580 tok/s
- 64 并发:620 tok/s
- 100 并发:开始排队,延迟上升
结论:QPS 上限 ≈ 显存决定,硬件到位 + 配置调优能榨干 90% 性能。
监控指标
必备 Grafana 仪表盘:
- vllm:gpu_cache_usage (PagedAttention 使用率)
- vllm:num_requests_running (在跑请求数)
- vllm:num_requests_waiting (排队请求数)
- vllm:time_to_first_token_seconds (TTFT)
- vllm:request_success_total (成功请求)
- vllm:request_failure_total (失败请求)
我们的建议
- 日常使用:Ollama + 7B + Q4_K_M,足够
- 中等并发(10-50 QPS):vLLM + 14B + INT8
- 高并发(100+ QPS):vLLM + 14B + INT8 + 多卡
- 延迟敏感:speculative decoding + 小模型