跳转到正文
技术教程·

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 的核心优势

特性OllamavLLM
部署难度极简中等
并发能力单请求高并发
吞吐量基准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(够用)
团队内部 APIvLLM(需要并发)
对外提供服务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

进阶学习

总结

  • vLLM 是生产级的大模型推理引擎,支持高并发和连续批处理
  • 内置 OpenAI 兼容 API,可以用 OpenAI SDK 直接调用
  • 适合需要同时服务多个用户的场景
  • 通过量化和多卡部署可以支持更大的模型

---

本文最后更新于 2026-07-27。vLLM 版本和功能可能更新,请以官方文档为准。

常见问题

相关推荐

获取更多 AI 内容

订阅更新,第一时间获取新教程和工具推荐。