给业务搭推理服务,对比了原生 Transformers 和 vLLM,重点测了 PagedAttention 的显存效果,数据分享一下:

**测试环境**:单张 RTX 4090(24G),Qwen2.5-7B-Instruct FP16,输入 2k tokens、输出 512 tokens,对比 batch size 拉满时的最大并发。

**实测结果**:
- 原生 Transformers:KV Cache 按最大长度预分配,并发 8 就 OOM,显存利用率低,大量空间被预留但没用上。
- vLLM:同样条件下并发拉到 32+ 才打满,吞吐大概是原生的 3~4 倍。省下来的主要是 KV Cache 的碎片和预留浪费。

**原理一句话**:PagedAttention 把 KV Cache 按 block 管理,像操作系统分页内存一样按需分配,请求之间还能共享 block,碎片率大幅下降。batch 越大、长短请求混杂越严重,收益越明显。

**落地建议**:
1. 在线推理、并发高、长短 prompt 混杂的场景 → 直接上 vLLM,收益最大。
2. 低并发、固定长度的离线 batch 任务 → 收益有限,原生方案够用,别为了“先进”而折腾。
3. 注意版本:vLLM 迭代快,生产环境锁死版本号,升级前先跑回归。
4. 多卡部署时配合 tensor parallel,单卡不够就上 2×4090,成本比 A100 低一个数量级,7B/14B 级别完全够用。

**一个坑**:vLLM 默认的 max_model_len 和 gpu_memory_utilization 要按实际调,默认参数不一定是最优,调一下并发还能再涨一截。

你们推理服务用的什么框架?vLLM、TGI 还是 TensorRT-LLM?有对比数据欢迎贴出来交流。