H20 显卡多节点 DeepSeek R1满血版部署保姆级教程

一、
两种部署模式对比
基于以上对比信息,建议使用 SGLang 来搭建 DeepSeek R1 671B 大模型。
二、 环境准备
2.1 硬件配置
CPU:Intel 8480+ * 2
内存:64GB DDR5-4800 * 32
系统盘:960G SATA SSD * 2
数据盘:3.84T NVME SSD * 8
Raid 卡:2G 缓存,12Gb,配置超级电容,支持 RAID 0/1/5/6/10/50,支持直通 JBOD 模式*1
GPU:GPU_Nvidia H20 HGX * 8
网卡 1:400G 单口 NDR Infiniband * 4
网卡 2:200G 双口 HDR Infiniband * 1
网卡 3:双口 25G 网卡 * 1(配光模块)

系统检查与配置指南

以下步骤基于Ubuntu 22.04系统,涵盖驱动安装、CUDA配置、Docker环境部署及模型获取流程:


2.2 系统检查与配置

1. 操作系统确认
lsb_release -a
# 确保输出包含 "Ubuntu 22.04"
2. 安装NVIDIA驱动与CUDA 12.5
# 添加官方驱动仓库
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update

# 安装驱动与CUDA工具包
sudo apt install -y nvidia-driver-550 cuda-12-5
3. 安装依赖库
sudo apt install -y python3.10 python3-pip build-essential cmake

2.3 Docker安装与配置

1. 安装基础工具
sudo apt update
sudo apt install -y ca-certificates curl gnupg
2. 添加Docker官方GPG密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
3. 设置APT源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安装Docker组件
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

1.4 NVIDIA容器运行时配置

1. 添加nvidia-container-runtime源
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/libnvidia-container/$(. /etc/os-release; echo $ID$VERSION_ID)/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/libnvidia-container.list
2. 安装并配置运行时
sudo apt update
sudo apt install -y nvidia-container-runtime

# 关联Docker运行时
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
sudo systemctl restart docker
3. 验证GPU支持
docker run --rm --gpus all nvidia/cuda:12.5-base nvidia-smi
# 应显示与宿主机相同的GPU信息

三、模型获取与验证

1. 挂载NVMe高性能磁盘
# 查看可用磁盘
sudo fdisk -l

# 挂载NVMe磁盘(示例)
sudo mkdir /mnt/nvme
sudo mount /dev/nvme0n1 /mnt/nvme
2. 安装Git LFS并下载模型
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt install -y git-lfs

# 克隆模型到NVMe磁盘
cd /mnt/nvme
git lfs install
git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1.git

注意事项

  1. 权重文件下载

    • 1.3TB文件需保持网络稳定,建议使用screentmux会话
    • 内网传输建议:
      # 从内网服务器同步(示例)
      rsync -avzP user@internal-server:/path/to/DeepSeek-R1 /mnt/nvme/
  2. Docker代理配置​(如需要)

    sudo mkdir -p /etc/systemd/system/docker.service.d
    sudo nano /etc/systemd/system/docker.service.d/proxy.conf

    添加:

    [Service]
    Environment="HTTP_PROXY=http://proxy-ip:port"
    Environment="HTTPS_PROXY=http://proxy-ip:port"

    重启服务:

    sudo systemctl daemon-reload
    sudo systemctl restart docker

故障排查

  • 驱动问题​:若nvidia-smi报错,尝试:

    sudo apt purge "nvidia*"
    sudo reboot
    # 重装后执行
    nvidia-smi  # 验证输出CUDA 12.5
  • 容器权限问题​:将用户加入docker组

    sudo usermod -aG docker $USER
    newgrp docker

此流程严格遵循NVIDIA官方推荐配置,各组件版本均兼容DeepSeek-R1运行要求。实际部署时请根据硬件环境调整磁盘挂载路径。

多节点 NVMe 磁盘配置与 SGLang 分布式部署指南

四、多块 NVMe 磁盘挂载(8 块磁盘)​
# 1. 查看磁盘列表(确认 NVMe 设备标识)
sudo fdisk -l

# 2. 格式化全部 8 块 NVMe 磁盘(警告:将彻底擦除数据!)
for i in {0..7}; do
  sudo mkfs.ext4 /dev/nvme${i}n1
done

# 3. 创建挂载点并挂载
for i in {0..7}; do
  sudo mkdir -p /data${i}
  sudo mount /dev/nvme${i}n1 /data${i}
done

# 4. 验证挂载结果
df -h | grep nvme

# 5. 获取 UUID 并配置永久挂载(防止重启失效)
sudo blkid /dev/nvme0n1
echo "UUID=6df5e413-f038-4e7a-bba2-4dbcfd3d1412 /data0 ext4 defaults 0 1" | sudo tee -a /etc/fstab
# 对每块磁盘重复此操作(nvme1n1→/data1,以此类推)
3.2 模型文件分发到多节点
# 使用并行 scp 加速传输(需提前配置 SSH 免密登录)
sudo apt install -y parallel
seq 0 7 | parallel -j8 "scp -r -o 'StrictHostKeyChecking no' DeepSeek-R1 root@node{}:/data0/"

# 单节点传输示例
scp -r DeepSeek-R1 root@IP:/data0/

四、SGLang 分布式部署

4.1 获取 Docker 镜像
# 国内推荐使用阿里云镜像
docker pull registry.cn-hangzhou.aliyuncs.com/21/sglang:latest
4.2 启动容器(每台服务器执行)​
# 主节点(IP)
docker run -itd --gpus all --shm-size=32g --network=host --privileged \
  -v /data0:/root/.cache/huggingface \
  --env NCCL_SOCKET_IFNAME=bond0 \
  --env GLOO_SOCKET_IFNAME=bond0 \
  --name sglang-master \
  registry.cn-hangzhou.aliyuncs.com/21/sglang:latest

# 从节点(IP)
docker run -itd --gpus all --shm-size=32g --network=host --privileged \
  -v /data0:/root/.cache/huggingface \
  --env NCCL_SOCKET_IFNAME=bond0 \
  --env GLOO_SOCKET_IFNAME=bond0 \
  --name sglang-worker \
  registry.cn-hangzhou.aliyuncs.com/21/sglang:latest
4.3 分布式服务启动
# 主节点容器内执行(16卡/节点,总32卡)
docker exec -it sglang-master python3 -m sglang.launch_server \
  --model-path /root/.cache/huggingface/DeepSeek-R1 \
  --tp 16 \
  --dist-init-addr IP:5000 \
  --nnodes 2 \
  --node-rank 0 \
  --trust-remote-code \
  --port 30000 \
  --host 0.0.0.0

# 从节点容器内执行
docker exec -it sglang-worker python3 -m sglang.launch_server \
  --model-path /root/.cache/huggingface/DeepSeek-R1 \
  --tp 16 \
  --dist-init-addr ip:5000 \
  --nnodes 2 \
  --node-rank 1 \
  --trust-remote-code
4.4 服务验证脚本
# deployment_test.py
import openai
client = openai.Client(base_url="http://IP:30000/v1", api_key="EMPTY")

response = client.chat.completions.create(
  model="default",
  messages=[
    {"role": "system", "content": "你是 deepseek r1 671B 大模型人工智能助手"},
    {"role": "user", "content": "介绍一下你自己,说说你是谁,你能做什么?"},
  ],
  temperature=0.6,
  max_tokens=10240
)
print(response.choices[0].message.content)

执行验证:

docker exec -it sglang-master python3 deployment_test.py

五、性能测试操作

5.1 进入容器
docker exec -it sglang-master /bin/bash
5.2 执行性能测试
python3 -m sglang.bench_serving \
  --backend sglang \
  --dataset-name random \
  --num-prompt 1024 \
  --random-input-len 32 \
  --random-output-len 512 \
  --random-range-ratio 1 \
  --model /root/.cache/huggingface/DeepSeek-R1/ \
  --host IP \
  --port 30000
5.3 预期性能指标
测试参数正常范围优化建议
并发请求数1024根据 GPU 内存调整
输入长度32 tokens模拟真实场景
输出长度512 tokens测试生成能力
总吞吐量3000~6300 tokens/s检查网络带宽

高级优化技巧

  1. InfiniBand/RDMA 加速
# 启动容器时添加
--env NCCL_IB_DISABLE=0 \
--env NCCL_IB_HCA=mlx5_0,mlx5_3,mlx5_4,mlx5_7 \
-v /dev/infiniband:/dev/infiniband
  1. FlashAttention 加速
    在启动命令中添加:
--enable-flash-attn
  1. 批量请求优化
# 测试脚本中增加批量处理
response = client.chat.completions.create(
  ...,
  extra_body={"max_batch_size": 32}  # 根据显存调整
)
  1. 监控工具
# 容器内安装监控
pip install nvitop
nvitop -m full  # 实时监控 GPU 利用率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值