vLLM:是什么,适用于谁,以及在什么情况下使用 ?
vLLM 是一个开源推理引擎,2023 年诞生于伯克利,通过兼容 OpenAI 的 API,在 GPU 上运行 LLM 并同时为多个用户提供服务。借助 PagedAttention 和连续批处理,一旦出现并发请求,其总吞吐量就能达到传统服务器的数倍。它不会让单个对话更快:如果您独自在自己的电脑上使用,Ollama 或 LM Studio 仍是合适的选择。
vLLM 是一个开源推理引擎,专为在 GPU 上运行 LLM、通过兼容 OpenAI 的 API 同时为多个用户提供服务而设计。截至 2026 年 9 月 20 日,它是向团队或应用程序提供开放权重模型服务的标杆方案。对于在个人电脑上使用 Ollama 的场景,它并不是竞争工具:两者解决的问题不同。本页介绍 vLLM 的功能、使用要求,以及如何判断您是否需要它。
#用三句话介绍 vLLM
vLLM 是一个 Python 库,也是一款推理服务器,于 2023 年诞生于加州大学伯克利分校的 Sky Computing Lab,采用 Apache 2.0 许可证发布。这是一种宽松的许可证,允许不受限制的商业再利用。它将 Hugging Face 格式的模型(通常为 safetensors)加载到一个或多个 GPU 上,并通过兼容 OpenAI 的 HTTP API 提供服务。因此,任何已针对 OpenAI API 编写的客户端都可以接入,无需修改任何应用代码,只需更改基础 URL。它的存在意义可以概括为一个词:吞吐量,即当十个、五十个或两百个不同请求同时到达,且都需要迅速得到回答时,GPU 每秒生成的 token 总数。
#vLLM解决的问题
只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。
- 在线空间,终身可用
- PDF + 文件
- 终身更新
当 LLM 生成文本时,它会保留已读取和已生成内容的记录:即 KV 缓存。该缓存随每个 token 增长,最终大小无法预估,因为无法提前判断回复是二十个词还是两千个词。第一代推理服务器因此为每条请求预留了一块连续内存,以应对最坏情况。
这一量化结果在 vLLM 的奠基论文(Kwon 等,SOSP 2023)中有明确记载,项目团队也引用了这一结果:在现有系统中,为 KV 缓存预留的内存有 60% 至 80% 被白白浪费,原因包括出于谨慎而过度预留,以及碎片化在已分配的内存块之间留下无法使用的空隙。真正可用的内存减少,自然意味着同一张显卡上能并行处理的请求更少。因此,一块价值数千欧元的 GPU 最终只能发挥其理论能力中极小的一部分,而电费和硬件折旧成本却依然不变。
#PagedAttention 与连续批处理
vLLM 基于两个理念。第一个是 PagedAttention,借鉴自操作系统:不再为每个请求分配一个连续的大块缓存,而是将 KV 缓存划分为固定大小的小页,按需分配,并可放在内存中的任意位置。一张表将 token 的逻辑顺序与页的物理位置对应起来,就像计算机的虚拟内存一样。据作者所述,内存浪费降至 4% 以下。
第二个思路是连续批处理,与第一个思路相辅相成。传统服务器会将请求组成批次,等同一批次中的所有请求都完成后,才启动下一批:本可立即返回结果的短请求,却要无谓地等待仍在独占 GPU 的长请求。vLLM 则在每生成一个 token、每执行一步解码时,都会完全重新组织批次。一旦某个响应完成,它在批次中占据的位置就会立即分配给队列中等待的请求,GPU 也就不会因无意义的填充操作而空耗算力。与一次只为一个用户服务而设计的推理引擎相比,所观察到的吞吐量提升主要来自这种批次位置的持续复用与分页内存的结合。
- 共享前缀
- 当多个请求以完全相同的文本开头(系统提示词、共同使用的文档)时,对应内存页的内容只需计算一次,并在这些请求之间共享。这就是前缀缓存。
- 张量并行
- 当模型体积过大无法容纳在单张显卡上时,会自动分布在同一台机器的多个GPU上,仅需一个启动选项 --tensor-parallel-size 即可实现。
- 服务器端量化
- vLLM 支持 AWQ、GPTQ 和 FP8 格式,这些格式专为 GPU 批量计算设计。GGUF 仅限实验性支持。
- 与 OpenAI 兼容的 API
- 接口/v1/chat/completions和/v1/completions的响应方式与OpenAI完全一致:现有的应用只需更改基础URL,无需修改任何业务代码。
#vLLM 会将哪些内容加载到内存中
对于从 Ollama 过来并期望直接沿用原有习惯的用户来说,这是最常见的意外。Ollama 默认下载 4 位量化的 GGUF 文件,旨在适配消费级显卡。而 vLLM 默认加载 Hugging Face 上发布的原始权重,通常为 BF16(16 位精度),即每十亿模型参数约需 2 GB 内存。因此,同一模型在 vLLM 下的内存占用粗略来说是 Ollama 的三倍,这还未计入随进行中的对话而增长的 KV 缓存,这也解释了为何一张对 Ollama 来说足够的显卡,在不更换权重格式的情况下,用于 vLLM 时可能显得捉襟见肘。
| 模型 | BF16(vLLM 默认格式) | GGUF Q4_K_M(Ollama 默认格式) | 运行 BF16 模型所需的最低显卡配置 |
|---|---|---|---|
| Qwen 3 8B | 16 GB | 5 GB | RTX 4090 或 5090(24-32 GB) |
| Gemma 4 12B | 24 GB | 7 GB | RTX 5090(32 GB) |
| Qwen 3 14B | 28 GB | 9 GB | RTX 5090(32 GB),短上下文 |
| Mistral Small 3.2 24B | 48 GB | 14 GB | 2 × RTX 5090 (64 GB) |
| Qwen 3.8 27B | 54 GB | 16 GB | 80 GB 显存,或 2 块 RTX 5090(适用于短上下文) |
| Llama 3.3 70B | 140 GB | 40 GB | 2 × 80 GB 显卡 |
最常见的做法是为GPU提供已量化版本而非原始完整权重:一个4位的AWQ或GPTQ模型在内存占用上几乎与同等的GGUF Q4模型相当,而FP8格式在支持该格式的最新显卡上可将BF16大小大致减半。目前绝大多数真正流行的模型已在Hugging Face以这些格式发布,通常就在其正式发布当天。
#支持的硬件和系统
| 平台 | 状态 | 实际应用 |
|---|---|---|
| Linux + GPU NVIDIA (CUDA) | 主要目标 | 测试最充分的方案。计算能力至少为 7.0,也就是从 Volta 和 Turing(RTX 20)这几代开始。 |
| Linux + AMD GPU (ROCm) | 受支持 | 较新的 Instinct 和 Radeon 显卡。建议使用专用 Docker 镜像。 |
| Windows | 无原生版本 | 通过 WSL2 使用 NVIDIA GPU。 |
| 搭载 Apple Silicon 的 Mac | 自 2026 年 9 月 22 日起支持 GPU(独立插件) | 官方插件 vllm-metal 于 2026 年 9 月 22 日公布,将 vLLM 的调度器、KV 缓存分页机制和兼容 OpenAI 的服务器带到 Apple Silicon 上,并使用 MLX 和 Metal 执行计算。它需要与主包分开安装,推出时间尚短:迁移生产负载前,请先检查您的芯片是否兼容。 |
| 仅CPU(x86,ARM) | 受支持 | 适合测试集成,不适合提供模型推理服务。 |
#五分钟即可启动
在配备 NVIDIA GPU 且驱动程序已更新至最新版本的 Linux 机器上,只需在干净的 Python 环境中执行几行命令即可完成安装,无需事先编写复杂配置。vllm serve 命令会在首次启动时从 Hugging Face 下载指定模型,将其加载到内存中,然后立即在默认端口 8000 上开放 API,准备接收标准 OpenAI 格式的请求。
--max-model-len 选项最好从第一次启动起就显式设置:如果不设置,vLLM 会按照模型声明的最大上下文窗口确定 KV 缓存大小,较新的模型有时达到 128,000 个 token 或更多;如果显卡上的可用内存无法满足这一默认大小,vLLM 就会直接拒绝启动,这是首次尝试时的常见错误。正式的生产部署,包括 Docker 容器、调用身份验证、持续监控和逐步扩容,由另一篇更详细的指南专门介绍。
- vLLM 生产环境部署:Docker、安全、监控
- vLLM 官方文档
- PagedAttention论文(Kwon等,2023)
- 来源:vllm-metal 官方公告(2026年9月22日)
- 来源:vLLM项目官方GitHub仓库
#适合谁,不适合谁
| 您的情况 | vLLM ? | 为什么 |
|---|---|---|
| 您独自在个人电脑上与模型对话 | 否 | 单次请求无速度提升,且BF16模式下VRAM消耗为原来的三倍。 |
| 您拥有一台Mac | 也许可以,最近才有这种可能 | vllm-metal 插件(2026 年 9 月 22 日)通过 MLX/Metal 提供 GPU 支持,但仍是非常新的工具。截至 2026 年 9 月 28 日,MLX 和 llama.cpp 仍是经过验证的选择。 |
| 您有 8 到 12 GB 显存 | 很少 | 采用部分卸载到 CPU 的 Q4 GGUF 模型会更实用。 |
| 一支5到50人的团队共享一个模型 | 是 | 连续批处理可在单张 GPU 上为所有人服务。 |
| 应用程序在短时间内集中调用模型 | 是 | 请求队列、高吞吐量、标准 API。 |
| 您批量处理 10,000 份文档 | 是 | 这是吞吐量差异最显著的使用场景。 |
#FAQ
vLLM 比 Ollama 更快吗?+
vLLM 免费吗?+
vLLM 是否支持 Windows 或 Mac 系统?+
可以在 vLLM 中使用 GGUF 文件吗?+
使用 vLLM 时,一个 GPU 能为多少用户提供服务?+
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。