惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
T
The Blog of Author Tim Ferriss
罗磊的独立博客
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
Recorded Future
Recorded Future
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
Recent Announcements
Recent Announcements
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Apple Machine Learning Research
Apple Machine Learning Research
T
Threatpost
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
Scott Helme
Scott Helme
P
Palo Alto Networks Blog
T
Tenable Blog
P
Privacy International News Feed
V
Visual Studio Blog
F
Fortinet All Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
AI
AI
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Security Affairs
S
SegmentFault 最新的问题
C
Cisco Blogs
博客园 - 聂微东
MyScale Blog
MyScale Blog
V
Vulnerabilities – Threatpost
量子位
T
The Exploit Database - CXSecurity.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Security Latest
Security Latest
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Troy Hunt's Blog
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
The Last Watchdog
The Last Watchdog

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
Day 0 部署:昇腾 910B DeepSeek-V4 部署指南与压测表现
GPUStack · 2026-04-27 · via 博客园_首页

随着 DeepSeek 正式发布 DeepSeek-V4 系列,大模型的工程边界再次被明显推高。该系列基于 MoE 架构,提供了 DeepSeek-V4-Flash 284BDeepSeek-V4-Pro 1.6T 两种规格,同时在推理阶段仅激活数十亿参数,在性能与成本之间取得了新的平衡。配合百万级上下文窗口与全新的注意力优化机制,其在长文本理解、复杂推理以及智能体任务中的表现,已经开始逼近甚至挑战当前主流闭源模型。

从架构设计来看,DeepSeek-V4 不只是简单的参数扩展,而是在多个关键路径上进行了系统性优化。例如混合注意力机制(CSA+HCA)显著降低长上下文推理成本mHC 结构强化深层网络的稳定性,而 Muon 优化器则提升了训练效率与收敛表现。这些优化技术使得其在长上下文与复杂推理场景中具备更高的性价比。

img

另一方面,这类超大规模 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 节点。

image-20260404155239420

添加 昇腾 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),并复制系统生成的接入命令,在目标节点执行。

image-20260424224625639

该命令本质上会启动一个 Worker 容器,并自动注册到 Server。

(4)验证 Worker 状态

节点接入后,可以在节点上查看容器日志:

docker logs -f gpustack-worker

同时,在 GPUStack 控制台中也可以看到节点状态是否为 Ready

至此,GPUStack 的控制面已成功部署,昇腾 NPU 节点也顺利接入集群,并能够正常采集设备名称、索引、厂商信息、温度、利用率及显存使用等指标。接下来即可在该环境中部署具体的推理服务。

image-20260424225217904

添加自定义 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 配置如图所示:

image-20260424225457181

注意:

  1. GPUStack 会自动调用主机容器运行时拉取容器镜像,需要确保 Worker 节点可访问 Quay.io,或者提前拉取好并重新 tag,并按需修改 UI 配置中的镜像地址;
  2. 保持执行命令中的 {{}} 变量内容不变,此为模板化配置。

也可以切换到 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 中一起导入。

image-20260424225627054

部署 DeepSeek V4 模型

vLLM Ascend 已提供关于 DeepSeek V4 模型的部署与使用教程,详情可参考:

https://docs.vllm.ai/projects/ascend/en/v0.13.0/tutorials/DeepSeek-V4.html

以下将介绍在 GPUStack 上部署 DeepSeek V4 Flash 模型的配置流程。

  1. 在在线环境下,可直接通过 ModelScope 搜索 Eco-Tech/DeepSeek-V4-Flash-w8a8-mtp 模型并进行部署,具体步骤参考下方。

  2. 在离线环境中,需要提前下载好模型权重,并将其分发到 Worker 节点,同时挂载到对应的 Worker 容器中。随后,在 GPUStack 控制台 - 模型文件菜单中,选择添加模型文件 - 本地路径,填写对应的模型权重路径。需要注意,这里填写的应为容器内路径,例如:

image-20260424230142577

联网环境:在 GPUStack 控制台 - 部署菜单下,选择 部署模型 → ModelScope,直接搜索 Eco-Tech/DeepSeek-V4-Flash-w8a8-mtp 模型进行部署。

离线环境:可从 GPUStack 控制台 - 模型文件菜单中,选择已添加的 DeepSeek-V4-Flash-w8a8-mtp 模型进行部署。

vLLM

  • 后端:选择 vLLM

  • 版本:选择前面自定义添加的 0.13.0rc3-custom

  • GPU:8 块 910B2 64GB NPU

使用以下后端参数和环境变量启动,后端参数支持单行或多行形式(注意已设置 TP 8 DP 1,请确保有八块 NPU 可分配;其它环境请根据实际情况调整并行策略):

# 后端参数
--gpu-memory-utilization 0.9
--max-model-len 65536
--max-num-batched-tokens 8192
--max-num-seqs 16
--data-parallel-size 1
--tensor-parallel-size 8
--enable-expert-parallel
--quantization ascend
--block-size 128
--async-scheduling
# 注意修改 chat_template.jinja 路径为实际路径
--chat-template /var/lib/gpustack/cache/model_scope/Eco-Tech/DeepSeek-V4-Flash-w8a8-mtp/chat_template.jinja
--additional-config '{"enable_cpu_binding": "true", "multistream_overlap_shared_expert": true}'
--speculative-config '{"num_speculative_tokens": 1,"method": "deepseek_mtp"}'
--compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY"}'

# 环境变量
USE_MULTI_BLOCK_POOL=1
OMP_PROC_BIND=false
OMP_NUM_THREADS=10
PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
ACL_OP_INIT_MODE=1
TRITON_ALL_BLOCKS_PARALLEL=1

等待模型启动时,可以在操作中点击查看日志,实时观察启动过程:

image-20260424230636495

当模型实例状态显示为 Running 时,说明模型已经成功启动,可以进行后续的测试。

image-20260424230659553

模型测试

试验场

单请求 31 Tokens/s,考虑初始支持,后续还有优化空间:

0d253b9ca3b2e5be0de0e6c9d478b530

基准测试

通过 GPUStack 提供的基准测试功能对模型进行一键性能压测,此处选择吞吐模式:

image-20260424231006892

压测结果如下:

image-20260424231024641

加入 GPUStack 社区

GPUStack 社区聚焦 AI 基础设施与大模型实践

社区中持续分享真实环境下的部署经验、问题排查案例,以及推理引擎、算力管理和系统架构相关讨论。

欢迎扫码加入 GPUStack 社区,与更多关注 AI Infra 与大模型推理实践的伙伴一起交流、学习与分享

wecom-temp-118334-5a49718fdb2475becf1d9fa8ab9e825c

若群聊已满或二维码失效,请访问以下页面查看最新群二维码:
https://github.com/gpustack/gpustack/blob/main/docs/assets/wechat-group-qrcode.jpg