是的,VLLM 的推理速度非常快,通常比 Hugging Face Transformers 等传统框架快数倍到数十倍。

它主要通过以下几个核心技术实现了显著的加速:
-
PagedAttention 算法: 这是 VLLM 的核心创新,它借鉴了操作系统虚拟内存的分页思想,将 KV Cache(键值缓存)分割成固定大小的“块”(Pages),不再需要连续的大块显存,这消除了显存碎片,允许近乎 100% 的显存利用率,从而可以处理更长的上下文或容纳更大的 batch size。
-
连续批处理(Continuous Batching): 传统框架通常是“等待一批请求全部生成完,再处理下一批”,VLLM 在序列级别进行调度,一条序列完成生成后,新请求可以立即插入到当前 batch 中开始计算,这极大提高了 GPU 利用率和吞吐量。
-
高效的 CUDA 内核: VLLM 针对 Attention 机制和其他算子编写了高度优化的 CUDA 代码,减少了计算和数据传输的开销。
-
量化支持: 原生支持 FP8、INT8、INT4 等模型量化,减少显存占用和计算量,进一步提升速度。
直观的速度对比(实际数据因模型、硬件、batch size 等而异):
| 场景 | 对比对象 | 速度提升(近似值) | 关键原因 |
|---|---|---|---|
| 高并发/大吞吐 | Hugging Face | 8x - 30x | 连续批处理 + 显存优化 |
| 低并发/单请求 | Hugging Face | 5x - 3x | 更好的内存管理和内核优化 |
| 少样本/流式输出 | 原生 Hugging Face | 类似或略快 | 优势体现在高负载时 |
| 长上下文场景 | 其他框架 | 优势更明显 | 显存有效扩展,不易 OOM |
你也需要注意以下几点:
- 首次调用延迟(Time-to-First-Token, TTFT): VLLM 的优化主要针对吞吐量(Throughput),而非极致的首 token 延迟,对于必须尽快的流式响应,它表现很好,但首 token 输出速度可能与 Hugging Face 相当或稍慢。
- 安装与兼容性: 推荐在 Linux 环境下使用,Windows 支持有限,部分极少数模型可能需要稍微调整配置才能完美运行。
- 非 LLM 模型: VLLM 主要专注于大语言模型(LLM),对于其他类型的模型(如图像生成、多模态)支持有限或性能不如专用框架。
- 追求高吞吐、高并发、长上下文、节省显存(性价比高): VLLM 是当前最好的选择之一。
- 追求单请求极致低延迟(对首 token 时间有极高要求)、或者使用非 LLM 模型: 其他方案(如 TensorRT-LLM、TGI)可能有各自的优势。
一句话结论:VLLM 非常快,尤其是在高负载下,如果你需要部署一个 LLM 服务来服务多个用户,它是目前最主流、高效的选择之一。