Day 0 实测|在 GPUStack 上部署 DeepSeek-V4-Flash-DSpark,吞吐直接翻倍

本文由 GPUStack 社区用户实测分享整理。DeepSeek-V4-Flash-DSpark 是在 DeepSeek-V4-Flash 基础上挂载了投机解码(Speculative Decoding)模块的增强版本——同一份权重,额外的投机模块,让吞吐和首 Token 时延同时变好。

社区用户拿到模型当天(Day 0)就在 8 卡 H20-141G 的环境上,通过 GPUStack 完成了部署和压测,并和原生 DeepSeek-V4-Flash(DSV4F)做了同参数对比。先把结论放在最前面:

  • 单并发 TPS:1K/1K 场景下 DSpark 195 TPS,是原版(96)的约 2 倍
  • 整体吞吐:64K/3K、10 并发场景下 DSpark 338 TPS,是原版(198)的约 1.7 倍
  • 首 Token 时延(TTFT):约为原版的 1/2

下面是完整的部署与实测过程。


一、在 GPUStack 上部署 DSpark

GPUStack 内置了 SGLang 推理后端,我们只需为它增加一个支持 DSpark 的镜像版本,整个过程在 Web 界面上点几下即可完成。

① 进入「推理后端」,编辑 SGLang

左侧菜单进入 推理后端,找到 SGLang 卡片,点右上角菜单 →「编辑」。

② 添加 dspark 版本

在版本配置里点「添加版本」,新增一个名为 dspark 的版本,镜像名称填写:

swr.cn-north-4.myhuaweicloud.com/desaysv/gpustack/sglang-dspark:v1.0

框架选择 CUDA,覆盖镜像入口命令为 sglang serve,执行命令为 --model-path {{model_path}} --host {{worker_ip}} --port {{port}}

③ 新建部署

回到 部署 页面,点击右上角「部署模型」,来源选择 ModelScope

④ 选模型与后端

  • 模型搜索并选择 deepseek-ai/DeepSeek-V4-Flash-DSpark
  • 后端选 SGLang
  • 后端版本选刚才添加的 dspark-custom

⑤ 配置后端参数

在「高级」里逐项填入后端参数(以 8 卡 H20-141 为例):

--context-length 1000000
--trust-remote-code
--tp-size 8
--ep-size 8
--moe-runner-backend flashinfer_mxfp4
--speculative-moe-runner-backend flashinfer_mxfp4
--speculative-algorithm DSPARK
--speculative-eagle-topk 1
--speculative-num-steps 1
--mem-fraction-static 0.85
--cuda-graph-max-bs 32
--max-running-requests 32
--disable-overlap-schedule

⑥ 设置环境变量

添加一个环境变量,确保依赖正确安装:

PYPI_PACKAGES_INSTALL -U distro -i https://mirrors.aliyun.com/pypi/simple/

⑦ 启动,观察日志

提交后模型开始拉起。可以看到 CUDA Graph capture、Application startup complete,以及 Uvicorn 监听在推理端口上:

⑧ 状态变为 Running

实例进入 Running,部署完成。

⑨ 在线验证

在试验场里随便对话两句,右下角实时吞吐显示 输出 185.94 Tokens/s,单并发 TPS 稳定在 200 左右

⑩ 查看推理服务端口

如果要直接压测,点开实例详情即可看到推理服务的 IP 和端口(本例为 10.91.3.213:40048)。


二、性能实测:DSpark vs 原版 DSV4F

相同参数、相同硬件下,把原生 DeepSeek-V4-Flash(开启 MTP)与 DSpark 做了两组对比压测。压测命令使用 SGLang 自带的 bench_serving

场景 1:1K / 1K(单请求)

HF_ENDPOINT=https://hf-mirror.com python3 -m sglang.bench_serving \
    --backend sglang --port 40048 \
    --dataset-name random --random-input-len 1024 --random-output-len 1024 \
    --random-range-ratio 1.0 --num-prompts 1 \
    --max-concurrency 1 --request-rate inf --host <推理服务器IP>

传统 DSV4F: Output throughput 96.20 tok/s,TTFT 300.45 ms,Accept length 2.71

DSpark(DSV4FD): Output throughput 195.18 tok/s,TTFT 129.34 ms,Accept length 4.42

单并发 TPS = 195,是普通 DSV4F(96)的约 2 倍,首 Token 时延同时降到原来的 ~1/2。

场景 2:64K / 3K(10 个请求)

HF_ENDPOINT=https://hf-mirror.com python3 -m sglang.bench_serving \
    --backend sglang --port 40048 \
    --dataset-name random --random-input-len 64000 --random-output-len 3000 \
    --random-range-ratio 1.0 --num-prompts 10 \
    --max-concurrency 1 --request-rate inf --host <推理服务器IP>

传统 DSV4F(MTP): Output throughput 198.60 tok/s,投机接受率 20.91%,Acceptance length 1.21

DSpark(DSV4FD): Output throughput 338.17 tok/s,Accept length 4.90

长上下文场景下 DSpark TPS = 338,是普通 DSV4F(198)的约 1.7 倍,整体吞吐接近翻倍。

数据汇总

场景 指标 传统 DSV4F DSpark(DSV4FD) 提升
1K / 1K Output TPS 96.20 195.18 ≈ 2.0×
1K / 1K TTFT (ms) 300.45 129.34 ≈ 0.43×
1K / 1K Accept length 2.71 4.42
64K / 3K Output TPS 198.60 338.17 ≈ 1.7×
64K / 3K Accept length 1.21 4.90

总结

无论是单并发 TPS 还是整体吞吐,DeepSeek-V4-Flash-DSpark 基本都能做到原版 DSV4F 的 2 倍左右,同时把首 Token 时延打到约 1/2——而代价仅仅是换一份带投机解码模块的权重和镜像。借助 GPUStack 内置的 SGLang 后端,整个上线过程在 Web 界面点几下就能完成,Day 0 即可投产。

实测环境:8 卡 H20-141G | GPUStack v2 | SGLang 0.5.14(dspark-custom 镜像,基于 SGLang 0.5.14 patch 而成)

感谢社区用户的实测分享。

posted @ 2026-07-02 15:31  GPUStack  阅读(91)  评论(0)    收藏  举报