进阶 11 分钟推理

vLLM:是什么,适用于谁,以及在什么情况下使用 ?

直接回答

vLLM 是一个开源推理引擎,2023 年诞生于伯克利,通过兼容 OpenAI 的 API,在 GPU 上运行 LLM 并同时为多个用户提供服务。借助 PagedAttention 和连续批处理,一旦出现并发请求,其总吞吐量就能达到传统服务器的数倍。它不会让单个对话更快:如果您独自在自己的电脑上使用,Ollama 或 LM Studio 仍是合适的选择。

vLLM 是一个开源推理引擎,专为在 GPU 上运行 LLM、通过兼容 OpenAI 的 API 同时为多个用户提供服务而设计。截至 2026 年 9 月 20 日,它是向团队或应用程序提供开放权重模型服务的标杆方案。对于在个人电脑上使用 Ollama 的场景,它并不是竞争工具:两者解决的问题不同。本页介绍 vLLM 的功能、使用要求,以及如何判断您是否需要它。

作者: Mohamed Meguedmi·更新于 2026-09-28·已在 Windows、macOS 和 Linux 上测试

#用三句话介绍 vLLM

vLLM 是一个 Python 库,也是一款推理服务器,于 2023 年诞生于加州大学伯克利分校的 Sky Computing Lab,采用 Apache 2.0 许可证发布。这是一种宽松的许可证,允许不受限制的商业再利用。它将 Hugging Face 格式的模型(通常为 safetensors)加载到一个或多个 GPU 上,并通过兼容 OpenAI 的 HTTP API 提供服务。因此,任何已针对 OpenAI API 编写的客户端都可以接入,无需修改任何应用代码,只需更改基础 URL。它的存在意义可以概括为一个词:吞吐量,即当十个、五十个或两百个不同请求同时到达,且都需要迅速得到回答时,GPU 每秒生成的 token 总数。

i
要点
Ollama 和 LM Studio 优化了个人在本地设备上的使用体验。vLLM 优化了多个请求共享一个 GPU 的运行效率。如果你独自面对屏幕,vLLM 并不会让你的响应速度更快。

#vLLM解决的问题

本地 AI 套件

只需 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 时可能显得捉襟见肘。

仅模型权重,不含KV缓存 · 根据QuelLLM目录计算 · 20/09/2026
模型BF16(vLLM 默认格式)GGUF Q4_K_M(Ollama 默认格式)运行 BF16 模型所需的最低显卡配置
Qwen 3 8B16 GB5 GBRTX 4090 或 5090(24-32 GB)
Gemma 4 12B24 GB7 GBRTX 5090(32 GB)
Qwen 3 14B28 GB9 GBRTX 5090(32 GB),短上下文
Mistral Small 3.2 24B48 GB14 GB2 × RTX 5090 (64 GB)
Qwen 3.8 27B54 GB16 GB80 GB 显存,或 2 块 RTX 5090(适用于短上下文)
Llama 3.3 70B140 GB40 GB2 × 80 GB 显卡

最常见的做法是为GPU提供已量化版本而非原始完整权重:一个4位的AWQ或GPTQ模型在内存占用上几乎与同等的GGUF Q4模型相当,而FP8格式在支持该格式的最新显卡上可将BF16大小大致减半。目前绝大多数真正流行的模型已在Hugging Face以这些格式发布,通常就在其正式发布当天。

!
「vLLM占用了我全部显存」
这完全是有意设计的行为,不是程序错误,也不是内存泄漏。启动时,vLLM 默认会预留 GPU 总内存的 90%,对应选项 --gpu-memory-utilization 的默认值 0.9:先存放模型权重,再将这部分预留空间的全部剩余容量用于 KV 缓存页。可用的缓存页越多,vLLM 就能在不拒绝请求的情况下同时处理更多请求。如果这台机器还用于其他用途,例如玩游戏或运行其他服务,请相应调低这个值。

#支持的硬件和系统

根据项目文档,截至 2026年9月20日的支持情况
平台状态实际应用
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 格式的请求。

安装模型并提供推理服务
python -m venv vllm-env && source vllm-env/bin/activate
pip install vllm

vllm serve Qwen/Qwen3-8B --max-model-len 8192
像调用 OpenAI 的 API 一样调用此 API
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "Qwen/Qwen3-8B", "messages": [{"role": "user", "content": "Bonjour"}]}'

--max-model-len 选项最好从第一次启动起就显式设置:如果不设置,vLLM 会按照模型声明的最大上下文窗口确定 KV 缓存大小,较新的模型有时达到 128,000 个 token 或更多;如果显卡上的可用内存无法满足这一默认大小,vLLM 就会直接拒绝启动,这是首次尝试时的常见错误。正式的生产部署,包括 Docker 容器、调用身份验证、持续监控和逐步扩容,由另一篇更详细的指南专门介绍。

#适合谁,不适合谁

您的情况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 更快吗?+
对于单用户场景,不成立:单个请求的生成速度主要取决于 GPU 内存带宽,两种情况下的带宽是相同的。差异出现在并发场景中。当多个请求同时到达时,vLLM 会批量处理这些请求,其总吞吐量远超为单用户设计的服务器。
vLLM 免费吗?+
是的,完全可以。该项目采用 Apache 2.0 开源许可,这是一种宽松许可,允许企业商业使用,且无需支付任何许可费用或版税;某些模型许可则不同。实际成本仅包括已有硬件,或向云服务商租用 GPU 来运行服务器的费用。
vLLM 是否支持 Windows 或 Mac 系统?+
Windows 上无法原生运行:官方项目没有 Windows 版本,也没有相关的公开路线图,必须在配备 NVIDIA GPU 的机器上通过 WSL2 运行;虽有一些社区分支,但均非官方。在 Mac 上,名为 vllm-metal 的官方插件于 2026 年 9 月 22 日宣布推出,终于通过 MLX 和 Metal 提供了 GPU 加速;在此之前只能使用 CPU,因此在这一平台上,相比 Ollama 或 MLX,使用 vLLM 毫无意义。
可以在 vLLM 中使用 GGUF 文件吗?+
技术上已有支持,但仍处于实验阶段,性能明显不如原生方式。vLLM 从一开始就是为 safetensors 格式的 Hugging Face 模型权重,以及面向 GPU 批量计算设计的 AWQ、GPTQ 和 FP8 量化方案而设计的。如果您一定要使用 GGUF 格式,llama.cpp 及其服务器 llama-server 仍是最适合这一特定格式、优化也最充分的工具。
使用 vLLM 时,一个 GPU 能为多少用户提供服务?+
这取决于加载权重后留给 KV 缓存的显存容量,以及对话长度。在一张 24 GB 显卡上运行量化后的 8B 模型,同时支持数十个短对话是现实可行的。唯一可靠的答案来自使用您自己的提示词进行的负载测试。

这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。