掌握VLLM部署技能,高效运行DeepSeek模型。核心内容:1. VLLM推理引擎的高性能优势与核心特性2. Ubuntu 22.04环境下的显卡驱动与CUDA安装3. Docker环境下VLLM的部署与运行流程
大语言模型的部署,如今已经成为AI开发者的一道必答题。而VLLM作为一款主打高性能、低延迟的推理引擎,最近在圈内热度很高。如果你手头有Ubuntu 22.04 + RTX 4090,又想在Docker里把DeepSeek模型跑起来,那这篇内容正好对路。
不绕弯子,直接开始。下面会从显卡驱动、CUDA、Docker环境的安装讲起,一直带到VLLM的完整运行流程。适合想快速上手、不打算折腾半天配置的开发者。
什么是 VLLM?

VLLM(Very Large Language Model Inference)是一个高性能、优化显存管理的大模型推理引擎。它的目标很明确:最大化推理吞吐量,同时降低显存消耗,让大语言模型在单卡或多GPU服务器上跑得更高效。
核心优势包括:
- 高吞吐量:支持批量推理,减少token生成延迟
- 高效KV缓存管理:优化GPU显存,支持更长的上下文
- 多GPU支持:Tensor Parallel加速推理
- OpenAI API兼容:可作为本地API服务器运行

环境准备

正式部署VLLM之前,需要确保机器环境可用,包括显卡驱动、CUDA、Docker等核心组件。下面一步步来。
01 确保系统环境
使用Ubuntu 22.04,建议先更新系统并重启:
sudo apt update && sudo apt upgrade -y
sudo reboot02 安装 NVIDIA 显卡驱动
在Ubuntu 22.04中,禁用原有的GPU驱动(尤其是默认的nouveau驱动或已安装的旧版NVIDIA驱动)很重要,以免与新驱动冲突。执行以下命令禁用原有驱动,然后重启系统。
sudo tee /etc/modprobe.d/blacklist-nouveau.conf < blacklist nouveau
options nouveau modeset=0
EOF
sudo update-initramfs -u重启后,安装推荐的NVIDIA驱动(以RTX 4090为例):
sudo apt install -y nvidia-driver-535安装完后再次重启:
sudo reboot运行nvidia-smi,如果正确显示显卡信息,说明驱动安装成功。
03 安装 CUDA
VLLM需要GPU加速,CUDA是核心库之一。这里使用CUDA 12.1(推荐版本):
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt update
sudo apt install -y cuda-toolkit-12-1验证CUDA安装:
nvcc --version04 安装 cuDNN
cuDNN是深度学习加速库,执行以下命令安装:
wget https://developer.download.nvidia.com/compute/cudnn/9.8.0/local_installers/cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.8.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn05 安装 Docker
执行下面命令安装Docker:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin启动Docker:
sudo systemctl start docker06 安装 NVIDIA Container Toolkit
NVIDIA Container Toolkit 让Docker容器可以直接访问GPU资源,无需繁琐配置。特别适用于深度学习、高性能计算(HPC)和图形渲染等任务。
安装命令如下:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit配置Docker并重启:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker07 拉取 VLLM 镜像
执行:
docker pull vllm/vllm-openai08 下载模型
本次使用模型:DeepSeek-R1-Distill-Qwen-7B 进行测试。模型下载页面:https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B。如果下载不了,可以使用镜像网站。也可直接通过命令行下载:
huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local-dir /root/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B模型存储路径可根据实际情况自定义。
运行模型

使用docker compose来运行VLLM镜像,配置文件如下:
version: '3.9'
services:
vllm_service:
image: vllm/vllm-openai:latest
container_name: vllm_deepseek_7b
restart: always
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
ports:
- "8000:8000"
volumes:
- /root/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B:/app/model
command: [
"--served-model-name", "DeepSeek-R1:7b",
"--trust-remote-code",
"--enforce-eager",
"--gpu-memory-utilization", "0.8",
"--model", "/app/model/",
"--host", "0.0.0.0",
"--port", "8000",
"--max-model-len", "10000",
"--api-key", "12345678",
"--tokenizer", "/app/model/"
]各参数说明:
--served-model-name "DeepSeek-R1:7b":设置模型名称。--trust-remote-code:允许容器信任远程代码执行。--enforce-eager:启用急切执行模式,便于调试。--gpu-memory-utilization "0.8":指定GPU显存使用比例(80%)。--model "/app/model/":模型文件路径,即挂载到容器中的目录。--host "0.0.0.0":接受所有IP地址的请求。--port "8000":服务监听端口。--max-model-len "10000":模型能处理的最大输入文本长度。--api-key "12345678":API访问密钥。--tokenizer "/app/model/":分词器路径。
其他参数可参考官方文档。
VLLM 在多张 GPU 上运行

如果需要跨多张GPU,只需在命令中加入 --tensor-parallel-size 参数指定GPU数量。例如,2张RTX 4090:
"--tensor-parallel-size", "2"VLLM会自动将计算任务拆分到多张显卡上。通过 nvidia-smi 可以观察显存占用情况。4张GPU时可将值设为4,以获得更高吞吐量。
KV 缓存优化

在Transformer结构中,每次生成新token时需要重新计算所有历史token,导致长文本推理越来越慢。KV缓存(Key-Value Cache)将计算过的Key和Value存储起来,避免重复计算,从而加速推理。
VLLM 的 Paged KV 缓存 技术相比传统方案更高效地管理显存,避免碎片化,提高推理效率。特点包括:
- 动态分配内存:仅在需要时分配缓存,减少显存占用
- 支持流式生成:适用于长文本对话,避免显存溢出
- 减少重复计算:加速推理,尤其适合长文本生成
VLLM默认开启KV缓存。如需手动调整缓存大小,可使用 --max-num-batched-tokens 参数。处理长文本较多时,建议调大该参数,但需注意GPU显存使用情况。
VLLM 常用参数简介

| 参数类别 | 关键参数 | 作用 |
|---|---|---|
| 核心设置 | --model、--tensor-parallel-size | 选择模型 & 多 GPU 并行 |
| 显存管理 | --gpu-memory-utilization、--dtype | 控制显存占用 |
| 推理优化 | --max-num-batched-tokens、--enable-kv-cache | 提高吞吐量 & KV 缓存优化 |
| API 服务器 | --port、--host | 控制 vLLM API 监听地址 |
| 输出控制 | --max-tokens、--temperature | 控制输出质量 |
如果遇到显存溢出(OOM)或推理速度慢的问题,可以尝试以下调整:
- 降低
--max-num-batched-tokens - 调整
--gpu-memory-utilization(一般设为0.85~0.95) - 使用
--dtype float16减少显存占用 - 在多GPU服务器上增加
--tensor-parallel-size
