vLLM本地部署教程:高性能大模型推理引擎怎么搭

分类:AI开发框架 · 2026-08-01 · AI Tools Hub

什么是vLLM

vLLM是加州大学伯克利分校开发的高性能大语言模型推理和服务引擎。它的核心创新是PagedAttention技术,通过虚拟内存分页管理KV Cache,将GPU内存利用率从传统的60%提升到90%以上,单卡吞吐量提升2-4倍。

简单说:vLLM让你用最少的GPU跑最多的请求。它是目前生产环境部署大模型推理服务的事实标准。

vLLM核心优势

特性说明收益
PagedAttention分页管理KV CacheGPU内存利用率90%+
连续批处理请求即来即处理吞吐量提升2-4倍
推测解码小模型猜token大模型验证推理速度提升1.5-3倍
OpenAI兼容API直接兼容/v1/chat/completions已有代码零改动切换
广泛模型支持LLaMA/Qwen/Mistral/DeepSeek等主流开源模型全覆盖

一、环境准备

硬件要求

软件环境

# 检查CUDA版本
nvidia-smi

# 创建虚拟环境
conda create -n vllm python=3.10 -y
conda activate vllm

二、安装vLLM

# 方式1:pip安装(推荐)
pip install vllm

# 方式2:从源码编译(需要自定义CUDA算子时用)
git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -e .

# 验证安装
python -c "import vllm; print(vllm.__version__)"
提示:如果安装报错,通常是CUDA版本不匹配。确保你的CUDA版本与vLLM要求的版本一致。可以参考 Ollama本地部署教程 作为替代方案,Ollama对硬件要求更低。

三、启动推理服务

3.1 基础启动

# 启动OpenAI兼容API服务
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-7B-Instruct \
  --host 0.0.0.0 \
  --port 8000 \
  --tensor-parallel-size 1

参数说明:

3.2 多卡部署

# 2张GPU张量并行
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-72B-Instruct \
  --tensor-parallel-size 2 \
  --host 0.0.0.0 \
  --port 8000

3.3 量化部署(节省显存)

# AWQ量化模型
python -m vllm.entrypoints.openai.api_server \
  --model TheBloke/Llama-2-13B-AWQ \
  --quantization awq \
  --host 0.0.0.0 \
  --port 8000

四、调用API

vLLM启动后完全兼容OpenAI API格式,你的现有代码零改动即可切换:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="not-needed"  # vLLM默认不需要key
)

response = client.chat.completions.create(
    model="Qwen/Qwen2.5-7B-Instruct",
    messages=[
        {"role": "user", "content": "用Python写一个快速排序"}
    ],
    max_tokens=512,
    temperature=0.7
)

print(response.choices[0].message.content)

curl调用

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen2.5-7B-Instruct",
    "messages": [{"role": "user", "content": "你好"}],
    "max_tokens": 128
  }'

五、性能优化

5.1 启用推测解码

python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-7B-Instruct \
  --speculative-model Qwen/Qwen2.5-0.5B-Instruct \
  --num-speculative-tokens 5

用小模型(0.5B)先猜5个token,大模型验证,推理速度提升1.5-3倍。

5.2 调整GPU内存利用率

--gpu-memory-utilization 0.95  # 默认0.9,调到0.95榨干显存

5.3 最大序列长度

--max-model-len 32768  # 支持长文本,注意显存消耗

六、生产环境部署

6.1 Docker部署

docker run --gpus all \
  -p 8000:8000 \
  --shm-size 10gb \
  vllm/vllm-openai:latest \
  --model Qwen/Qwen2.5-7B-Instruct \
  --tensor-parallel-size 1

6.2 后台运行+日志

nohup python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-7B-Instruct \
  --host 0.0.0.0 --port 8000 \
  > vllm.log 2>&1 &

# 查看日志
tail -f vllm.log

七、模型推荐

模型显存需求适合场景
Qwen2.5-7B-Instruct16GB通用对话、中文场景
Qwen2.5-72B-Instruct140GB(2×80GB)高质量生成
DeepSeek-V3160GB(2×80GB)代码生成、推理
Llama-3.1-8B-Instruct16GB英文场景
Mistral-7B-Instruct-v0.316GB多语言

八、常见问题

Q: 显存不够怎么办?

三个方案:1)用量化模型(AWQ/GPTQ);2)减小--max-model-len;3)换小模型。也可以参考 Dify搭建RAG知识库 方案,用API代替本地部署。

Q: vLLM和Ollama有什么区别?

vLLM专注高性能推理服务,适合生产环境多用户并发;Ollama专注本地单用户使用,安装简单。企业部署用vLLM,个人使用用Ollama。

Q: 支持流式输出吗?

支持,API请求加"stream": true即可。

📚 常见问题

vLLM本地部署是什么?

vLLM是加州大学伯克利分校开发的高性能大语言模型推理和服务引擎。它的核心创新是PagedAttention技术,通过虚拟内存分页管理KV Cache,将GPU内存利用率从传统的60%提升到90%以上,单卡吞吐量提升2-4倍。

如何上手vLLM本地部署?

--model:HuggingFace模型ID或本地模型路径