使用vllm部署deepseek
收藏回复举报
使用vllm部署deepseek
发表于2025-11-23 14:39:11
0 查看

下面给出 2025-09 之后 在云服务器或本地 Linux 环境,用 vLLM 部署 DeepSeek 大模型的「通用最小可运行」教程,涵盖 pip 与 Docker 两种主流方式,按需二选一即可。


一、环境前置

  1. Linux 系统(Ubuntu 20.04+ 或 CentOS 7+)
  2. NVIDIA GPU + 驱动 535+ + CUDA 12.4±(可用 nvidia-smi 确认)
  3. Python 3.9-3.12(推荐 3.10)
  4. 内存 ≥ 32 GB(7B 模型)或 ≥ 80 GB(67B 模型)
  5. 磁盘 ≥ 模型文件大小 × 1.5(留余量)

二、方案 A:pip 安装(适合单节点/开发机)

1. 创建虚拟环境

conda create -n vllm python=3.10 -y
conda activate vllm

2. 安装 GPU 版 PyTorch(CUDA 12.4 示例)

pip install torch==2.5.1+cu124 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

3. 安装 vLLM(预编译 wheel,最快)

pip install vllm==0.7.2        # 与 CUDA 12.4 匹配

若需最新特性,可源码编译:

git clone https://github.com/vllm-project/vllm.git
cd vllm
export CUDA_HOME=/usr/local/cuda-12.4
pip install -e . --no-deps   # 生产环境常用

4. 下载 DeepSeek 权重(以 DeepSeek-R1-Distill-Qwen-7B 为例)

  • 有 HuggingFace 账号:
git-lfs clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B /data/deepseek-7b
  • 国内可用 ModelScope 镜像:
git-lfs clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git /data/deepseek-7b

5. 启动推理服务

vllm serve /data/deepseek-7b \
  --tensor-parallel-size 1 \
  --max-model-len 32768 \
  --dtype half \
  --host 0.0.0.0 \
  --port 8000

看到 Uvicorn running on http://0.0.0.0:8000 即成功 。

6. 测试推理

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
        "model": "/data/deepseek-7b",
        "messages": [{"role": "user", "content": "写一首 20 字的月亮诗"}],
        "stream": false
      }'

三、方案 B:Docker 一键启动(推荐生产/多卡)

1. 拉官方镜像(已集成 vLLM + CUDA)

docker pull vllm/vllm-openai:v0.7.2

2. 启动容器

docker run -d --name deepseek \
  --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \
  -v /data/deepseek-7b:/model \
  -p 8000:8000 \
  vllm/vllm-openai:v0.7.2 \
  python -m vllm.entrypoints.openai.api_server \
  --model /model \
  --tensor-parallel-size 1 \
  --max-model-len 32768 \
  --dtype half \
  --host 0.0.0.0 \
  --port 8000

多卡只需改 --tensor-parallel-size N

3. 同样用 curl 或 OpenAI 客户端调用即可。


四、常见坑与优化

问题快速处理
显存不足-- quantization gptq--dtype auto;减小 --max-model-len
ImportError libcudart确认宿主机驱动 ≥ 535,镜像 CUDA 与驱动兼容
端口被占-p 8001:8000--port 8001
并发延迟高调大 --max-num-batched-tokens / --max-num-seqs

五、一键验证

python - <<'PY'
import openai, os
client = openai.OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
resp = client.chat.completions.create(
    model="/data/deepseek-7b",
    messages=[{"role": "user", "content": "解释量子计算"}],
    stream=False)
print(resp.choices[0].message.content)
PY

🚩 一句话总结

装 CUDA → pip/容器装 vLLM → 下载 DeepSeek 权重 → vllm serve 启动 → 8000 端口推理,全程按上方命令复制即可跑通 DeepSeek 模型 。

我要发帖子