vLLM:高吞吐推理服务

vLLM 是一个高性能的大语言模型推理与服务框架,由 UC Berkeley 等团队提出,以 PagedAttention 技术显著提升显存利用率与并发吞吐。它把开源模型包装成可水平扩展的 API 服务,常用于自托管推理后端。

它对常用开源模型都有良好支持,并通过量化与张量并行进一步压榨硬件利用率;接口兼容 OpenAI 协议,前端代码可无缝迁移。大规模部署时还能以多副本方式横向扩展,稳定承接线上流量,降低单位推理成本。

是什么

vLLM 的核心价值在「高效服务」:

  • PagedAttention:像操作系统分页一样管理注意力缓存,减少碎片。
  • 连续批处理:动态合并到达的请求,提高 GPU 占用。
  • OpenAI 兼容接口:可直接替换既有客户端接入方式。

为什么快

传统推理为每个请求预留连续显存,碎片严重、并发受限。vLLM 把键值缓存分页管理,显存利用更紧凑,相同硬件下能承载更多并发,延迟也更稳。

怎么用

最简单的方式是启动一个服务进程:

vllm serve meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 8000

启动后,用兼容 OpenAI 的客户端请求即可:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
print(client.chat.completions.create(
    model="meta-llama/Llama-3.1-8B-Instruct",
    messages=[{"role": "user", "content": "你好"}],
).choices[0].message.content)

注意点

  • 显存仍决定能加载的模型规模,大模型需多卡或量化。
  • 服务暴露在网络上须加鉴权,避免被滥用。
  • 不同版本命令与参数有差异,以官方文档为准。

小结

vLLM 用 PagedAttention 与连续批处理把开源模型的推理吞吐推高,是自托管服务的高性能选择。它降低单位成本,但部署仍需关注显存、鉴权与版本差异。

参考与延伸阅读

本文累计阅读