vLLM-型高吞吐量推理引擎


vLLM 完整介绍

一、什么是 vLLM

vLLM 是加州伯克利团队开源的大模型高吞吐量推理引擎,核心目标:解决原生 PyTorch 推理慢、并发低、显存占用高的问题,主打离线批量推理、在线API服务、本地部署LLM。 全称:very Large Language Model inference engine Github:https://github.com/vllm-project/vllm

核心优势

  1. PagedAttention(分页注意力) 独创显存管理算法,类比操作系统虚拟内存分页,解决传统推理 KV Cache 碎片化问题:
    • 显存利用率提升 2~4 倍
    • 并发请求吞吐量提升数十倍
    • 超长上下文(32k/128k)推理显存占用大幅降低
  2. 兼容主流模型 LLaMA、Qwen、GLM、Mistral、GPT-NeoX、Mixtral、Phi、Yi、Baichuan 等全部支持;支持 FP16/BF16/INT4/INT8/GPTQ/AWQ 量化。
  3. 开箱即用服务 内置兼容 OpenAI 接口的 HTTP 服务,可直接对接 LangChain、LlamaIndex、OpenAI SDK。
  4. 分布式支持 张量并行(单卡多GPU)、流水线并行(多机分布式),支持超大模型多卡拆分加载。

二、安装方式

1. 基础 pip 安装(CUDA GPU)

# 稳定版
pip install vllm

# 最新开发版
pip install git+https://github.com/vllm-project/vllm

依赖 CUDA 11.8 / 12.1,Windows 仅支持 WSL2,原生 Windows 暂不官方支持。

2. Docker 部署

官方提供预构建镜像,避免环境冲突:

docker run --gpus all -p 8000:8000 vllm/vllm-openai:latest

三、常用启动命令(OpenAI 兼容API服务)

最简启动(本地单卡)

python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2-7B-Instruct \
  --served-model-name qwen2-7b \
  --port 8000 \
  --host 0.0.0.0

关键常用参数

--model                模型路径/Huggingface名称
--tensor-parallel-size 多卡张量并行4卡则设4
--quantization gptq    加载GPTQ量化模型
--dtype auto           精度fp16/bf16/float32
--max-model-len 32768 最大上下文长度
--gpu-memory-utilization 0.9 显存占用上限0.9
--enforce-eager        关闭CUDA graph解决部分模型报错
--trust-remote-code    加载自定义架构模型如QwenGLM

四、调用示例(OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="dummy" # vllm无需真实key,填任意字符串
)

resp = client.chat.completions.create(
    model="qwen2-7b",
    messages=[{"role": "user", "content": "介绍vLLM"}]
)
print(resp.choices[0].message.content)

五、两种运行模式

  1. 离线批量推理 脚本批量处理大量文本,不需要起API服务,适合数据集生成、数据清洗: ```python from vllm import LLM, SamplingParams

    llm = LLM(model="Qwen/Qwen2-7B-Instruct") sampling_params = SamplingParams(temperature=0.7, max_tokens=512) outputs = llm.generate(["你好"], sampling_params=sampling_params) ``` 2. 在线API服务 对外提供HTTP接口,支持多用户并发对话,生产环境首选。

六、适用场景

  1. 企业私有大模型在线服务(替代 transformers 原生推理)
  2. 数据批量生成、SFT 训练数据构造
  3. 高并发对话机器人、知识库问答后端
  4. 多卡分布式部署 70B/120B 超大开源模型

七、对比其他推理框架

框架 核心亮点 短板
vLLM PagedAttention,并发吞吐量最强,OpenAI接口友好 仅GPU,CPU推理支持弱
TensorRT-LLM NVIDIA硬件极致优化,低延迟 生态封闭,配置复杂
Text Generation Inference(TGI) 完整生产运维、日志监控 显存优化弱于vLLM
llama.cpp 支持CPU/移动端量化 并发性能差,不适合高并发服务

八、常见问题

  1. 显存不足 开启量化 --quantization awq、降低 max-model-len、调高张量并行多卡拆分。
  2. 模型加载报错 添加 --trust-remote-code,安装对应模型依赖。
  3. 吞吐量上不去 调高 gpu-memory-utilization,适当增大 max-model-len 充分利用KV缓存。

需要我给你一份7B/70B多卡分布式启动脚本,或者可直接运行的批量生成离线推理完整代码吗?