Unkto/DeepSeek-V4-Flash-0731-DSpark-Drafter-IQ1M-IQ2XXS-GGUF
DeepSeek V4 Flash 0731 — compact DSpark drafter (IQ1M / IQ2XXS routed experts)
Tiny speculative-decoding drafters for DeepSeek-V4-Flash-0731, built by crushing the routed-MoE experts down to 1-bit (IQ1_M) or 2-bit (IQ2_XXS) using the public routed-MoE importance matrix (Importance matrix (routed-MoE): antirez/deepseek-v4-gguf — imatrix/DeepSeek-V4-Flash-chat-v2-routed-moe-ds4-1p5m.dat).
The DSpark drafter is an auxiliary model — not standalone — it only works together with a DeepSeek V4 Flash 0731 target under llama.cpp --spec-type draft-dspark.
Files
Other variants from the community: |singulared/DeepSeek-V4-Flash-0731-DSpark-GGUF | 10.9 GiB "BF16 (source)" | MXFP4 (4-bit) | rest F32/BF16/Q8_0 | | Lynxpda/DeepSeek-V4-Flash-0731-DSpark-Drafter-Q2_K_S-GGUF | \~6.9 GiB | Q2_K | shared experts Q5_K, rest Q6_K/Q8_0/F16/F32/BF16 |
Performance — DFlash speculative decoding (llama.cpp)
Speculative decoding of DeepSeek-V4-Flash-0731-UD-Q8_K_XL using a draft model (block size 5, --spec-draft-n-max 5).
Table 1 — default --spec-draft-p-min 0.76
Table 2 — --spec-draft-p-min sweep (IQ2XXS, draft experts on CPU)
Draft model layers — legend
- VRAM — draft model fully on GPU (default).
- VRAM+RAM —
--spec-draft-ngl 99 --spec-draft-override-tensor "exps=CPU"(experts offloaded to CPU). - RAM —
--spec-draft-ngl 0(draft model fully on CPU).
Notes
- \* also sets
--spec-draft-type-k q8_0 --spec-draft-type-v q8_0(quantized draft KV cache). - Tokens decoded — total generated tokens across the aggregated runs (all metrics are token-weighted averages).
- Draft acceptance rate — fraction of speculative tokens accepted by the target model.
- Mean draft length — average number of accepted draft tokens per step .
- Decode throughput — tokens/s during single-stream autoregressive decoding.
Test environment
Software: llama.cpp version: 10273 (a6aa6f545) built with GNU 15.2.1 for Linux x86_64
Target: DeepSeek-V4-Flash-0731-UD-Q8_K_XL (Q8_K_XL)
Drafts: dspark-DeepSeek-V4-Flash-0731-{IQ1M,IQ2XXS}-exps · BF16 · DSpark-Drafter-Q2_K_S-dflash
Decoding: speculative, block size 5, --spec-draft-n-max 5, --spec-draft-p-min 0.76
Context: --ctx-size 266240, single slot (--parallel 1)
Batch: --n-batch 2048, --n-ubatch 2048
Offload: --n-gpu-layers 99 (target & draft), --n-cpu-moe 38 (40/42 where noted)
GPUs: GF4090 + GF3090, --tensor-split 36:6 (6:6 where noted)
CPU pin: taskset -c 0-15, Intel® Core™ i9-14900K, 196Gb DDR5 5200.Reproduction
taskset -c 0-15 ./llama.cpp/build/bin/llama-server \
-m DeepSeek-V4-Flash-0731-UD-Q8_K_XL-00001-of-00005.gguf \
-md dspark-DeepSeek-V4-Flash-0731-IQ1M-exps.gguf \
--spec-type draft-dspark --spec-draft-n-max 5 --spec-draft-p-min 0.76 \
--spec-draft-ngl 99 --ctx-size 266240 --n-cpu-moe 38 \
--tensor-split 36,6 -ngl 99How it was built
Selective requantization of the BF16 drafter with llama-quantize, keeping only the 9 routed-expert tensors at low bit and the rest at Q8_0:
llama-quantize \
--imatrix DeepSeek-V4-Flash-chat-v2-routed-moe-ds4-1p5m.dat \
--allow-requantize \
--tensor-type blk.0.ffn_gate_exps.weight=IQ1_M \
--tensor-type blk.0.ffn_up_exps.weight=IQ1_M \
--tensor-type blk.0.ffn_down_exps.weight=IQ1_M \
# ... same for blk.1, blk.2 ...
dspark-DeepSeek-V4-Flash-0731-BF16.gguf \
dspark-DeepSeek-V4-Flash-0731-IQ1_M-exps.gguf Q8_0Credits / sources
- Importance matrix (routed-MoE): antirez/deepseek-v4-gguf —
imatrix/DeepSeek-V4-Flash-chat-v2-routed-moe-ds4-1p5m.dat - BF16 drafter weights (source of this quantization): singulared/DeepSeek-V4-Flash-0731-DSpark-GGUF
- Other DSpark drafter references / mixed recipe: dev7a/DeepSeek-V4-Flash-0731-DSpark-Drafter-GGUF, alessandrobologna/DeepSeek-V4-Flash-0731-DSpark-Drafter-GGUF, GaelicThunder, Lynxpda
- Base model: deepseek-ai/DeepSeek-V4-Flash-0731
Weights are redistributed under the base model's release terms (MIT).
