设计来看,DeepSeek-V4不只是简单的参数扩展,而是在多个关键路径上进行了系统性优化。例如混合注意力机制(CSA+HCA)显著降低长上下文推理成本,mHC 结构强化深层网络的稳定性,而Muon 优化器则提升了训练效率与收敛表现。这些优化技术使得其在长上下文与复杂推理场景中具备更高的性价比。
另一方面,这类超大规模 MoE 模型对对底层硬件与推理引擎的适配能力提出了更高要求。在国产算力环境下,DeepSeek-V4的稳定运行与性能释放,仍然需要从硬件厂商到推理引擎的持续优化与协同改进。本文基于GPUStack,提供在昇腾 910B 环境部署 DeepSeek-V4 的实践教程,并给出实际压测性能表现数据,供参考。
GPUStack 安装与集群初始化
GPUStack 是一个开源 GPU 集群管理与 AI 模型服务平台,旨在高效部署 AI 模型。它可以配置并编排多种推理引擎——如 vLLM、SGLang、TensorRT-LLM,甚至自定义引擎——以在 GPU 集群上实现最佳性能。核心功能包括多异构 GPU 集群池化调度、可插拔推理引擎架构、Day 0 模型支持、性能优化配置(低延迟/高吞吐)、以及企业级运维能力,如故障恢复、负载均衡、监控与权限管理。
GPUStack 可以帮助我们高效地管理vLLM、SGLang等推理引擎,并推动模型从部署走向企业生产落地运营。在开始部署DeepSeek V4之前,首先完成 GPUStack 控制面的安装,并将 昇腾 NPU 节点纳入管理。
准备容器环境
GPUStack 以容器方式运行,因此需要提前准备好容器运行环境(如 Docker、Podman 或 Kubernetes)。本文以 Docker 为例进行说明。
在各节点上安装 Docker,确保服务已正常启动:
docker info启动 GPUStack Server
GPUStack Server 无需依赖 GPU,可运行在普通 CPU 节点上,也可运行在 GPU 节点。本文以八卡昇腾 910B2为实验环境,在该节点上启动 GPUStack Server 容器:
sudo docker run -d --name gpustack \ --restart unless-stopped \ -p 80:80 \ --volume gpustack-data:/var/lib/gpustack \ swr.cn-south-1.myhuaweicloud.com/gpustack/gpustack:v2.1.2 \ --debug --bootstrap-password GPUStack@123关键参数说明:
- -p 80:80:用于对外暴露 Web 控制台端口;如需修改为其他端口(例如 9999),可调整为 -p 9999:80。
- --volume:持久化平台数据(包括模型服务、计量数据、API Key 等)
- --bootstrap-password:初始化 admin 用户密码
- --debug:开启调试日志,便于排查问题
容器启动后,可以通过日志确认服务是否正常运行:
docker logs -f gpustack访问控制台并初始化
打开浏览器访问:http://<Server 主机 IP>:80
使用默认账号登录:
- 用户名:admin
- 密码:GPUStack@123
登录后,首先创建一个 Docker 类型的集群,用于统一管理后续接入的 GPU 节点。
添加 昇腾 NPU Worker 节点
在集群创建完成后,可以接入 昇腾 NPU 节点。
在添加节点之前,先完成基础环境检查。
(1)驱动版本检查
在目标节点上执行以下命令:
npu-smi info该命令会显示当前安装的 NPU 驱动版本。建议驱动版本≥ 25.5,以保证对 DeepSeek V4 模型的兼容性和稳定性。
(2)Ascend Docker Runtime 检查
执行以下命令检查 Docker 是否正确配置了Ascend Docker Runtime:
sudo docker info 2>/dev/null | grep -q "ascend" && echo "Ascend Container Toolkit OK" || (echo "Ascend Container Toolkit not configured"; exit 1)未安装请下载并安装:https://gitcode.com/Ascend/mind-cluster/releases/download/v7.3.1/Ascend-docker-runtime_7.3.1_linux-aarch64.run
- 该命令会从
docker info输出中查找是否存在ascend运行时配置。 - 如果输出 "Ascend Container Toolkit OK",说明 Docker 已正确配置,可在容器中访问 GPU。
- 如果输出 "Ascend Container Toolkit not configured",则说明未正确配置,需要安装并启用 Ascend Container Toolkit,否则推理容器无法使用 GPU 资源。
(3)接入 Worker 节点
在 GPUStack 控制台中,选择添加节点(Worker),并复制系统生成的接入命令,在目标节点执行。
该命令本质上会启动一个 Worker 容器,并自动注册到 Server。
(4)验证 Worker 状态
节点接入后,可以在节点上查看容器日志:
docker logs -f gpustack-worker同时,在 GPUStack 控制台中也可以看到节点状态是否为Ready。
至此,GPUStack 的控制面已成功部署,昇腾 NPU 节点也顺利接入集群,并能够正常采集设备名称、索引、厂商信息、温度、利用率及显存使用等指标。接下来即可在该环境中部署具体的推理服务。
添加自定义 vLLM 和 SGLang 版本
GPUStack 支持可插拔的推理引擎架构,允许自定义推理后端及其版本,用于引入 GPUStack 未内置的 vLLM / SGLang / MindIE 版本,或接入其他自定义推理引擎镜像。
为了部署DeepSeek V4模型,需要添加 vLLM Ascend 最新发布的v0.13.0rc3版本。
vLLM
在推理后端菜单,编辑 vLLM,在版本配置中选择添加版本,添加一个新的 vLLM 版本,指向 vLLM Ascend 官方镜像:
| 配置 | 值 |
|---|---|
| 版本 | 0.13.0rc3 |
| 镜像名称 | quay.io/ascend/vllm-ascend:v0.13.0rc3 |
| 框架 | CANN |
| 覆盖镜像入口命令(ENTRYPOINT) | vllm serve |
| 执行命令 | {{model_path}} --host {{worker_ip}} --port {{port}} --served-model-name {{model_name}} |
自定义添加 vLLM Ascend 0.13.0rc3 配置如图所示:
注意:
- GPUStack 会自动调用主机容器运行时拉取容器镜像,需要确保 Worker 节点可访问 Quay.io,或者提前拉取好并重新 tag,并按需修改 UI 配置中的镜像地址;
- 保持执行命令中的 {{}} 变量内容不变,此为模板化配置。
也可以切换到 YAML 模式,直接使用以下的 YAML 导入(公众号复制可能存在特殊格式,可以发送给 AI 重新整理 YAML 格式):
backend_name: vLLM version_configs: 0.13.0rc3-custom: image_name: quay.io/ascend/vllm-ascend:v0.13.0rc3 entrypoint: vllm serve run_command: >- {{model_path}} --host {{worker_ip}} --port {{port}} --served-model-name {{model_name}} env: {} custom_framework: cann注意:如果当前已经有其它自定义版本,需要将其它自定义版本一同添加在 version_configs 中一起导入。