CoolFace
Modelpublic

Unkto/DeepSeek-V4-Flash-0731-DSpark-Drafter-IQ1M-IQ2XXS-GGUF

sourceHugging Facemitupdated 23d agoView on Hugging Face
2likes587downloads
Model Card

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

FileSizeRouted expertsEverything else
dspark-DeepSeek-V4-Flash-0731-IQ1_M-exps.gguf4.46 GiBIQ1_MQ8_0 / F32 / BF16
dspark-DeepSeek-V4-Flash-0731-IQ2_XXS-exps.gguf5.16 GiBIQ2_XXSQ8_0 / F32 / BF16

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

Draft modelMain model layers in RAM (`--n-cpu-moe`)Draft model layersTokens decodedDraft acceptance rateMean draft length**Decode throughput (tok/s)**
IQ2XXS38VRAM+RAM54 9590.8983.3714.78
IQ2XXS38VRAM47 6670.8903.2415.27
IQ2XXS38VRAM\*13 0380.8803.1115.50
IQ2XXS38RAM15 1970.9063.5613.09
IQ1M38VRAM+RAM45 2430.8843.1914.33
IQ1M38VRAM57 4550.8823.2315.46
IQ1M40VRAM14 9610.8943.2714.80
BF1638VRAM+RAM15 3430.8472.9813.81
BF1642VRAM32 0610.8673.1914.02
DSpark-Drafter Q2KS38VRAM+RAM23 3260.8683.1714.30
DSpark-Drafter Q2KS38VRAM13 2690.8763.1415.37

Table 2 — --spec-draft-p-min sweep (IQ2XXS, draft experts on CPU)

`--spec-draft-p-min`Main model layers in RAM (`--n-cpu-moe`)Draft model layersTokens decodedDraft acceptance rateMean draft length**Decode throughput (tok/s)**
0.4638VRAM+RAM19 5060.6473.0413.32
0.6638VRAM+RAM11 4670.7983.0313.87
0.7638VRAM+RAM54 9590.8983.3714.78
0.8038VRAM+RAM8 7930.9163.1313.99
0.8638VRAM+RAM15 9570.9603.2013.45
0.9638VRAM+RAM23 8700.9953.0912.27

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 99

How 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:

bash
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_0

Credits / sources

Weights are redistributed under the base model's release terms (MIT).