菜单

Administrator
发布于 2025-02-25 / 23 阅读
0

vLLM 部署指南 - DeepSeek-R1-Distill-Qwen-7B

环境准备

1. 依赖管理

依赖组件 版本要求 参考地址
PyTorch 需对齐 CUDA 版本 官方推荐版本
CUDA Toolkit 需要对应NVIDIA Driver版本 CUDA 版本说明
NVIDIA Driver 建议>=535,推荐>=550 驱动兼容表

2. 创建Conda 环境

# Miniconda 安装(若未安装)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 创建专用环境
conda create -n deepseek-r1 python=3.12 -y
conda activate deepseek-r1
nvidia-smi  # 验证 GPU 可见性

模型部署

1. 下载模型

# 全局配置(建议),8并发进行下载
git config --global lfs.concurrenttransfers 8
# 高效下载 (使用 LFS 跳过小文件校验)
# linux
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
# windows
SET GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
# 选择性拉取大文件
git lfs pull --include "*.safetensors,*.bin,*.model"

空间优化提示
模型目录中的 .git 文件夹会占用较大空间,单次下载完成后入确定不需要更新模型可执行:

rm -rf .git  # Linux/Mac
rd /s/q .git  # Windows

vLLM 安装方案

vLLM官网

vLLM· GitHub仓库

1. 标准安装

# 官方推荐
pip install vllm

2. 离线安装

# 从 github-release 页面下载对应版本的 .whl 文件
pip install vllm-0.6.1+cu121-cp310-cp310-linux_x86_64.whl

3. 源码编译

git clone https://github.com/vllm-project/vllm
cd vllm && pip install -e .  # 可编辑模式安装

服务端启动

API 服务器启动命令

python -m vllm.entrypoints.openai.api_server \
    --model /path/to/DeepSeek-R1 \
    --served-model-name deepseek-r1 \
    --trust-remote-code \  
    --host 0.0.0.0 \
    --port 8080 \
    --max-model-len 2048 \        # 最大上下文长度
    --tensor-parallel-size 8 \    # GPU 并行数量
    --gpu-memory-utilization 0.8 \# 显存使用阈值
    --dtype float16 \            # 计算精度
    --enable-reasoning \         # 启用逻辑链推理
    --reasoning-parser deepseek_r1

核心参数详解

硬件资源配置

参数 类型 默认值 调优建议
--tensor-parallel-size int 1 必须等于物理 GPU 数量
--gpu-memory-utilization float 0.9 推荐 0.8-0.95 避免 OOM
--swap-space int 4 每 GPU 的 CPU 分页存储空间 (GiB)

推理控制

参数 类型 默认值 说明
--max-model-len int auto 根据模型最大长度设置
--max-num-seqs int 256 影响吞吐量与显存占用的批处理参数
--block-size enum 16 [8,16,32,64,128] 显存效率关键参数

安全部署

# 生产环境建议配置
--allowed-origins "https://yourdomain.com" \
--api-key "YOUR_SECRET_KEY" \
--ssl-keyfile /path/key.pem \
--ssl-certfile /path/cert.pem

性能调优

  1. 吞吐量优化

    • 增大 --max-num-batched-tokens (需平衡显存)
    • 使用 --quantization awq 4bit量化
    • 调整 --block-size 32 改善内存局部性
  2. 延迟优化

    • 限制 --max-num-seqs 降低调度开销
    • 启用 --speculative-disable-by-batch-size 32
    • 设置 --cpu-offload-gb 4 缓解显存压力
  3. 异常处理

    # 客户端重试示例
    from tenacity import retry, stop_after_attempt, wait_exponential
    @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=30))
    def safe_completion(prompt):
        return client.chat.completions.create(...)
    

版本兼容矩阵

组件 推荐版本 验证状态
PyTorch 2.5.1 ✅ 已验证
CUDA 12.4 ⚠️ 需驱动530+
vLLM 0.6.1 🛠️ 推荐版本