昇腾多机推理极速上手:10倍简化的 DeepSeek R1 超大规模模型部署

news/2025/9/27 10:56:24/文章来源:https://www.cnblogs.com/gpustack/p/19114843

在昇腾 NPU 上部署超大规模模型,往往面临一个现实难题:目前主流的官方推理引擎 MindIE多机分布式推理虽然性能表现尚可,但配置流程异常复杂。从环境准备、配置初始化到参数细节调整,每一步都需要格外谨慎,否则极易因细节遗漏或配置错误而导致部署失败,问题定位也十分困难。

GPUStack 是一个100%开源的模型服务平台(MaaS,Model-as-a-Service),提供高性能推理与完善的模型服务管理能力,能够运行在 NVIDIA、AMD、Apple Silicon、昇腾、海光、摩尔线程、天数智芯、寒武纪、沐曦等多种 GPU 上,轻松构建异构 GPU 集群,支持 vLLM、MindIE、llama-box 等各种推理引擎。

为了降低部署门槛,GPUStack 提供了对 MindIE 分布式推理的完整封装和简化,用户只需少量 UI 配置,就能完成过去需要大量手动步骤、文档比对与重复调试的部署流程。相比原生方案,GPUStack 大幅简化了部署复杂度,减少了错误发生的可能性,使得在昇腾上运行大规模模型的过程更加高效、丝滑且稳定

本文将带来一篇实践教程,演示如何通过 GPUStack 快速在昇腾上丝滑运行 MindIE 分布式推理,并部署以 DeepSeek R1 671B 为例的超大规模模型。

前提条件

  1. 多台 Atlas 800T A2(8 卡 910B)服务器,通过 HCCN 实现多机 RoCE 组网

以双机场景为例,两台服务器的 NPU 之间通过 200 Gbps 光模块进行一对一光纤直连。当扩展到多机时,则需通过 RoCE 交换机实现 NPU 间的高速互联。

image-20250926165811775

  1. 已安装 NPU 驱动和相应固件(https://www.hiascend.com/hardware/firmware-drivers/community?product=4&model=26&cann=8.2.RC1&driver=Ascend+HDK+25.2.0)

GPUStack v0.7.1 镜像中,内置的 CANN 版本为 8.2.RC1,该版本依赖 25.2 及以上驱动。用户可通过执行以下命令检查当前驱动版本:

npu-smi info

注意,在后续安装或升级时,应根据镜像中所包含的 CANN 版本,选择与之匹配的驱动版本,以确保功能正常。

  1. 通过 hccn_tool/usr/local/Ascend/driver/tools/hccn_tool)配置:
  • NPU 设备 RoCE 网卡的 IP
  • 网关(按需,仅跨 L3 需要)
  • 网络检测对象 IP(双机直连为对端 NPU 设备 IP,多机互联为任一对端节点 NPU IP,L3 则为网关 IP)

在每个节点上,通过以下命令检查并优化 RoCE 配置:

# 1.检查物理链接
for i in {0..7}; do hccn_tool -i $i -lldp -g | grep Ifname; done 
# 2.检查链接情况
for i in {0..7}; do hccn_tool -i $i -link -g ; done
# 3.检查网络健康情况
for i in {0..7}; do hccn_tool -i $i -net_health -g ; done
# 4.查看网络检测IP配置是否正确
for i in {0..7}; do hccn_tool -i $i -netdetect -g ; done
# 5.查看网关是否配置正确(按需)
for i in {0..7}; do hccn_tool -i $i -gateway -g ; done
# 6.检查NPU底层tls校验行为一致性,建议统一全部设置为0,避免hccl报错
for i in {0..7}; do hccn_tool -i $i -tls -g ; done | grep switch
# 7.NPU底层tls校验行为置0操作,建议统一全部设置为0,避免hccl报错
for i in {0..7};do hccn_tool -i $i -tls -s enable 0;done

获取 NPU IP 地址:

for i in {0..7}; do hccn_tool -i $i -ip -g | grep ipaddr; done

检查跨节点 NPU 之间的连通性,需要替换为实际配置的对端节点 NPU IP:

# 指定节点 NPU 0 光纤直连的对端节点 NPU IP(或通过 RoCE 交换机则为任一对端节点 NPU IP)
hccn_tool -i 0 -ping -g address 192.168.1.9
# 指定节点 NPU 1 光纤直连的对端节点 NPU IP(或通过 RoCE 交换机则为任一对端节点 NPU IP)
hccn_tool -i 1 -ping -g address 192.168.1.10
# 指定节点 NPU 2 光纤直连的对端节点 NPU IP(或通过 RoCE 交换机则为任一对端节点 NPU IP)
hccn_tool -i 2 -ping -g address 192.168.1.11
# 指定节点 NPU 3 光纤直连的对端节点 NPU IP(或通过 RoCE 交换机则为任一对端节点 NPU IP)
hccn_tool -i 3 -ping -g address 192.168.1.12
# 指定节点 NPU 4 光纤直连的对端节点 NPU IP(或通过 RoCE 交换机则为任一对端节点 NPU IP)
hccn_tool -i 4 -ping -g address 192.168.1.13
# 指定节点 NPU 5 光纤直连的对端节点 NPU IP(或通过 RoCE 交换机则为任一对端节点 NPU IP)
hccn_tool -i 5 -ping -g address 192.168.1.14
# 指定节点 NPU 6 光纤直连的对端节点 NPU IP(或通过 RoCE 交换机则为任一对端节点 NPU IP)
hccn_tool -i 6 -ping -g address 192.168.1.15
# 指定节点 NPU 7 光纤直连的对端节点 NPU IP(或通过 RoCE 交换机则为任一对端节点 NPU IP)
hccn_tool -i 7 -ping -g address 192.168.1.16

HCCN Tool 帮助文档:https://support.huawei.com/enterprise/zh/doc/EDOC1100493980?idPath=23710424|251366513|22892968|252309113|250702818

  1. 下载模型权重,若需要量化模型,下载社区量化好的模型权重,或通过 msModelSlim 昇腾模型压缩工具进行量化(https://gitcode.com/Ascend/msit/tree/master/msmodelslim)

本文以 BF16 精度的 DeepSeek-R1 模型为例,该模型需要四台 Atlas 800T A2(8 卡 910B 64G)服务器才可运行。模型权重地址:https://huggingface.co/unsloth/DeepSeek-R1-BF16,两台则需要使用 W8A8 量化。

  1. GPUStack 昇腾 910B NPU 镜像,以下镜像内置 MindIE 2.1RC1vLLM Ascend v0.9.1

通过 Docker 下载 GPUStack 镜像:

docker pull --platform=linux/arm64 crpi-thyzhdzt86bexebt.cn-hangzhou.personal.cr.aliyuncs.com/gpustack_ai/gpustack:v0.7.1-npu-vllm-v0.9.1

安装 GPUStack

参考 GPUStack MindIE 多机分布式推理教程(https://docs.gpustack.ai/latest/tutorials/running-deepseek-r1-671b-with-distributed-ascend-mindie/)安装 GPUStack:

1、在节点1启动 Server 与内置 Worker:

docker run -d --name gpustack \--restart=unless-stopped \--device /dev/davinci0 \--device /dev/davinci1 \--device /dev/davinci2 \--device /dev/davinci3 \--device /dev/davinci4 \--device /dev/davinci5 \--device /dev/davinci6 \--device /dev/davinci7 \--device /dev/davinci_manager \--device /dev/devmm_svm \--device /dev/hisi_hdc \-v /usr/local/dcmi:/usr/local/dcmi \-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \-v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware:ro \-v /etc/hccn.conf:/etc/hccn.conf:ro \-v /etc/ascend_install.info:/etc/ascend_install.info:ro \-v gpustack-data:/var/lib/gpustack \-v /data/models:/data/models \--shm-size=1g \--network=host \--ipc=host \crpi-thyzhdzt86bexebt.cn-hangzhou.personal.cr.aliyuncs.com/gpustack_ai/gpustack:v0.7.1-npu-vllm-v0.9.1 \--cache-dir /data/models

启动命令假设提前下载好的模型的存储路径,包括后续通过 GPUStack 联网搜索 Hugging Face/ModelScope 下载的模型存储路径均为 /data/models,可按实际修改,多节点需要统一路径

查看容器日志确认 GPUStack 是否已正常运行:

docker logs -f gpustack

若容器日志显示服务启动正常,使用以下命令获取 GPUStack 控制台的初始登录密码和用于其它节点加入 GPUStack 的认证 Token:

docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password
docker exec gpustack cat /var/lib/gpustack/token

2、在其它节点启动 Worker 并注册到节点1的 GPUStack,按实际修改 --server-url--token

docker run -d --name gpustack \--restart=unless-stopped \--device /dev/davinci0 \--device /dev/davinci1 \--device /dev/davinci2 \--device /dev/davinci3 \--device /dev/davinci4 \--device /dev/davinci5 \--device /dev/davinci6 \--device /dev/davinci7 \--device /dev/davinci_manager \--device /dev/devmm_svm \--device /dev/hisi_hdc \-v /usr/local/dcmi:/usr/local/dcmi \-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \-v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware:ro \-v /etc/hccn.conf:/etc/hccn.conf:ro \-v /etc/ascend_install.info:/etc/ascend_install.info:ro \-v gpustack-data:/var/lib/gpustack \-v /data/models:/data/models \--shm-size=1g \--network=host \--ipc=host \crpi-thyzhdzt86bexebt.cn-hangzhou.personal.cr.aliyuncs.com/gpustack_ai/gpustack:v0.7.1-npu-vllm-v0.9.1 \--cache-dir /data/models \--server-url http://<节点1的 GPUStack URL 地址> \--token <从节点1获得的认证 Token>

(1) 启动命令假设提前下载好的模型的存储路径,包括后续通过 GPUStack 联网搜索 Hugging Face/ModelScope 下载的模型存储路径均为 /data/models,可按实际修改,多节点需要统一路径

(2) http://<节点1的 GPUStack URL 地址> 表示 GPUStack 的访问地址,默认为节点1的 IP 地址 + 80 端口

(3) <从节点1获得的认证 Token> 为在节点1通过 docker exec gpustack cat /var/lib/gpustack/token 命令获得的认证 Token

在浏览器中通过节点1的 IP 访问 GPUStack 控制台(http://HOST_IP),使用默认用户名 admin 和前面获取的初始密码登录。登录 GPUStack 后,在资源菜单可查看识别到的昇腾节点和 NPU 资源:

初始资源

多机分布式部署 DeepSeek R1 模型

在菜单栏中点击部署,选择部署模型 - 本地路径,接下来:

  • 名称中输入自定义的模型名称
  • 模型路径指定为提前下载并已挂载到容器中的 DeepSeek R1 模型的绝对路径
  • 后端中选择 Ascend MindIE
  • 展开高级设置,配置以下后端参数:

--data-parallel-size=4

--tensor-parallel-size=8

--moe-tensor-parallel-size=1

--moe-expert-parallel-size=32

--npu-memory-fraction=0.95

部署模型-1

确认兼容性检查通过后,保存部署:

部署模型-2

GPUStack 会自动处理 MindIE 的分布式推理部署,包括设置环境变量、自动生成 config.jsonranktable 配置文件、启动多机 MindIE Service Daemon 服务等等,可以将鼠标移动到 Distributed Across Workers 查看多节点资源分配情况,在右侧的操作中可以查看 MindIE 主节点的启动日志,正常启动模型需要几分钟到十几分钟:

模型信息

如果启动异常但未在 MindIE 主节点的启动日志中发现报错,可以进一步排查从节点日志。方法是进入其他服务器节点的 GPUStack 容器,打开以下路径,检查对应的 MindIE 从节点日志是否存在异常:

cd /var/lib/gpustack/log/serve/

如果部署顺利,MindIE 分布式推理服务会正常启动,模型能够成功运行。在 Workers 列表中,可以看到资源使用情况,其中 NPU 显存占用率约为 95%,表明多台昇腾节点的 NPU 资源已被充分利用:

资源丰富的

模型部署成功并运行后,即可在 GPUStack 试验场中对其进行测试。

进入试验场 - 对话页面:

  • 若仅部署了一个模型,系统会默认选中该模型
  • 若部署了多个模型,则可在右侧模型选项,下拉手动选择 DeepSeek-R1

随后,输入提示词,即可与模型进行交互,测试模型的生成效果与推理性能:

游乐场聊天

通过多模型对比功能,在多个窗口选中同一个模型,也能方便地进行简单的并发推理测试

游乐场比较

通过以上教程,我们已经成功在 GPUStack 集群上使用 Ascend MindIE 的分布式推理能力,部署运行 DeepSeek R1 671B。该教程也同样适用于其它单机昇腾服务器无法承载的超大模型,具体支持的模型列表可参考 MindIE 官方模型支持列表说明:https://www.hiascend.com/software/mindie/modellist

与原生的 MindIE 分布式推理方案相比,GPUStack 在部署过程中简化了繁琐的手动配置步骤,降低了配置出错或遗漏的风险,使得在昇腾硬件上运行超大规模模型的过程更加高效、稳定且易于管理

GPUStack 为企业在昇腾平台上进行大规模模型推理提供了一套更加便捷可靠的 AI 基础设施,显著提升生产效率和用户体验。

加入社区

想要了解更多关于 GPUStack 的信息,可以访问我们的仓库地址:https://github.com/gpustack/gpustack。如果你对 GPUStack 有任何建议,欢迎提交 GitHub issue。在体验 GPUStack 或提交 issue 之前,请在我们的 GitHub 仓库上点亮 Star ⭐️关注我们,也非常欢迎大家一起参与到这个开源项目中!

如果在使用过程中遇到任何问题,欢迎随时加入我们的 Discord 社区:[ https://discord.gg/VXYJzuaqwD ],也可以扫码添加 GPUStack 小助手联系加入 GPUStack 微信交流群,获得 GPUStack 团队的技术支持,或与社区爱好者共同探讨交流。

image-20250807225549713

如果觉得对你有帮助,欢迎点赞转发关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919368.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python开始exe应用程序初级教程

以下是一个关于如何将Python脚本打包成可执行文件(.exe)的初级教程,使用目前最常用的PyInstaller工具。 准备工作 首先需要安装PyInstaller,打开命令提示符(CMD)或终端,运行以下命令: pip install pyinstaller…

中职校园网站建设建议制作网页的思路

cp -rpf #强行递归复制/etc目录到/mist目录中&#xff0c;并保持源目录的权限等信息不变。 有点类似于打patch&#xff0c;不会改变已有的内容。

凡科可以建设多个网站吗上海手机网站建设电话咨询

用Python解析HTML页面 文章目录 用Python解析HTML页面HTML 页面的结构XPath 解析CSS 选择器解析简单的总结 在前面的课程中&#xff0c;我们讲到了使用 request三方库获取网络资源&#xff0c;还介绍了一些前端的基础知识。接下来&#xff0c;我们继续探索如何解析 HTML 代码&…

网站建设选用平台分析极速蜂app拉新加盟

阿里云服务器是阿里云推出的一种云核算产品&#xff0c;它能够帮助企业和个人快速建立、扩展和管理网络服务。可是&#xff0c;有时候在运用阿里云服务器时&#xff0c;或许会遇到无法装置程序的问题。本文将具体介绍如何处理这个问题。 阿里云服务器无法装置程序或许是由多种原…

版权申请网站宾馆酒店网站建设方案

小伙伴们好久不见&#xff0c;今天我们来聊聊中国 AZURE 的日志分析告警。为什么是中国 AZURE&#xff0c;目前中国 AZURE 的 Monitor 服务和运维相关周围服务和 Global 是有所不同的&#xff0c;所以有些功能和设计不能复制和套用全球版 AZURE 的架构。我们先看一下中国 AZURE…

深入解析:cocos 添加背景,帧动画,贴图

深入解析:cocos 添加背景,帧动画,贴图2025-09-27 10:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block…

B站油管抖音一键笔记

在最近,我有一个需求就是需要对视频内容进行一个总结,做成一个笔记,但是又不想自己手动去写,于是我找到了一个项目 BiliNote,BiliNote 是一个开源的 AI 视频笔记助手,支持通过哔哩哔哩、YouTube、抖音等视频链接…

网站安装出现dir更改wordpress地址

集成swagger2的时候swagger-ui.html页面的v2/api-docs接口报404 尝试网上说的权限、包版本不一致、资源路径映射问题&#xff0c;发现都没有问题。 单独访问v2/api-docs接口的时候报 Swagger2Controller Unable to find specification for group 查看相关代码&#xff1a; …

成熟网站开发联系电话陕西网

简介&#xff1a;OpenKruise 是针对 Kubernetes 的增强能力套件&#xff0c;聚焦于云原生应用的部署、升级、运维、稳定性防护等领域。 云原生应用自动化管理套件、CNCF Sandbox 项目 -- OpenKruise&#xff0c;近期发布了 v1.0 大版本。 OpenKruise[1] 是针对 Kubernetes 的…

网站设计公司官网如何设计购物网站

Java流程控制语句有三种&#xff1a; 顺序结构、分支结构和循环结构。 顺序结构&#xff1a; 顺序结构语句是Java程序默认的执行流程&#xff0c;按照代码的先后顺序&#xff0c;从上到下依次执行。 原文链接&#xff1a; Java流程控制控制语句 - 红客网络编程与渗透技术 示例…

介绍自己

大家好!我是一个数据科学与大数据技术专业的大三学生。在日常生活中我有着许多的兴趣爱好打羽毛球、听音乐、做手工。技能树与专业规划 当前技术能力 编程基础:稍微掌握Python数据处理(Pandas、NumPy) 数据库技能:…

pycharm更换国内源

1、找到pip.ini2、记事本修改 [global] timeout = 6000 index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = https://pypi.tuna.tsinghua.edu.cn

基于Python+Vue开发的反诈视频宣传管理系统源码+运行步骤

项目简介该项目是基于Python+Vue开发的反诈视频宣传管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习…

MySQL中的空间碎片率计算分析 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站开发财务预算企业手机网站建设流程

以下部门功能在lucene5以上版本可能有的API所有改变 目录1.简介 2.了解索引操作 2.1倒排索引 2.2字段类型 2.3细分 2.4文件编号 2.5搜索索引 3.创建索引 4.基本索引操作 4.1核心索引类 4.2将数据添加到索引 5.文件和领域 5.1文件 5.2领域 5.3在Lucene中增强文档 1.简介 该索引是…

为什么网站目录不收录seowhy问答

一、初识 1.1 基础 1.1.1 语言速成课 1.1.1.1 变量 ​ 变量是存储值的容器。首先用let关键字声明一个变量&#xff0c;后面跟着你给变量的名字 ​ 变量命名区分大小写 ​ 分号在JavaScript中是用来分隔语句的&#xff0c;但是如果语句后面有一个换行符(或者在{block}中只…

网站推广营销潞城建设局网站

题目要求&#xff1a;判断一棵树是否为平衡二叉树 思路&#xff1a;递归地比较左右子树&#xff0c;只要有一棵子树不满足条件就说明这棵树不是平衡二叉树。本题采用迭代法较为复杂。 leetcode实战&#xff1a; 代码实现&#xff1a; 递归&#xff1a; 迭代&#xff1a;

商城网站都有什么功能设计交易平台哪个好

SoMeLVLM: A Large Vision Language Model for Social Media Processing 论文地址: https://arxiv.org/abs/2402.13022https://arxiv.org/abs/2402.13022发表在ACL 2024 1.概述 在线社交媒体平台涌现出海量的文本与视觉内容,深刻揭示了人们如何交流、互动以及自我表达。随着通…

发帖百度秒收录网站分享中太建设集团股份有限公司官方网站

引言 前端开发中&#xff0c;数据的复制是一个常见的操作。尤其是在处理对象和数组时&#xff0c;我们需要考虑的是一个浅拷贝还是深拷贝。那么&#xff0c;什么是深拷贝和浅拷贝&#xff1f;它们在前端开发中有什么作用&#xff1f;如何实现这两种拷贝&#xff1f;这是我们在…