CubeStudio 是一款国产化、云原生的一站式开源人工智能平台,同时覆盖传统机器学习、深度学习与大模型全链路(MLOps / MaaS / 算力调度 / 训推平台),开源协议 MIT,开源免费商用,开源版本已有数千家企业私有化部署。平台提供多租户与算力纳管调度、算力租赁与 Token 中转站、拖拉拽 Pipeline 任务流编排、多机多卡分布式训练、超参搜索、推理服务、vGPU 虚拟化、云边端协同与边缘计算、图文音多模态自动化标注、大模型 SFT 微调 / 奖励模型 / 强化学习训练、vLLM / Ollama / MindIE 大模型多机推理、私有知识库 / LLMOps / 智能体、AI 模型市场,以及从数据到上线的全流程模型部署。原生适配昇腾、寒武纪、海光、摩尔线程、沐曦等国产异构算力与 x86 / ARM CPU 架构,支持 IB / RoCE / RDMA 高速网络及信创私有化、内网离线部署。

官网:https://www.cubestudio.vip | GitHub:https://github.com/data-infra/cube-studio | Gitee:https://gitee.com/data-infra/cube-studio

关键词:CubeStudio、cube-studio、昇腾、Ascend、910B、310P、MindIE、分布式推理、多机推理、DeepSeek、ranktable、RANK_TABLE_FILE、hccn_tool、HCCL、HCCL_CONNECT_TIMEOUT、mindieservice_daemon、worldSize、npuDeviceIds、国产 NPU、信创、大模型部署、国产算力跑大模型

「昇腾能不能跑 DeepSeek?」是过去一年信创圈被问得最多的问题之一。答案是能——用华为 MindIE 推理引擎,单机 8 卡放不下的模型还可以多机分布式。但多机推理要打通 NPU 参数面网络、ranktable、HCCL 通信一整条链路,公开资料零散且坑多。

本文是 CubeStudio 昇腾三部曲的收官篇:把 MindIE 多机分布式推理的每一步命令、每一个配置项、每一个环境变量完整给出,照着做就能在多台昇腾机器上把 DeepSeek 跑起来。

一、方案总览

项目说明
推理引擎华为 MindIE(mindieservice_daemon)
支持算力910B / 310P
部署形态单机多卡 / 多机分布式(multiNodesInferEnabled)
平台服务类型CubeStudio 推理服务内置 mindie 与 mindie-distributed 两种类型
平台内置镜像华为官方 MindIE 2.3.0 三个规格:800I-A3 / 800I-A2 / 300I-Duo(py311 / openEuler 24.03)
通信HCCL,走 NPU 参数面网络(每张卡有独立 IP)

四步主线:NPU 网卡配置 → ranktable 拓扑 → MindIE 配置与环境变量 → 启动。

二、配置 NPU 参数面网卡(hccn_tool)

昇腾多机通信不走主机以太网,而是 NPU 自己的参数面网络——每张卡要配独立 IP(网段需符合机房网络规划):

# 8 张卡逐一配 IP
hccn_tool -i 0 -ip -s address 192.168.230.101 netmask 255.255.255.0
# ... -i 1~7 依次 102~108

# 配网关与网口检测地址
for i in {0..7}; do hccn_tool -i $i -gateway -s gateway 192.168.230.1; done
for i in {0..7}; do hccn_tool -i $i -netdetect -s address 192.168.230.1; done

验证(本机与跨机都要能 ping 通):

hccn_tool -i 0 -ping -g address 192.168.230.101
for i in {0..7}; do hccn_tool -i $i -ip -g; done

高频坑:关闭 NPU 底层 TLS 校验——不关会导致模型加载超时,且所有机器行为要一致(建议全 0):

for i in {0..7}; do hccn_tool -i $i -tls -g; done | grep switch   # 检查
for i in {0..7}; do hccn_tool -i $i -tls -s enable 0; done        # 全部置 0

三、ranktable.json:多机拓扑地图

每台机器的容器内放同一份 ranktable.json,描述"哪台机器的哪张卡是全局第几号"(两机 16 卡示例):

{
    "version": "1.0",
    "server_count": "2",
    "server_list": [
        {
            "server_id": "10.42.0.15",
            "container_ip": "10.42.0.15",
            "device": [
                { "device_id": "0", "device_ip": "192.168.230.101", "rank_id": "0" },
                { "device_id": "7", "device_ip": "192.168.230.108", "rank_id": "7" }
            ]
        },
        {
            "server_id": "10.42.0.16",
            "container_ip": "10.42.0.16",
            "device": [
                { "device_id": "0", "device_ip": "192.168.230.109", "rank_id": "8" },
                { "device_id": "7", "device_ip": "192.168.230.116", "rank_id": "15" }
            ]
        }
    ],
    "status": "completed"
}

device_ip 就是第二节配的 NPU 参数面 IP;rank_id 全局唯一递增。

四、MindIE 配置与环境变量

config.json 关键项(/usr/local/Ascend/mindie/latest/mindie-service/conf/config.json):

"ipAddress" : "0.0.0.0",
"allowAllZeroIpListening" : true,
"httpsEnabled" : false,
"interCommTLSEnabled" : false,
"npuDeviceIds" : [[0,1,2,3,4,5,6,7]],
"multiNodesInferEnabled" : true,
"interNodeTLSEnabled" : false,
"modelName" : "deepseek",
"modelWeightPath" : "/mnt/admin/.../DeepSeek-R1-Distill-Qwen-7B",
"worldSize" : 8,

multiNodesInferEnabled: true 开启多机;worldSize 是单机参与卡数;modelWeightPath 指向模型权重目录。

环境变量(每台容器内执行,按功能分组):

# 基础环境
source /usr/local/Ascend/mindie/set_env.sh
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
source /usr/local/Ascend/atb-models/set_env.sh

# HCCL 通信(大模型加载慢,超时要拉长)
export HCCL_CONNECT_TIMEOUT=7200
export HCCL_EXEC_TIMEOUT=0
export ATB_LLM_HCCL_ENABLE=1
export ATB_LLM_COMM_BACKEND="hccl"

# 日志与内存
export MINDIE_LOG_TO_STDOUT=1
export MINDIE_LLM_LOG_TO_STDOUT=1
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export NPU_MEMORY_FRACTION=0.9

# 多机身份
export RANK_TABLE_FILE=<ranktable.json 绝对路径>
export RANKTABLEFILE=<同上>
export MIES_CONTAINER_IP=<本 Pod 容器 IP>
export MASTER_IP=<rank_id=0 所在机器 IP>
export WORLD_SIZE=<所有机器总卡数>

# 权限(MindIE 强制要求)
chmod 640 /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
chmod -R 640 $MODEL_PATH
chmod 640 ${RANK_TABLE_FILE}

五、启动

# 重启服务前必须清理共享内存残留,否则起不来
find /dev/shm -name '*llm_backend_*' -type f -delete
find /dev/shm -name 'llm_tokenizer_shared_memory_*' -type f -delete

rm -rf ~/mindie/log/
cd /usr/local/Ascend/mindie/latest/mindie-service
bin/mindieservice_daemon

模型需要信任远程代码时:pip install transformers==4.46.0。

六、CubeStudio 平台侧:从手工到一键

以上是完整的手工链路——理解原理后,在 CubeStudio 上这些都被产品化了:

  • 推理服务直接选 mindie / mindie-distributed 类型,选择平台内置的华为官方 MindIE 2.3.0 镜像(800I-A3 / 800I-A2 / 300I-Duo 三规格),填模型路径与卡数即可发布;
  • 配置生成与环境脚本平台已内置示例(generate_config.py / source_env.sh);
  • 发布后自动获得:泛域名访问、负载监控、多版本滚动升级、LLM 服务网关(Token 中转 + JWT 认证 + 流式);
  • 与计量计费、多租户配额打通——昇腾大模型推理可以按项目组核算成本。

「昇腾 910B 跑 DeepSeek 多机推理」从机房网线到对外 API 的完整链路,至此闭环。


了解更多

CubeStudio 采用 MIT 开源协议,开源免费商用并支持源码交付与二次分发,开源版本已有数千家企业私有化部署。

  • 官网与在线文档:https://www.cubestudio.vip
  • 开源仓库(GitHub):https://github.com/data-infra/cube-studio
  • 开源仓库(Gitee):https://gitee.com/data-infra/cube-studio
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐