vLLM 0.18 正式发布!这 8 大新功能太香了,手把手教你部署
兄弟们,vLLM 又双叒叕更新了!这次 0.18 版本真的有点东西,我连夜给大家整理了一波

前言
各位老铁们,我是你们的技术搬运工。就在昨天(3 月 20 日),vLLM 团队正式发布了 v0.18.0 版本!
说实话,这次更新我是真的有点兴奋。为啥?因为这次加的 8 个大功能,个个都是干货,全是咱们实际部署时最需要的东西。
废话不多说,咱们直接开整!
🎯 这次更新了啥?8 大亮点速览
1️⃣ gRPC 支持来了!
之前一直有人问:vLLM 能不能用 gRPC 啊?HTTP 太慢了!
现在好了,0.18 版本直接给你安排上了。加个 --grpc 参数就能启用 gRPC 服务,性能提升不是一点半点。
# 之前只能这样
python -m vllm.entrypoints.openai.api_server --model xxx
# 现在可以这样了
python -m vllm.entrypoints.openai.api_server --model xxx --grpc
2️⃣ GPU -less 渲染服务
这个功能我真的要吹爆!简单说就是:
- 把多模态预处理(比如图片解码、音频提取)从 GPU 上分离出来
- 用 CPU 单独搞个渲染服务
- GPU 专心搞推理,互不干扰
啥意思呢?就是你不用再担心图片预处理占用 GPU 显存了,小显存显卡的福音啊!
# 启动 GPU-less 渲染服务
vllm launch render
3️⃣ NGram GPU 推测解码
之前 NGram 推测解码只能跑在 CPU 上,慢得要死。现在直接上 GPU 了,还能配合异步调度器使用。
说人话就是:推测解码的开销大幅降低,推理速度又能提一截。
4️⃣ KV Cache 智能卸载
这个功能厉害了。之前 KV Cache 卸载是啥?就是把不用的缓存扔到 CPU 内存去,腾出 GPU 显存。
但之前是傻扔,现在变聪明了:
- 只卸载那些不常用的块
- 常用的块留在 GPU 上
- 支持多个 KV 组分别管理
5️⃣ Elastic EP 专家并行里程碑 2
搞 MoE 模型的兄弟们注意了!这次 NIXL-EP 集成,支持动态 GPU 扩展了。
说人话:你的 MoE 模型可以根据负载自动调整使用的 GPU 数量,省钱了有没有!
# 启用 EP 权重过滤,加载更快
--enable-ep-weight-filter
6️⃣ FlashInfer 0.6.6 更新
这个不用多说了吧?FlashInfer 每次更新都是性能提升。这次 0.6.6 版本修复了一堆问题,稳定性又上了一个台阶。
7️⃣ Responses API 支持流式工具调用
之前用 Responses API 调用工具/函数,只能等全部生成完才能拿到结果。现在支持流式了,边生成边返回。
8️⃣ Ray 不再是默认依赖
这个对大多数人来说是好事。之前装个 vLLM,顺带装一堆 Ray 的依赖,动不动就几百兆。
现在 Ray 被移除了,需要的话自己装:
pip install ray
⚠️ 已知问题
先给大家避个坑,官方提到了两个已知问题:
-
Qwen3.5 + FP8 KV Cache + B200 GPU = 精度下降 - 如果你在用这个组合,注意一下输出质量
-
CUBLAS_STATUS_INVALID_VALUE 错误 - 之前 v0.17.0 的 workaround 可以不用了 - 重新安装 PyTorch 2.10.0 就行(官方修复了)
💻 手把手教你部署 vLLM 0.18
好了,重头戏来了!下面是详细的安装部署教程,跟着步骤走,保你一次成功。
方式一:pip 安装(最常用)
第 1 步:准备环境
先整个虚拟环境,别跟系统 Python 混在一起:
# 创建虚拟环境
python3 -m venv vllm-env
# 激活环境
source vllm-env/bin/activate
# 升级 pip(一定要做,不然可能安装失败)
pip install --upgrade pip
第 2 步:安装 vLLM
根据你的 CUDA 版本选择:
CUDA 12.1(推荐):
pip install vllm==0.18.0
CUDA 12.4:
pip install vllm==0.18.0 --extra-index-url https://download.pytorch.org/whl/cu124
CPU 版本(就玩玩):
pip install vllm-cpu==0.18.0
第 3 步:验证安装
python -c "import vllm; print(f'vLLM 版本:{vllm.__version__}')"
看到输出版本号就对了:
vLLM 版本:0.18.0
方式二:Docker 部署(生产环境推荐)
第 1 步:拉取镜像
docker pull vllm/vllm-openai:v0.18.0
第 2 步:运行容器
单卡部署:
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-p 8000:8000 \
--env "HUGGING_FACE_HUB_TOKEN=你的 token" \
vllm/vllm-openai:v0.18.0 \
--model Qwen/Qwen2.5-7B-Instruct \
--served-model-name qwen-7b
多卡部署(比如 4 卡):
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-p 8000:8000 \
--env "HUGGING_FACE_HUB_TOKEN=你的 token" \
vllm/vllm-openai:v0.18.0 \
--model Qwen/Qwen2.5-72B-Instruct \
--tensor-parallel-size 4 \
--served-model-name qwen-72b
方式三:源码安装(开发者)
# 克隆仓库
git clone https://github.com/vllm-project/vllm.git
cd vllm
git checkout v0.18.0
# 安装依赖
pip install -r requirements.txt
# 编译安装
pip install -e .
🔧 常用模型部署示例
示例 1:部署 Qwen2.5-7B(单卡)
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--gpu-memory-utilization 0.9 \
--max-model-len 4096
示例 2:部署 DeepSeek-V3(8 卡)
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-V3 \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 8 \
--gpu-memory-utilization 0.95 \
--max-model-len 8192
示例 3:启用 gRPC 服务(新功能)
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--grpc
示例 4:GPU-less 渲染(多模态专用)
# 先启动渲染服务
vllm launch render
# 再启动推理服务
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-VL-7B-Instruct \
--host 0.0.0.0 \
--port 8000
📝 API 调用示例
用 curl 调用
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-7b",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "你好,介绍一下你自己"}
],
"max_tokens": 512,
"temperature": 0.7
}'
Python 代码调用
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="sk-xxx" # 随便填,本地不用验证
)
response = client.chat.completions.create(
model="qwen-7b",
messages=[
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "你好,介绍一下你自己"}
],
max_tokens=512,
temperature=0.7
)
print(response.choices[0].message.content)
流式调用
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="sk-xxx")
response = client.chat.completions.create(
model="qwen-7b",
messages=[
{"role": "user", "content": "写一首关于春天的诗"}
],
max_tokens=512,
stream=True # 开启流式
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
⚙️ 性能调优参数
下面是我平时常用的调优参数,照着改就行:
显存优化
# 显存使用比例(默认 0.9,可以调到 0.95)
--gpu-memory-utilization 0.95
# 交换空间大小(GB,防止 OOM)
--swap-space 4
# 最大模型长度
--max-model-len 4096
批处理优化
# 最大批处理 token 数
--max-num-batched-tokens 8192
# 最大并发请求数
--max-num-seqs 256
缓存优化
# 启用前缀缓存
--enable-prefix-caching
# 缓存块大小
--block-size 16
🐛 常见问题
问题 1:CUDA Out of Memory
解决方法:
# 降低显存使用
--gpu-memory-utilization 0.8
# 减小模型长度
--max-model-len 2048
# 或者上量化
--quantization fp8
问题 2:模型下载慢
解决方法:
# 使用镜像站
export HF_ENDPOINT=https://hf-mirror.com
# 或者手动下载后指定本地路径
--model /path/to/local/model
问题 3:推理速度慢
优化建议:
# 启用 CUDA Graph
--enable-cuda-graph
# 增大批处理
--max-num-batched-tokens 16384
# 启用推测解码
--speculative-model Qwen/Qwen2.5-1.5B-Instruct
📊 总结一下
vLLM 0.18 这次更新我是真的满意。8 个大功能,个个实用:
- ✅ gRPC 支持 - 性能提升
- ✅ GPU-less 渲染 - 显存解放
- ✅ NGram GPU 推测 - 速度更快
- ✅ 智能 KV 卸载 - 显存管理更聪明
- ✅ Elastic EP - MoE 模型更灵活
- ✅ FlashInfer 更新 - 稳定性提升
- ✅ 流式工具调用 - API 更好用
- ✅ 移除 Ray 依赖 - 安装包更小
我的建议:
- 生产环境直接用 Docker 部署
- 开发测试用 pip 安装就行
- 小显存显卡试试 GPU-less 渲染
- MoE 模型一定要开 Elastic EP
📚 相关文章推荐
你可能还想看:
📢 关注「Geek 运维」
了解更多最新 AI 技术分享!

长按识别图中二维码,关注「Geek 运维」公众号,获取:
- 最新 AI 技术资讯
- 实用技术教程和工具
- vLLM/OpenClaw 使用指南
- 运维开发最佳实践
- 第一手技术资源分享
评论区