环境准备
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 安装方案
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
性能调优
吞吐量优化
- 增大
--max-num-batched-tokens
(需平衡显存) - 使用
--quantization awq
4bit量化 - 调整
--block-size 32
改善内存局部性
- 增大
延迟优化
- 限制
--max-num-seqs
降低调度开销 - 启用
--speculative-disable-by-batch-size 32
- 设置
--cpu-offload-gb 4
缓解显存压力
- 限制
异常处理
# 客户端重试示例 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 | 🛠️ 推荐版本 |