跳转至

使用分布式昇腾 MindIE 运行 DeepSeek R1 671B

本教程介绍如何在 GPUStack 集群中通过分布式昇腾 MindIE配置和运行原版 DeepSeek R1 671B。

由于模型规模很大,通常需要跨多个 Worker 进行分布式推理。

GPUStack 简化了昇腾 MindIE 分布式推理的配置和编排,只需少量手动配置即可运行 DeepSeek R1 这类大型模型。

前提条件

开始前,请确认满足以下要求:

  • 有足够数量的 Linux 节点,各节点配备所需昇腾 Atlas AI 处理器。例如:
Server(NPU) 节点数量
Atlas 800T A2 (910B3 x 8) 4
  • 所有节点支持 Huawei Collective Communication adaptive Protocol(HCCP),已安装 Huawei Collective Communication Library(HCCL),并启用 Huawei Cache Coherence System(HCCS)。
  • 各节点应将模型文件下载到相同路径。GPUStack 虽然支持即时下载模型,但下载耗时受网络速度影响,建议提前下载。

说明

  • 本教程使用 4 个节点,每个节点配备 8 张 910B3 NPU,通过 200G Huawei Cache Conherence Network(HCCN)互连。
  • Atlas NPU 不支持 DeepSeek R1 原版使用的 FP8 精度,因此使用 Unsloth 提供的 BF16 版本。

步骤 1:安装 GPUStack Server

按照安装文档,可使用以下命令启动 GPUStack Server:

1
2
3
4
5
6
sudo docker run -d --name gpustack \
    --restart unless-stopped \
    -p 80:80 \
    --volume gpustack-data:/var/lib/gpustack \
    --volume /path/to/your/model:/path/to/your/model \
    gpustack/gpustack

说明

  • 将 /path/to/your/model 替换为系统中实际存储 DeepSeek R1 模型文件的路径。

GPUStack Server 启动后,运行以下命令获取初始管理员密码:

sudo docker exec gpustack \
    cat /var/lib/gpustack/initial_admin_password

步骤 2:访问 GPUStack 界面

使用 admin 用户和获取的密码登录 GPUStack 界面。

http://your_gpustack_server_ip_or_hostname

步骤 3:安装 GPUStack Worker

在 GPUStack 界面中打开 Workers 页面,点击 Add Worker 获取添加命令。

然后在每个 Worker 节点上运行添加命令,启动 GPUStack Worker:

sudo docker run -d --name gpustack \
    --restart unless-stopped \
    --privileged \
    --env "ASCEND_VISIBLE_DEVICES=$(sudo ls /dev/davinci* | head -1 | grep -o '[0-9]\+' || echo "0")" \
    --network host \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume gpustack-data:/var/lib/gpustack \
    --volume /path/to/your/model:/path/to/your/model \
    --runtime ascend \
    gpustack/gpustack \
    --server-url http://your_gpustack_server_ip_or_hostname \
    --token your_gpustack_cluster_token

说明

  • 按实际情况替换占位路径、IP 地址/主机名和集群令牌。
  • 将 /path/to/your/model 替换为系统中实际存储 DeepSeek R1 模型文件的路径。
  • 确认系统已正确安装和配置 hccn_tool,以发现 HCCN 网络通信信息。

添加所有 Worker 后,返回 GPUStack 界面。

在 Workers 页面确认所有 Worker 均为 Ready 状态,且 GPU 已显示。

初始资源状态

步骤 4:部署 DeepSeek R1 模型

  1. 打开 Deployments 页面。
  2. 点击 Deploy Model。
  3. 将模型来源设为 Local Path。
  4. 在 Name 中输入名称,例如 DeepSeek-R1。
  5. 将 Model Path 设为各 Worker 节点上包含 DeepSeek R1 模型文件的目录。
  6. 确认 Backend 为昇腾 MindIE(Ascend MindIE)。
  7. 展开 Advanced,向 Backend Parameters 添加: - --data-parallel-size=4 - --tensor-parallel-size=8 - --moe-tensor-parallel-size=1 - --moe-expert-parallel-size=32 - --npu-memory-fraction=0.95:由于使用数据并行,需要设为 0.95,以高效使用所有 NPU 的内存。
  8. 兼容性检查通过后,点击 Save 部署。

DeepSeek-R1 模型部署配置的第一部分 DeepSeek-R1 模型部署配置的第二部分

步骤 5:监控部署

在 Deployments 页面查看部署状态。将鼠标悬停在 distributed across workers 上,查看 GPU 和 Worker 使用情况。点击 View Logs 查看模型加载进度的实时日志。加载可能需要几分钟。

模型详情

模型运行后,在 Workers 页面查看 GPU 使用率。采用上述设置时,昇腾 MindIE 使用 95% 的 NPU 内存。

模型加载后的资源状态

步骤 6:通过 Playground 执行推理

模型部署并运行后,即可在 GPUStack Playground 中测试。

  1. 打开 Playground -> Chat。
  2. 如果只部署了一个模型,会默认选中;否则通过下拉菜单选择 DeepSeek-R1。
  3. 输入提示词,与模型交互。

在 Playground 中与模型对话

也可以在 Compare 标签页中测试并发推理场景。

在 Playground 中对比模型

至此,已在 GPUStack 集群上通过分布式昇腾 MindIE 部署并运行 DeepSeek R1 671B。可进一步在自己的应用中测试模型的性能和能力。

如需帮助,可联系 GPUStack 社区或支持团队。