vllm:一键部署大模型高速推理引擎
简介
vLLM一个开源的型(LLM)高速推理引擎伯克利分校的研究团队开发。它通过创新的 Paention 注意力算法 实现了,能显著提升模型推理速度,与 HuggingFace、ModelScope 模型无缝集成,大幅降低了大模型落地的硬件门槛和部署门槛。
核心特点
革命性性能优化
- • PagedAttention 技术:
借鉴操作系统内存分页机制,动态管理注意力键值缓存,减少显存碎片升 GPU 利用率。 - • 吞吐量碾压级优势
在 Llama-13B 等模型实测中,吞吐量比 HuggingFace Transformers 高 10-24倍,TGI 高 2.5倍 - • 零冗余优化
支持权重共享的多副本并行推理,避免重复加载模型参数。
开箱即用的便捷性
- • 支持主流开源模型
LLaMA、Mistral、Qwen、Baichuan、ChatGLM 等 50+ 模型即用。 - • 兼容 OpenAI API 接口
提供 /v1/completions、/v1/embeddings 等标准接口,无缝替代 ChatGPT 后端。 - • 连续批处理(Continuous Batching)
动态合并用户请求,显著提高 GPU 利用率。
快速开始
一、准备一台 GPU 实例
用以下链接注册可以免费使用4070算力(20 元算力,😊)
算多多GPU
登录后,在控制台选择"vLLM"镜像创建实例

二、运行 vllm 服务
登录到云实例
- 1. 等待实例状态变成"在线+无任务"(1-3分钟),点击快捷应用里的"JupyterLab",在新窗口打开 Web 服务

-
2. 新建一个 jupyter 终端窗口

提升权限
sudo -i
进入项目文件夹
cd /opt/vllm
激活 conda 环境
conda activate vllm
三、体验离线推理
执行推理脚本
镜像中已预置了一个离线推理脚本 /opt/vllm/test.py,可以直接执行进行推理体验:
python test.py
脚本默认使用 ModelScope 下载模型(防止科学上网不同),并且已预先下载了 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 模型,可以根据需求修改,具体内容如下:
# 设置环境变量,从魔搭下载模型
import os
os.environ['VLLM_USE_MODELSCOPE'] = 'True'
from vllm import LLM
llm = LLM(
model="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
trust_remote_code=True,
gpu_memory_utilization=0.7,
max_num_seqs=64,
)
output = llm.generate("我希望学习大模型,请给我指定一个学习路线?")
print(output)
推理结果
四、部署推理的 API 服务
1、运行服务
vllm 可以快速部署为 API 服务,快速向用户提供大模型推理服务,兼容 OpenAPI 的格式,使用非常简单。
在终端执行:
VLLM_USE_MODELSCOPE=True vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B \
--max-num-seqs 1 \
--gpu-memory-utilization 0.8 \
--enforce-eager \
--max-model-len 8192 \
--disable-log-stats
vLLM 服务启动参数说明表
| 参数/环境变量 | 含义 | 典型值说明 |
|---|---|---|
| VLLM_USE_MODELSCOPE=True | 指定从 ModelScope 模型库(而非 HuggingFace)加载模型 | 使用ModelScope |
| deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B | 加载的模型名称 | 轻量蒸馏版 DeepSeek 模型(基于 Qwen-1.5B) |
| --max-num-seqs 1 | 限制并发请求数 | 每次仅处理 1 个请求(严格防溢出) |
| --gpu-memory-utilization 0.8 | GPU 显存占用上限 | 最多使用 80% 显存(预留安全缓冲) |
| --enforce-eager | 禁用 PyTorch 图优化 | 强制 eager 模式(规避编译错误) |
| --max-model-len 8192 | 支持的最大上下文长度 | 允许处理最长 8192 tokens 的文本 |
| --disable-log-stats | 关闭性能统计日志 | 生产环境减少日志输出 |
2、本地测试服务的可用性
在终端执行:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
"messages": [
{"role": "user", "content": "解释神经网络的工作原理"}
],
"max_tokens": 100
}'
七、结语
至此,我们完成了利用云算力进行 vllm 离线推理和 API 部署的工作,更多功能可以参考 vllm官网:
vllm.hyper.ai/docs/