搭建 DeepSeek-R1 集群 本质上是在单机/多机环境下部署大规模 MoE(混合专家)大模型推理或训练集群。这类模型参数量巨大(如 DeepSeek-R1 估计在 671B 参数级别),普通机器无法单机运行,必须依赖分布式集群。
典型运行模式:
多机多卡
├── 模型并行(TP / PP)
├── 专家并行(EP)
├── KV Cache 分布式
└── 推理调度(vLLM / SGLang)| 方案 | GPU | 显存 | 说明 |
|---|---|---|---|
| 最佳 | H100 / H800 | 80GB HBM3 | 官方推荐 |
| 次优 | A100 80G | 80GB | 可跑,带宽受限 |
| 避免 | 4090 / 3090 | 24GB | ❌ 不支持 |
⚠️ DeepSeek-R1 单卡至少需要 80G 显存才能参与模型并行
| 规模 | GPU |
|---|---|
| 最小 | 8 × H100 |
| 标准 | 16–32 × H100 |
| 高吞吐 | 64+ |
| 规模 | GPU |
|---|---|
| 基础 | 32 × H100 |
| 全量训练 | 128+ |
| 项目 | 要求 |
|---|---|
| GPU 互联 | NVLink / NVSwitch |
| 节点互联 | InfiniBand (IB) |
| 带宽 | ≥ 200Gbps |
| 延迟 | < 2μs |
❌ 以太网(RoCE)性能明显下降
OS: Ubuntu 22.04 / Rocky Linux 9
CUDA: 12.4+
NCCL: 2.20+
Python: 3.10+| 组件 | 推荐 |
|---|---|
| 推理 | vLLM(MoE 分支) / SGLang |
| 模型并行 | Megatron-LM / DeepEP |
| 调度 | Slurm / Kubernetes(高级) |
| 通信 | NCCL |
| 模型格式 | FP8 / BF16 |
DeepSeek-R1 不开放原始权重,通常通过以下方式:
git lfs install
git clone https://huggingface.co/deepseek-ai/DeepSeek-R1conda create -n deepseek python=3.10
conda activate deepseek
pip install torch==2.3.0+cu124
pip install vllm==0.4.3
pip install transformers
pip install deepspeed
pip install megatron-lmTP=8
PP=4
EP=32目录结构:
/cluster
├── model
│ ├── tp_0
│ ├── tp_1
│ └── ...
├── config
│ └── parallel.yamlpython -m vllm.entrypoints.api_server \
--model /path/to/deepseek-r1 \
--tensor-parallel-size 8 \
--pipeline-parallel-size 4 \
--dtype fp8 \
--host 0.0.0.0 \
--port 8000使用 Slurm(最稳定):
srun -N 8 -n 64 \
--gres=gpu:8 \
bash launch.shlaunch.sh 示例:
export NCCL_SOCKET_IFNAME=ib0
export NCCL_IB_DISABLE=0
python run_deepseek.pyDeepSeek-R1 使用 MoE 路由:
推荐:
--enable-expert-parallel
--expert-parallel-size 32❌ 1. GPU 显存不足
→ 必须 ≥ 80G
❌ 2. 网络不是 IB
→ 通信直接炸裂
❌ 3. vLLM 默认不支持 MoE
→ 必须使用 MoE 分支
❌ 4. TP/PP 配置不合理
→ 显存 & 计算不均衡
❌ 5. 直接单卡推理
[负载均衡]
↓
[API Gateway]
↓
[推理调度层] ← vLLM / SGLang
↓
[模型并行层] ← TP / PP / EP
↓
[GPU 集群] ← IB + NVLink你可以直接告诉我:
1️⃣ 你有多少张卡?型号?
2️⃣ 单机还是多机?网络类型?
3️⃣ 目标是推理 / 微调 / 全量训练?
4️⃣ 是否已有 DeepSeek-R1 权重?
我可以直接帮你:
一句话:
DeepSeek-R1 集群不是“能不能跑”,而是“怎么跑才不浪费钱”。