vllm-project/vllm

A high-throughput and memory-efficient inference and serving engine for LLMs

vLLM – 快速、灵活的 LLM 服务

它是什么 – vLLM 是一个开源的 Python 库,让你能以高速运行(服务)大型语言模型进行推理。它专注于在 GPU(和其他加速器)上榨出最大吞吐量,同时保持 API 简单。

主要功能

  • PagedAttention – 一个自定义的注意力内存管理器,可将 KV 缓存页面换入换出,让你能服务大量并发请求而不会耗尽 GPU 内存。
  • 连续批处理与分块预填充 – 新提示会即时加入同一个批次,减少空闲时间。
  • 量化支持 – FP8、INT8/4、GPTQ、AWQ、GGUF 等,让你能以较低精度的权重运行模型,以获得速度/大小优势。
  • 优化内核 – 集成 FlashAttention、FlashInfer、TRT-LLM、FlashMLA 和 Triton 内核,并通过 CUTLASS、TRT-LLM-GEN、CuTeDSL 提供自定义 GEMM/MoE 内核。
  • 推测性解码 – n-gram、后缀、EAGLE、DFlash 方法,可提前生成 token 以降低延迟。
  • 分布式推理 – 支持张量、流水线、数据、专家和上下文并行,适用于多 GPU/CPU 设置。
  • 广泛的模型覆盖 – 开箱即用,支持 200 多个 Hugging Face 模型:仅解码器 LLM(Llama、Qwen)、MoE 模型(Mixtral)、混合状态空间模型(Mamba)、多模态(LLaVA)、嵌入/检索模型等。
  • API 层 – 提供兼容 OpenAI 的 REST 端点、Anthropic 风格的消息 API、gRPC,以及流式 token 输出和工具调用支持。
  • 硬件灵活性 – 可在 NVIDIA、AMD、Intel GPU、CPU 上运行,并通过插件在 TPU、Gaudi、华为昇腾、Apple Silicon 等上运行。

典型工作流程

  1. 使用 uv pip install vllm(或 pip)安装,并可选择 vllm download-kernels 来获取预编译内核。
  2. 使用 vllm.Engine 或 CLI vllm serve <model> 从 Hugging Face 加载模型。
  3. 启动服务器(python -m vllm.entrypoints.openai.api_server),并通过兼容 OpenAI 的 HTTP API、gRPC 或 Python 客户端发送请求。
  4. 调整设置(批次大小、量化、推测性解码、LoRA 适配器)以达到所需的延迟-吞吐量权衡。

为何重要 – 在生产规模上服务 LLM 通常受到内存密集的 KV 缓存和每个 token 的内核开销所限制。vLLM 的分页、连续批处理和专门内核大幅提高了每个 GPU 每秒的 token 数,降低成本并实现实时应用。

资源 – 文档网站、快速入门指南、模型列表,以及关于 PagedAttention 技术的研究论文,都链接在 README 中。

相关

  • 项目
  • Dispatch
  • Dispatch
  • 项目
  • 项目