vLLM 部署教程:让开源大模型提供高并发 API
vLLM 部署教程:用 vLLM 把开源大模型部署成高性能 API 服务,支持高并发、流式输出和 OpenAI 兼容接口,适合生产环境使用。
这篇教程适合你吗
你在本地用 Ollama 跑模型,效果不错,但发现它只能同时处理一个请求——多人用的时候排队等很久。vLLM 就是解决这个问题的:它是一个专为生产环境优化的大模型推理引擎,支持高并发、连续批处理,吞吐量远超 Ollama。
前置知识:了解基本的大模型部署概念。建议先看 Ollama 本地部署教程。 最终产物:一个用 vLLM 部署的、支持高并发的 OpenAI 兼容 API 服务。环境假设
- Linux 系统(推荐 Ubuntu 22.04)
- NVIDIA GPU(至少 16GB 显存)
- CUDA 11.8+
- Python 3.9+
> 合规提醒:下载开源模型权重时,请遵守模型的许可协议。部分模型(如 Llama)有特殊的商用限制。从 Hugging Face 下载模型时请遵守其服务条款。
vLLM 的核心优势
| 特性 | Ollama | vLLM |
|---|---|---|
| 部署难度 | 极简 | 中等 |
| 并发能力 | 单请求 | 高并发 |
| 吞吐量 | 基准 | 5-20x |
| 生产适用 | 开发测试 | 生产环境 |
| 内存优化 | 基础 | PagedAttention |
第一步:安装 vLLM
pip install vllm
如果遇到 CUDA 版本问题,参考官方文档选择对应的安装方式。
第二步:启动 API 服务
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000
这会:
- 下载模型(首次运行,后续会缓存)
- 启动 OpenAI 兼容 API 服务
- 监听 8000 端口
启动完成后,你会看到类似 Uvicorn running on http://0.0.0.0:8000 的日志。
第三步:验证服务
# 查看可用模型
curl http://localhost:8000/v1/models
# 测试对话
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [{"role": "user", "content": "你好"}]
}'
第四步:用 OpenAI SDK 调用
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="Qwen/Qwen2.5-7B-Instruct",
messages=[
{"role": "system", "content": "你是一个有用的助手"},
{"role": "user", "content": "用 Python 实现一个二分查找算法"}
],
max_tokens=1024
)
print(response.choices[0].message.content)
常用启动参数
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 1 \ # GPU 数量(多卡并行)
--max-model-len 8192 \ # 最大上下文长度
--gpu-memory-utilization 0.9 \ # GPU 显存使用比例
--enforce-eager \ # 禁用 CUDA Graph(调试用)
--dtype auto # 数据类型:auto/half/float16/bfloat16
多卡部署
如果有 2 张 GPU,用 --tensor-parallel-size 2:
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-72B-Instruct \
--tensor-parallel-size 2 \
--host 0.0.0.0 \
--port 8000
vLLM 会自动把模型切分到多张卡上。
流式输出
stream = client.chat.completions.create(
model="Qwen/Qwen2.5-7B-Instruct",
messages=[{"role": "user", "content": "写一首关于 AI 的诗"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
性能调优
批处理大小
vLLM 的连续批处理(continuous batching)会自动管理请求队列。你可以通过 --max-num-seqs 控制最大并发数:
--max-num-seqs 64 # 最多同时处理 64 个请求
显存优化
如果显存不够,可以:
- 减小
--max-model-len(减少最大上下文长度) - 降低
--gpu-memory-utilization - 使用量化版本(如 AWQ、GPTQ)
# 使用 AWQ 量化模型
--model Qwen/Qwen2.5-7B-Instruct-AWQ \
--quantization awq
与 Ollama 对比
| 场景 | 推荐 |
|---|---|
| 个人开发测试 | Ollama(简单) |
| 单人日常使用 | Ollama(够用) |
| 团队内部 API | vLLM(需要并发) |
| 对外提供服务 | vLLM(生产级) |
| 需要最简部署 | Ollama |
常见问题与排错
CUDA out of memory
原因:模型太大,显存不够。 解决:用更小的模型;使用量化版本;减小--max-model-len;降低 --gpu-memory-utilization。
模型下载失败
原因:网络问题导致无法连接 Hugging Face。 解决:设置 Hugging Face 镜像源:export HF_ENDPOINT=https://hf-mirror.com。如遇持续网络问题,可参考海外 AI 工具使用指南。
响应速度慢
原因:并发请求太多,或模型太大。 解决:增加 GPU;使用更小的模型;使用量化版本;调整--max-num-seqs。
进阶学习
- 想用更简单的方式部署?看 Ollama 本地部署教程
- 想了解 OpenAI 兼容接口?看 OpenAI 兼容 API 搭建教程
- 想了解开源大模型选择?看 开源大模型是什么
- 想微调模型?看 LoRA 微调教程
总结
- vLLM 是生产级的大模型推理引擎,支持高并发和连续批处理
- 内置 OpenAI 兼容 API,可以用 OpenAI SDK 直接调用
- 适合需要同时服务多个用户的场景
- 通过量化和多卡部署可以支持更大的模型
---
本文最后更新于 2026-07-27。vLLM 版本和功能可能更新,请以官方文档为准。常见问题
相关推荐
Ollama 本地部署大模型:从安装到实战
如何在本地部署大语言模型?本文教你使用 Ollama 在本地运行 Llama、Qwen、Mistral 等开源模型,含安装、配置、API 调用和常见问题。
本地部署大模型:Ollama + Open WebUI 指南
如何在本地部署大语言模型?本文教你使用 Ollama + Open WebUI 搭建私有 AI 助手,含安装配置、模型选择、API 集成和性能优化。
OpenAI 兼容 API 搭建教程:让本地模型接入现有应用
OpenAI 兼容 API 搭建教程:用 Ollama 或 LM Studio 把本地部署的大模型伪装成 OpenAI 接口,让依赖 OpenAI SDK 的应用无需修改代码即可切换到本地模型。
开源大模型是什么?和闭源商业模型怎么选
开源大模型是什么?解释开源大模型的含义、与闭源模型的区别,以及如何根据需求选择合适的模型。
获取更多 AI 内容
订阅更新,第一时间获取新教程和工具推荐。