☰
DeepSeek V4 Flash DSpark 配置指南:.env.dspark 40+ 关键开关全解析与踩坑清单
2026/10/11 19:20:22 网站建设 项目流程

【免费下载链接】DeepSeek-v4-Flash-DSpark-2x-DGX-Spark

DeepSeek-v4-Flash 0731 recipe for 2x DGX Sparks

项目地址:https://gitcode.com/gh_mirrors/de/DeepSeek-v4-Flash-DSpark-2x-DGX-Spark
点击查看免费下载

DeepSeek-v4-Flash-DSpark-2x-DGX-Spark 是一套让两台 NVIDIA DGX Spark(GB10,TP=2)跑满 DeepSeek V4 Flash Vision-Exp 的开源 recipe:vLLM 张量并行、DSpark 投机解码、1M token 上下文、原生图片输入。整个部署的行为几乎全部由一个文件控制——.env.dspark,里面包含 40+ 个关键开关:并发槽位、思考深度、NCCL/RoCE 网络、JIT 缓存、十几个 opt-in 热修复。这篇指南带你快速读懂这些开关、看懂并发基准数据,并绕开新手最容易踩的坑。

上图是默认配置(MAX_NUM_SEQS=6、NVFP4 DS-MLA KV)下的实测并发基准:并发升到 c=6 时,聚合吞吐约 158–190 tok/s,TTFT 稳定在 1.3–2.4 s——这正是.env.dspark里那组默认值想帮你守住的平衡点。

一分钟上手:复制、改值、重启

cp .env.dspark.example .env.dspark # 复制模板 # 编辑 .env.dspark,至少填好集群地址与网卡名 ./prepare-dspark-model-cache.sh --yes # 拉权重 ./stop-deepseek-v4-flash-dspark.sh # 改完开关后先停 ./start-deepseek-v4-flash-dspark.sh # 再启动

模板文件.env.dspark.example自带逐行中文级注释;启动脚本每次都会把 head 节点的.env.dspark同步到 worker。官方开关矩阵见 README.md 的 “.env.dsparkswitches” 章节,Anemll 与 Stage-C 两套镜像的差异矩阵见 docs/ENVS.md。

⚠️ 铁律一:任何开关改动后都要./stop-…+./start-…重建两个 rank 的容器。docker compose restart会复用容器的可写层,已经打进去的补丁和旧环境变量不会被还原,等于“改了没生效”。

8 组核心配置速查表

下面按功能分组列出.env.dspark.example中最常用的开关(共 50+ 项,下表覆盖 40+ 关键项)。⭐ 为新手必须理解的核心项。

1️⃣ 集群与节点寻址

变量默认值作用
⭐WORKER_HOST—worker 节点的 SSH 地址,必填
⭐MASTER_ADDR/MASTER_PORT25000head 节点 RoCE IP / 分布式端口
NODE_RANK0head 为 0;worker 节点写1并配HEADLESS=1
VLLM_HOST_IP/WORKER_VLLM_HOST_IP—两节点各自的 RoCE IP,防止 ZeroMQ 绑错网卡
WORKER_DIR/WORKER_SCRIPT_DIR空worker 仓库路径与 head 不同时才需要
DSPARK_RESTART_POLICYunless-stopped开机自恢复;systemd 下配SuccessExitStatus=3
DSPARK_STOP_GRACE10s停止宽限期,别设 180s(会挂死)

2️⃣ NCCL / RoCE 网络

变量默认值作用
⭐NCCL_IB_HCA—RoCE HCA 选择器,两台机器的口名可能不同
WORKER_NCCL_IB_HCA等 4 个继承 headworker 口名与 head 不一致时单独指定
NCCL_SOCKET_IFNAME/TP_SOCKET_IFNAME/GLOO_SOCKET_IFNAME—各条通道的绑定网卡
NCCL_CROSS_NIC1跨 NIC 直通
NCCL_NET/NCCL_IB_DISABLEIB / 0强制走 InfiniBand 栈
NCCL_GIN_ENABLE未设(=开)设0走 CPU 发起的 comm-init,启动可从 ~2 分钟降到 ~13 s

💡 GB10 的 QSFP 口会枚举成两块虚拟网卡(2× PCIe Gen5 x4)。实测在NCCL_IB_HCA里同时列出两个控制器(如rocep1s0f0,rocep1s0f1),端到端吞吐可提升约 7.6%(1311→1410 tok/s 单流场景)——这是网络组里性价比最高的一个调优点。

3️⃣ 权重与模型缓存

变量默认值作用
⭐ABLITERATED0官方 Vision-Exp 权重;1叠加拒绝方向投影(需先同意 gated 条款)
DSPARK_MODEL_OFFICIALdeepseek-ai/…Vision-Exp官方权重仓库 id
DSPARK_REVISION86f746b3…权重 commit 锁;置空则跟踪 main
DSPARK_WORKER_HF_NFS01= worker 通过 NFSv4 挂 head 缓存,省一次 150+ GiB 下载
HF_CACHE/WORKER_HF_CACHE—两节点的 HuggingFace 缓存目录
HF_HUB_OFFLINE/TRANSFORMERS_OFFLINE1缓存齐全后离线运行
SERVED_MODEL_NAMEdeepseek-v4-flash-vision-exp对外模型别名(可空格分隔多个)

4️⃣ 服务形态与并发(性能主战场)

变量默认值作用
⭐MAX_MODEL_LEN1048576单请求上下文上限(1M)
⭐MAX_NUM_SEQS6并发槽位。调高吞吐涨,但稀疏 MLA 卡顿风险随验证行数上升,无“通用安全值”
MAX_NUM_BATCHED_TOKENS8192每步 prefill token 预算;槽位调高时配套提到12288
LONG_PREFILL_TOKEN_THRESHOLD1024issue #27 分块上限,保证 decode 车道不被长 prefill 饿死
DSPARK_MAX_INFLIGHT_PREFILLS1在途 partial prefill 数(1–3);2是官方 A/B 背书的折中档
⭐GPU_MEMORY_UTILIZATION_TEXT0.835KV 池大小;CUDA graph 捕获 OOM 时降到 ~0.78
⭐MTP_NUM_TOKENS6DSpark 投机深度 k;必须 ≥5 且被num_nextn_predict_layers=3整除
DRAFT_SAMPLE_METHODprobabilistic草稿采样方式;官方 0731 卡配greedy
DEFAULT_THINKINGlow默认思考深度(off/low/high/max),请求级参数可覆盖
LIMIT_MM_PER_PROMPTimage=8每请求最多图片数(仅 user 消息可用图)

5️⃣ API 与推理控制

变量默认值作用
⭐VLLM_HOST/VLLM_PORT0.0.0.0/ 8888监听地址与端口,./start-… --port可临时覆盖
VLLM_API_KEY/DSPARK_API_KEYS空单 key / 多 key 鉴权,二者互斥,同时设会直接 exit 2
VLLM_ENABLE_RESPONSES_API_STORE0Responses API 有状态续写(store=true)开关
DSPARK_RESPONSES_STORE_MAX_ENTRIES256上述存储的终态条目上限
DSPARK_SUPPRESS_STOPS_IN_REASONING1客户端stop串等到 `

才生效,避免空 content | |VLLM_PREFIX_CACHE_RETENTION_INTERVAL|4096| issue #26:SWA 前缀缓存检查点间距(256 的倍数) | |DSPARK_ENABLE_DSPARK_SWA_PREFIX|0| 修复 prefix cache 命中后草稿 SWA 缓存为空导致的截断退化 |

6️⃣ 热修复与实验开关(默认全关,按需开启)

变量作用(设为 1 时)
DSPARK_ENABLE_ISSUE31_GPU_HOTFIX支持thinking_token_budget字段(默认发该字段会 HTTP 400)
DSPARK_ENABLE_ISSUE141_SPARSE_MLA_CHUNK超大稀疏 MLA decode 调用切 ≤64 行,缓解 #141 随机卡顿(缓解而非根因修复)
DSPARK_ENABLE_ISSUE136_XGRAMMAR_HOTFIXXGrammar 终止与 post-reasoning 草稿校验回移链
DSPARK_ENABLE_ISSUE191_TOOLCALL_FAILCLOSEDtool_choice 命名/必填契约:违规重生成后仍失败则返回 500 而非错误 200
DSPARK_ENABLE_ISSUE138_RESPONSES_HISTORY_COMPAT放宽 Responses 全历史回放的校验
DSPARK_ENABLE_CODEX_AGENT_MESSAGE_COMPAT兼容 Codex 私有agent_message条目
DSPARK_ENABLE_DSPARK_BLOCK_K解除 k 整除规则,Vision-Exp 可用训练值 k=5
DSPARK_ENABLE_ROPE_SWA_FIX上游 vllm#54815:SWA 层用普通 RoPE 而非 YaRN
DSPARK_ENABLE_DSML_RECOVERY外层 tool_calls 包裹损坏时回收裸<invoke>,不再泄漏进正文
DSPARK_ENABLE_SP_INDEXER长 prefill 序列并行 Lightning indexer,长上下文 TTFT 利器(阈值DSPARK_SP_INDEXER_MIN_KEYS,默认 8192)
DSPARK_ENABLE_MXFP4_INDEXER_CACHEMXFP4 indexer K 缓存,logits 读减半(需先开下一项)
DSPARK_ENABLE_DEEPGEMM_SM121_ALIAS冷 JIT 缓存下补齐sm121_*头文件别名
DSPARK_ENABLE_C128A_PREFILL_CACHE跨层复用 C128A prefill 索引换算
DSPARK_ENABLE_ISSUE144_EFFORT_ALIGN对齐 effort 指令前缀,打通跨档位的缓存命中
DSPARK_ENABLE_ASSISTANT_FINAL_HOTFIX修复 messages 以 assistant 结尾时的“死状态”空转
DSPARK_ENABLE_REPLICATE_MARKOV/DSPARK_ENABLE_ADAPTIVE_CHUNK复制 Markov 头 / 自适应 prefill 分块(A/B 未达收益,默认关)

7️⃣ 运行时缓存与 NCCL 透传

变量默认值作用
TRITON_CACHE_DIR/cache/huggingface/triton-cacheTriton JIT 缓存持久化(issue #117:否则每次重启重新编译,可能拖垮 TP 对端超过 NCCL 看门狗)
TILELANG_CACHE_DIR/B12X_CUTE_COMPILE_CACHE_DIRHF 卷路径TileLang / CuTeDSL 编译缓存,同理
VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS1800sample_tokensRPC 超时(原生 300s,中途 JIT 会超时杀引擎)
TORCH_FR_BUFFER_SIZE/TORCH_NCCL_DUMP_ON_TIMEOUT2000 / 1NCCL 飞行记录仪:超时自动 dump 证据
TORCH_FR_DUMP_TEMP_FILE/TORCH_NCCL_DEBUG_INFO_PIPE_FILEHF 卷 / /tmpdump 落盘路径与手动触发管道
NCCL_IB_MERGE_NICS/NCCL_GIN_ENABLE/NCCL_DMABUF_ENABLE等 5 个未设空值会被 entrypoint 归一化为“不存在”,不遮罩 NCCL 默认值
PYTORCH_CUDA_ALLOC_CONFexpandable_segments:True显存分配段扩展
CUTE_DSL_ARCH/TORCH_CUDA_ARCH_LISTsm_121a/12.1aGB10 编译目标,别用错架构

8️⃣ 启动器侧辅助项

变量默认值作用
DSPARK_BOOT_SHAPE_WARMUP1启动后自动打 35 个精确 token 数请求,预热 Triton shape 桶,避免首请求中途 JIT
DSPARK_WARMUP_REQ_TIMEOUT240预热单请求超时(秒),首次启动编译慢就调大
WORKER2_HOST等 10 个空仅三节点 TP=3(./start-tp3.sh)使用,两节点启动完全忽略
TP3_MAX_NUM_SEQS空TP=3 槽位数,CLI--max-num-seqs优先
DSPARK_VLLM_IMAGEAnemll 0.1.1 摘要锁镜像 digest 锁,升级三步法写在注释里

调高 MAX_NUM_SEQS 前必读:并发与稳定性

.env.dspark.example里有一段很长的“STABILITY”注释,是本项目最值钱的血泪记录:

  • 高吞吐数字是真实的:N=32 时 c=32 聚合约 325 tok/s(对照默认 N=6 的 c=6 约 160);
  • 但 issue #141 的卡顿按突发(burst)随机发生,某台机器干净跑 3 轮,第 4 轮死锁在稀疏 MLA decode 里(约 700–900 秒墙钟后RuntimeError("cancelled"));
  • 没有任何被测MAX_NUM_SEQS被证实“普遍安全”,改它只改变发生概率,不是修复;
  • 更隐蔽的是轻度症状:短卡顿 → 批次取消 →静默截断(没有finish_reason、没有抢占、没有任何指标告警)。调高并发后,除了看重启,更要盯“缺失的finish_reason”。

默认的 48 行验证规模(N=6, k=6 补齐)恰好低于观测到的 64/65 行边界,这是默认值保守的由来。单用户长上下文场景,建议直接留在 2 节点默认档;想要 16 槽 + ~200 tok/s 聚合,看 docs/TP3.md 的三节点方案。

新手最容易踩的 7 个坑

  1. 改了开关只docker compose restart。容器可写层里的补丁和旧环境变量不会还原。正确姿势永远是./stop-deepseek-v4-flash-dspark.sh && ./start-deepseek-v4-flash-dspark.sh。
  2. 手填GPU_MEMORY_UTILIZATION或DSPARK_MODEL。前者由启动脚本从GPU_MEMORY_UTILIZATION_TEXT导出,手填会打架;后者只应通过ABLITERATED间接切换。
  3. 在 Anemll 0.1.1 上开 Stage-C 的VLLM_DSPARK_*变量。它们只注册在 Stage-C overlay 里(recipe/overlay/vllm/envs.py),在默认镜像里只会打出Unknown vLLM environment variable detected警告然后被忽略——看起来“没生效”,其实根本没生效。要启用需换成 Stage-C 镜像并合并 docker-compose.stage-c.override.yml。
  4. DEFAULT_THINKING=max却只给 512 的max_tokens。max 档的实测推理可吃掉 ~12.5k tokens,答案会整个没着落(finish_reason: length、content 为空)。要么调大 token 预算、要么降档、要么启用 #31 热修复发thinking_token_budget。
  5. MTP_NUM_TOKENS设为 5。校验脚本 validate-dspark-config.sh 会拦住:Vision-Exp 要求 k≥5 且能被 3 整除,所以是 6、9……想跑 k=5 需同时开DSPARK_ENABLE_DSPARK_BLOCK_K=1。
  6. 多 key 鉴权不加引号。启动脚本会source这个文件,空格分隔的多 key 不加引号时第二个 key 会被当命令执行。另注意:设了任一 key 变量后,文件里必须带补丁 patches/hotfix-vllm-redact-api-key-log.sh,且文件建议chmod 600——key 会出现在容器 argv 和docker inspect里,轮换必须 stop/start。
  7. 两台机器的 RoCE 口名不同却只填 head。GB10 环网上 worker 的 facing port 常与 head 不同,记得用WORKER_NCCL_IB_HCA等 4 个变量单独指定;GID 索引默认自动解析(NCCL_IB_GID_AUTO=1),手动 pin 反而可能在重启后失效。

启动失败的排查顺序

./validate-dspark-config.sh # 1. 先校验 .env.dspark(模型、k 值、捕获规模等) ./status-deepseek-v4-flash-dspark.sh # 2. 看双节点健康状态 ./logs-deepseek-v4-flash-dspark.sh # 3. 拉双节点日志 ./smoke-deepseek-v4-flash-dspark.sh # 4. 冒烟请求

四个脚本都在仓库根目录,配合 docs/PATCHES.md 的热修复证据记录,基本能覆盖 90% 的启动问题。如果确认某个开关“改了没生效”,先问一句:我是不是只做了 restart 而不是 stop+start?

写在最后

.env.dspark的设计哲学很清楚:默认值就是被 A/B 过的安全档,注释就是实验记录。每个DSPARK_ENABLE_*开关背后都对应一份实测数据(如 docs/CLAUDE/ab-results-2026-09-03.md),开之前花两分钟读一下注释里的测量结论,比盲目试错快得多。先从默认档跑通 6 并发 ~160 tok/s 的基线,再按需逐个打开实验开关,是这条 2× DGX Spark 路线上最稳的调优节奏。

【免费下载链接】DeepSeek-v4-Flash-DSpark-2x-DGX-Spark

DeepSeek-v4-Flash 0731 recipe for 2x DGX Sparks

项目地址:https://gitcode.com/gh_mirrors/de/DeepSeek-v4-Flash-DSpark-2x-DGX-Spark
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询