v2.0: a 2.8 bpw build closer to native 1017 (KLD 0.0198 against this build's 0.0243) is at sudoingx/DeepSeek-V4.1-Flash-1017-EXL3-2.8bpw. This build runs faster on the v2.0 engine: 106.2-106.4 / 61.8-62.0 / 147.6-149.1 tok/s on set b (code / prose / structured, two sessions) with
DOCKER_ENV="VLLM_DSPARK_ROUND_MS=27.3,31.3,34.7,38.1,41.1,43.8".
A quantization of deepseek-ai/DeepSeek-V4.1-Flash-1017 @ 1bae0e1088993b9b82de08f59de5be5a34e42170, made to be served at tensor parallel 2 on two NVIDIA DGX Sparks (GB10) by upstream vLLM with the patches and plugin in github.com/sudoingX/dgx-spark-deepseek-v41. Same recipe, plan settings and composition as the build of the launch checkpoint (2cba9e42, sudoingx/DeepSeek-V4.1-Flash-EXL3-2.7bpw), re-run end to end on 1017's weights.
wq_a, wq_b, wo_b and the shared expert at K4, wo_a at K5; the LM head at K4.main_proj stays FP8), its routed experts at EXL3 K3.This checkpoint loads only with that engine: vLLM main 6e517b15 + the repo's patch series + the vllm_exl3_moe plugin (the release image). Stock vLLM does not know its quant method (deepseek_v41_exl3). Other engines: not tested.
Measured on two DGX Sparks against native 1017. Method below.
| this build | native 1017 | |
|---|---|---|
| KLD vs native on the panel (mean, nats; the 8 domains weighted equally) | 0.0243 (0.0405) | reference |
| top-1 agreement | 95.47% | reference |
| perplexity on the panel | 1.6159 | 1.6005 |
| HumanEval+ (164), base / plus | 96.3 / 90.2 | 97.0 / 90.2 |
| MBPP+ (378), base / plus | 89.7 / 76.2 | 91.5 / 77.2 |
| IFEval (541), prompt strict / instruction strict | 89.1 / 92.4 | 90.4 / 93.6 |
decode, kit_bench.py set b, code / prose / structured, DSpark on (k = 5, per-round depth) |
100.7 / 59.2 / 141.3 tok/s | |
| context per request | 262,144 tokens; needles 3/3 at 8K, 32K, 64K and 128K | |
| MemAvailable after load, head / worker | 8 / 9 GiB |
No suite differs significantly from native 1017 (smallest paired p: MBPP+ base, 0.14).
For comparison on the same panel with the same reference implementation: LibertAIDAI's 1017 EXL3 2.9 bpw pack (LibertAIDAI/DeepSeek-V4.1-Flash-1017-EXL3-2.9bpw @ c178a012, every EXL3 tensor it ships loaded) scores KLD 0.0304 (domains weighted equally 0.0454), top-1 94.76%, perplexity 1.6155. This build is closer to native on 7 of the 8 domains and with the domains weighted equally; LibertAIDAI's pack is closer on multilingual (0.0571 vs 0.0697) and on a panel of 300 IFEval prompts with native replies (KLD 0.1135 vs 0.1199).
Other 1017 packs made with this recipe, on the same panel: object-oriented-architects' 2.7 bpw pack (LibertAIDAI's tensors around this recipe's experts), measured here, 0.0232 / 95.65%, IFEval-reply 0.1201; and by their own numbers HeNryous's 2.75 bpw build with the dense set at K5 and the head at K6, 0.0201 / 95.96%, and 0xSero's 2.7 bpw build, 0.0304 / 94.95%. This build's experts with the dense set at K5 and the head at K6 measure 0.0219 / 95.75%; this build keeps K4 / K4 for decode speed (on the same boxes and session, that composition decoded at 95.1 / 56.7 / 135.3 tok/s against this build's 100.4 / 59.0 / 142.1; the recipe repo's BENCHMARKS.md has both variants).
| file | what |
|---|---|
config.json |
the official config plus quantization_config: quant_method: deepseek_v41_exl3 and an exl3_moe block (plan file, decode kernel coop, tp_layout: channels, exllamav3_version 1.6.0, head: exl3 with head_k 4, and dense: the K of each dense module, backbone and drafter) |
exl3_moe_plan.json |
the bit width of every routed expert: per layer, one character per expert; a drafter section for the drafter's experts |
model-exl3-L00-p0.safetensors to model-exl3-L39-p1.safetensors |
each layer's EXL3 routed experts as the two Sparks encoded them, in two halves; layers 16-18 in one file each (-p0), encoded on one Spark while the other was down |
model-exl3-dense.safetensors |
the EXL3 dense linears of all 40 layers: wq_a, wq_b, wo_a (8 head-group slices), wo_b, the shared expert |
model-exl3-head.safetensors |
the EXL3 K4 head, head.{trellis,suh,svh,mul1} |
model-exl3-mtp.safetensors, model-exl3-mtp-experts.safetensors |
the DSpark drafter's EXL3 dense linears (K5) and routed experts (K3) |
model-NNNNN-of-00046.safetensors |
every other official tensor, unchanged: attention norms and compressors, routers, embeddings, vision tower, the drafter's remaining tensors. Copied from the official shards minus the tensors EXL3 replaces. |
model.safetensors.index.json |
tensor to file map, including the Engram tensors in model-00047-of-00048.safetensors and model-00048-of-00048.safetensors |
tokenizer.json, tokenizer_config.json, encoding/ |
official, unchanged (1017 ships no chat_template.jinja; vLLM formats chats with its DeepSeek V4.1 encoder) |
LICENSE |
DeepSeek's MIT license, unchanged |
MANIFEST.sha256 |
sha256 of every file in this repo except this card and the manifest itself, plus DeepSeek's two Engram shards (their official sha256) |
Download size: 196 GB (182.8 GiB), plus 203 GB for the two official Engram shards.
Both Sparks need the full folder at the same absolute path, the serving image built from the GitHub repo, and passwordless ssh from a control machine. Full steps, image build and launcher settings: the GitHub README.
# on both Sparks
hf download sudoingx/DeepSeek-V4.1-Flash-1017-EXL3-2.7bpw --local-dir ~/models/dsv41-1017-exl3
hf download deepseek-ai/DeepSeek-V4.1-Flash-1017 model-00047-of-00048.safetensors model-00048-of-00048.safetensors \
--revision 1bae0e1088993b9b82de08f59de5be5a34e42170 --local-dir ~/models/dsv41-1017-exl3
(cd ~/models/dsv41-1017-exl3 && sha256sum -c MANIFEST.sha256)
# from the control machine, in a clone of the GitHub repo
HEAD=<ssh-host-of-rank-0> WORKER=<ssh-host-of-rank-1> MODEL_DIR=/absolute/path/to/dsv41-1017-exl3 \
./scripts/launch/dsv41_tp2.sh up
The launcher runs vllm serve in one container per Spark with --tensor-parallel-size 2 --nnodes 2, NCCL over RoCE on the ConnectX link, VLLM_DISABLED_KERNELS=FlashInferCutlassMxfp8LinearKernel (Marlin for every MXFP8 linear), DSpark speculative decoding, Engram disk offload, FULL_DECODE_ONLY CUDA graphs, FlashInfer autotune off, the V4.1 tool-call and reasoning parsers, and text-only input by default. OpenAI API on the head node, port 8000, model name dsv41. The per-round depth table measured for this build: VLLM_DSPARK_ROUND_MS=28.99,32.76,36.11,39.34,42.43,45.06.
scripts/quantize/p4_link_variant.py and the variant tools). Everything is reproducible from the GitHub repo; see its RECIPE.md.39e0db2f0b58aa432a512aed7b425e3feb1b424c9e02cc315be39bc9b7b71cf2), scored against native 1017's logits.inference/model.py, streamed layer by layer on a Spark, for the native weights and for every quantized build alike; each build's own tensors are loaded into it, everything else stays official.kit_bench.py set b: single stream, greedy, thinking off, 384-token replies, median of 9 reps a prompt.MIT, as the base model. These weights are a derivative of DeepSeek-V4.1-Flash-1017; DeepSeek's LICENSE file ships unchanged. The serving code, patches and plugin in the GitHub repo are Apache-2.0.
DeepSeek for the model and its reference implementation. turboderp for exllamav3 (MIT): the EXL3 quantizer and kernels. The vLLM project, with upstream PRs #56509 (zeenat28-ui) and #58560 (bluemelov1) carried as patches. bertholomus for kit_bench.py. LibertAIDAI's 1017 pack was measured as the baseline; nothing of theirs is in these weights.
model-exl3-mtp-experts.safetensors 5.1 GBmodel-exl3-L16-p0.safetensors 4.8 GBmodel-exl3-L17-p0.safetensors 4.7 GBmodel-exl3-L18-p0.safetensors 4.7 GBmodel-exl3-dense.safetensors 3.4 GBmodel-exl3-L06-p0.safetensors 2.8 GBmodel-exl3-L00-p0.safetensors 2.8 GBmodel-exl3-L01-p0.safetensors 2.8 GBmodel-exl3-L01-p1.safetensors 2.7 GBmodel-exl3-L05-p1.safetensors 2.7 GBmodel-exl3-L00-p1.safetensors 2.7 GBmodel-exl3-L07-p1.safetensors 2.7 GBmodel-exl3-L05-p0.safetensors 2.7 GBmodel-exl3-L06-p1.safetensors 2.7 GBmodel-exl3-L10-p1.safetensors 2.7 GBmodel-exl3-L07-p0.safetensors 2.7 GBmodel-exl3-L08-p0.safetensors 2.7 GBmodel-exl3-L09-p1.safetensors 2.6 GBmodel-exl3-L09-p0.safetensors 2.6 GBmodel-exl3-L08-p1.safetensors 2.6 GBmodel-exl3-L11-p1.safetensors 2.6 GBmodel-exl3-L10-p0.safetensors 2.6 GBmodel-exl3-L02-p1.safetensors 2.6 GBmodel-exl3-L03-p1.safetensors 2.6 GBmodel-exl3-L03-p0.safetensors 2.6 GBmodel-exl3-L15-p0.safetensors 2.6 GBmodel-exl3-L02-p0.safetensors 2.6 GBmodel-exl3-L38-p1.safetensors 2.6 GBmodel-exl3-L11-p0.safetensors 2.6 GBmodel-exl3-L04-p0.safetensors 2.6 GBmodel-exl3-L37-p0.safetensors 2.6 GBmodel-exl3-L39-p1.safetensors 2.6 GBmodel-exl3-L04-p1.safetensors 2.6 GBmodel-exl3-L37-p1.safetensors 2.6 GBmodel-exl3-L38-p0.safetensors 2.6 GBmodel-exl3-L39-p0.safetensors 2.6 GBmodel-exl3-L12-p1.safetensors 2.5 GBmodel-exl3-L13-p0.safetensors 2.5 GBmodel-exl3-L12-p0.safetensors 2.5 GBmodel-exl3-L13-p1.safetensors 2.5 GBmodel-exl3-L15-p1.safetensors 2.5 GBmodel-exl3-L14-p1.safetensors 2.4 GBmodel-exl3-L19-p1.safetensors 2.4 GBmodel-exl3-L19-p0.safetensors 2.4 GBmodel-exl3-L20-p0.safetensors 2.3 GBmodel-exl3-L14-p0.safetensors 2.3 GBmodel-exl3-L20-p1.safetensors 2.3 GBmodel-exl3-L21-p0.safetensors 2.3 GBmodel-exl3-L21-p1.safetensors 2.2 GBmodel-exl3-L23-p1.safetensors 2.2 GBmodel-exl3-L22-p1.safetensors 2.2 GBmodel-exl3-L23-p0.safetensors 2.2 GBmodel-exl3-L24-p1.safetensors 2.2 GBmodel-exl3-L22-p0.safetensors 2.2 GBmodel-exl3-L24-p0.safetensors 2.1 GBmodel-exl3-L27-p1.safetensors 2.1 GBmodel-exl3-L25-p1.safetensors 2.0 GBmodel-exl3-L25-p0.safetensors 2.0 GBmodel-exl3-L26-p0.safetensors 2.0 GBmodel-exl3-L26-p1.safetensors 2.0 GBmodel-exl3-L27-p0.safetensors 1.9 GBmodel-exl3-L28-p0.safetensors 1.9 GBmodel-exl3-L29-p0.safetensors 1.9 GBmodel-exl3-L28-p1.safetensors 1.9 GBmodel-exl3-L29-p1.safetensors 1.9 GBmodel-exl3-L30-p0.safetensors 1.9 GBmodel-exl3-L30-p1.safetensors 1.8 GBmodel-exl3-L31-p0.safetensors 1.8 GBmodel-exl3-L32-p1.safetensors 1.8 GBmodel-exl3-L31-p1.safetensors 1.8 GBmodel-exl3-L32-p0.safetensors 1.8 GBmodel-exl3-L33-p0.safetensors 1.7 GBmodel-exl3-L34-p0.safetensors 1.7 GBmodel-exl3-L33-p1.safetensors 1.7 GBmodel-exl3-L35-p0.safetensors 1.7 GBmodel-exl3-L36-p0.safetensors 1.7 GBmodel-exl3-L34-p1.safetensors 1.7 GBmodel-exl3-L36-p1.safetensors 1.7 GBmodel-exl3-L35-p1.safetensors 1.7 GBmodel-00002-of-00046.safetensors 1.3 GBmodel-00001-of-00046.safetensors 971 MBmodel-exl3-head.safetensors 331 MBmodel-exl3-mtp.safetensors 241 MBmodel-00046-of-00046.safetensors 171 MBmodel-00044-of-00046.safetensors 118 MBmodel-00045-of-00046.safetensors 39 MBmodel-00017-of-00046.safetensors 24 MBmodel-00005-of-00046.safetensors 24 MBmodel-00011-of-00046.safetensors 24 MBmodel-00023-of-00046.safetensors 19 MBmodel-00027-of-00046.safetensors 13 MBmodel-00031-of-00046.safetensors 13 MBmodel-00035-of-00046.safetensors 13 MBmodel-00039-of-00046.safetensors 13 MBmodel-00013-of-00046.safetensors 8 MBmodel-00014-of-00046.safetensors 8 MBmodel-00015-of-00046.safetensors 8 MBmodel-00016-of-00046.safetensors 8 MBmodel-00018-of-00046.safetensors 8 MBmodel-00019-of-00046.safetensors 8 MBmodel-00020-of-00046.safetensors 8 MBmodel-00021-of-00046.safetensors 8 MBmodel-00022-of-00046.safetensors 8 MBmodel-00024-of-00046.safetensors 8 MBmodel-00025-of-00046.safetensors 8 MBmodel-00026-of-00046.safetensors 8 MBmodel-00028-of-00046.safetensors 8 MBmodel-00029-of-00046.safetensors 8 MBmodel-00030-of-00046.safetensors 8 MBmodel-00032-of-00046.safetensors 8 MBmodel-00033-of-00046.safetensors 8 MBmodel-00034-of-00046.safetensors 8 MBmodel-00036-of-00046.safetensors 8 MBmodel-00037-of-00046.safetensors 8 MBmodel-00038-of-00046.safetensors 8 MBmodel-00040-of-00046.safetensors 8 MBmodel-00041-of-00046.safetensors 8 MBmodel-00042-of-00046.safetensors 8 MBmodel-00003-of-00046.safetensors 8 MBmodel-00004-of-00046.safetensors 8 MBmodel-00006-of-00046.safetensors 8 MBmodel-00007-of-00046.safetensors 8 MBmodel-00008-of-00046.safetensors 8 MBmodel-00009-of-00046.safetensors 8 MBmodel-00010-of-00046.safetensors 8 MBmodel-00012-of-00046.safetensors 8 MBmodel-00043-of-00046.safetensors 10.4 kB有文件?提交种子。
提交种子