在实际项目中,若想将大模型作为标准 API 服务对外提供能力,而非仅在本机运行简单 Demo,vLLM 是绕不开的高性能推理框架选择。相比 Ollama 这类偏向“开箱即用”的本地体验工具,vLLM 更聚焦于服务端部署的核心需求,主打高吞吐推理、显存高效利用,且原生支持 OpenAI API 兼容,能无缝对接各类业务系统。

本文将以实战风格,完整演示 Linux 环境下基于 NVIDIA GPU 部署 vLLM + DeepSeek 的全流程,所有步骤均可直接复制运行,助力开发者快速搭建企业级的大模型推理服务。

✅ Linux 环境安装 vLLM

✅ NVIDIA GPU 环境适配

✅ 使用 ModelScope 加速模型下载

✅ 启动 DeepSeek 并对外提供 OpenAI 兼容 API 服务

📌 系列文章

👉 大模型本地部署实践(总览):为什么要做本地部署及方案选型
👉 如何在本地部署 DeepSeek?Ollama 一步跑通全流程实战
👉 Docker 部署 Ollama 全流程指南:支持 CPU/GPU、生产环境可用的工程化实践

一、vLLM 本地部署环境要求

vLLM 对运行环境有明确的适配要求,尤其在操作系统和硬件层面,需提前做好环境校验,避免部署过程中出现兼容问题。

1️⃣ 操作系统

  • 核心支持:Linux(Ubuntu、Debian、CentOS 等主流发行版)

  • ⚠️ 重要提示:vLLM 不支持 Windows 原生运行

若你是 Windows 用户,可通过以下两种方式适配:

  • 安装 WSL(Windows Subsystem for Linux),模拟 Linux 环境

  • 使用 Linux 版本的 Docker 容器运行 vLLM

2️⃣ Python 版本

支持 3.10 – 3.13 全系列,推荐使用 3.12,该版本兼具稳定性和对新特性的支持,与 vLLM 各依赖库兼容性最佳。

3️⃣ GPU 支持情况

vLLM 对不同硬件的支持度差异较大,本文示例基于NVIDIA GPU(官方最优支持),各硬件适配详情如下表:

设备 支持情况 备注
NVIDIA CUDA ✅ 官方原生支持 提供预编译 CUDA 12.8 二进制
AMD ROCm ✅ 兼容支持 建议使用 Docker 部署,需 ROCm 6.3+
Intel XPU ⚠️ 实验性支持 需手动从源码构建 vLLM
CPU ❌ 不推荐 推理速度极慢,无实际使用价值

二、直接安装部署(NVIDIA GPU 专属)

本章节所有操作均基于 Linux + NVIDIA GPU 环境,全程采用uv进行 Python 环境管理(相比传统 venv + pip,uv 安装速度更快、环境隔离更干净),一步到位完成部署。

2.1 前置依赖检查

vLLM 基于 CUDA 实现 GPU 加速,需提前确保系统已安装NVIDIA 显卡驱动CUDA 环境,二者版本需匹配。

在终端执行验证命令,检查环境是否可用:

nvidia-smi

若能正常输出显卡型号、CUDA 版本、显存使用等信息,说明前置环境已就绪;若提示命令未找到或无显卡信息,需先安装对应版本的 NVIDIA 驱动和 CUDA 工具包。

2.2 创建 Python 虚拟环境

推荐使用 uv 管理 Python 虚拟环境,其安装和使用流程简洁高效,官方安装文档:https://docs.astral.sh/uv/getting-started/installation/

步骤1:安装 uv

在 Linux 终端执行官方一键安装脚本:

curl -LsSf https://astral.sh/uv/install.sh | sh

安装完成后,重新打开终端,执行 uv -V 验证,输出版本号即安装成功。

步骤2:创建并激活 Python 3.12 环境
# 创建 Python 3.12 虚拟环境,--seed 初始化依赖配置
uv venv --python 3.12 --seed
# 激活虚拟环境
source .venv/bin/activate

激活成功后,终端前缀会显示 (.venv),表示已进入隔离的 Python 环境。

2.3 安装 vLLM

uv 会自动检测本机 CUDA 版本,匹配对应的 torch 版本,无需手动指定,执行以下命令一键安装 vLLM:

uv pip install vllm --torch-backend=auto

安装完成后,执行验证命令,检查 vLLM 版本:

python -c "import vllm; print(vllm.__version__)"

若终端正常输出版本号(如 0.5.0),说明 vLLM 安装成功。

2.4 使用 ModelScope 下载模型(国内环境必看)

vLLM 默认从 HuggingFace 下载模型,国内环境下网络速度较慢,推荐切换为 ModelScope 源,大幅提升模型下载速度,步骤如下:

# 安装 ModelScope 库
uv pip install modelscope
# 设置环境变量,让 vLLM 优先从 ModelScope 拉取模型
export VLLM_USE_MODELSCOPE=True

2.5 启动 DeepSeek 模型服务

完成以上配置后,直接执行命令启动 DeepSeek 模型服务,本文以 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 为例(轻量版,适合入门体验):

vllm serve "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B"

首次运行会自动下载模型文件,下载完成后,vLLM 会启动推理服务,**默认监听地址为 ** http://localhost:8000

当终端出现类似以下日志时,说明服务启动成功:

INFO 09-01 10:00:00 llm_engine.py:202] Initializing LLM engine with config: ...
INFO 09-01 10:00:10 server.py:687] Started server process [12345]
INFO 09-01 10:00:10 server.py:709] Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

三、测试 OpenAI 兼容接口

vLLM 原生提供 OpenAI API 兼容接口,这意味着所有适配 OpenAI 接口的业务系统、第三方工具(如 Cherry Studio、ChatGPT 客户端)都可以无缝对接本地部署的 DeepSeek 服务,无需修改代码。

3.1 curl 命令快速测试

在新的终端窗口,执行以下 curl 命令,向本地 vLLM 服务发送请求:

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": "1+1 等于多少?"}
    ]
  }'

3.2 验证返回结果

若服务正常响应,会返回标准的 OpenAI 格式 JSON 数据,包含模型回答、token 用量等信息,示例如下:

{
  "id": "chatcmpl-xxxx",
  "object": "chat.completion",
  "created": 1725122400,
  "model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "1+1等于2,这是基础的数学加法运算结果。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 15,
    "total_tokens": 25
  }
}

能正常返回该结果,说明你的 DeepSeek 模型服务已成功部署,且可对外提供 API 调用能力。

此时你已拥有一个本地可调用、后端系统可接入、OpenAI 协议兼容的大模型推理服务,可直接对接业务代码。

四、部署常见问题及解决方案

部署过程中,可能会遇到 CUDA 版本不匹配、显存不足、模型下载慢等问题,以下是高频问题的解决方案,覆盖90%的部署场景。

1️⃣ CUDA 版本不匹配

现象:启动 vLLM 时,报 torch/cuda 相关错误,如 CUDA version mismatchno kernel image is available for execution on the device

解决方式

  1. 升级 NVIDIA 显卡驱动,使其与系统安装的 CUDA 版本匹配;

  2. 若驱动无法升级,可手动安装匹配 CUDA 版本的 torch,再重新安装 vLLM:

    # 示例:安装 CUDA 12.1 版本的 torch
    uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    uv pip install vllm --torch-backend=auto
    

2️⃣ 显存不足

现象:启动模型时,报 out of memory 错误,终端提示显存占用超出显卡容量。

解决方式

  1. 限制 GPU 显存利用率,预留部分显存:

    vllm serve "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B" --gpu-memory-utilization 0.8
    

    0.8 表示使用 80% 的显存,可根据显卡容量调整)

  2. 调小模型最大上下文长度,减少显存占用:

    vllm serve "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B" --max-model-len 2048
    
  3. 更换更小参数量的 DeepSeek 模型版本。

3️⃣ 模型下载慢/下载中断

现象:执行启动命令后,模型下载速度极慢,或中途断开连接,提示下载失败。

解决方式

  1. 确保已配置 VLLM_USE_MODELSCOPE=True,使用国内源下载;

  2. 手动从 ModelScope 官网下载模型到本地,再指定本地模型路径启动服务:

    # 本地模型路径示例:/root/models/DeepSeek-R1-Distill-Qwen-1.5B
    vllm serve /root/models/DeepSeek-R1-Distill-Qwen-1.5B
    

五、总结

本文完成了 Linux + NVIDIA GPU 环境下 vLLM 部署 DeepSeek 大模型的全流程实战,核心收获包括:

  1. 完成了 vLLM 部署的基础环境准备,掌握了 NVIDIA GPU + CUDA 环境的校验方法;

  2. 学会使用 uv 进行 Python 环境管理,实现了快速、干净的依赖安装;

  3. 成功安装 vLLM 并适配国内环境,通过 ModelScope 加速模型下载;

  4. 启动了 DeepSeek 模型的 OpenAI 兼容 API 服务,实现了大模型的标准化对外调用。

vLLM 作为高性能的大模型推理框架,其高吞吐、高显存利用率的特性,使其成为私有化部署、企业级推理服务、高并发 API 化改造的首选方案。基于本文的基础部署,开发者还可以进一步探索 vLLM 的高级特性,如多模型部署、负载均衡、量化推理等,打造更贴合业务需求的大模型服务架构。

后续笔者将继续更新大模型部署实战系列,包括 vLLM Docker 容器化部署 vLLM + DeepSeek、业务系统对接本地大模型 API 等内容,欢迎点赞、收藏、关注,第一时间获取更新~

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐