On July 31, 2026, DeepSeek released DeepSeek-V4-Flash-0731 — the official, production-ready version of their V4-Flash line. The headline numbers are striking: a 304-billion-parameter Mixture-of-Experts model, MIT-licensed, with built-in speculative decoding that shares weights between the target and draft models [S1]. No separate draft checkpoint. No extra VRAM for a draft model. Just one model file and a flag.
The benchmarks back it up. On Terminal-Bench 2.1 (coding tasks), V4-Flash-0731 scores 82.7 — beating the larger V4-Pro Preview (72.1) and landing within striking distance of proprietary models like Opus-4.8 (85.0) [S1]. On Toolathlon-Verified it hits 70.3, on DeepSWE 54.4, on Cybergym 76.7, and on DSBench-FullStack 68.7 [S1]. These are agentic, tool-using, code-writing benchmarks — the workloads that actually matter for local operators building AI-assisted engineering workflows.
What Changed from Preview to Official
The preview version (released earlier in 2026) already showed promise. The official release adds “substantially enhanced agentic capabilities” and locks in the DSpark speculative decoding module as a permanent, weight-sharing component [S1].
The key architectural insight: DeepSeek-V4-Flash-0731 has the same model structure as DeepSeek-V4-Flash-DSpark [S1]. That means the target model and the draft model are the same checkpoint. When you enable speculative decoding, you’re not loading a second model — you’re activating a different forward pass path through the same weights.
This is fundamentally different from EAGLE-3 or DFlash in llama.cpp, where you need a separate, specially-trained draft model (typically 1-4 GB) that reads the target’s hidden states [S4]. DeepSeek’s approach keeps the draft tiny because it’s not a separate model at all — it’s a semi-autoregressive Markov head attached to the main model’s block-diffusion backbone.
How DSpark Works
DSpark extends DFlash (block diffusion) with a semi-autoregressive Markov head [S4]. Here’s the chain:
- DFlash backbone: Produces an entire block of draft tokens (e.g., 7-15 tokens) in a single forward pass using block diffusion — no sequential token-by-token generation
- Markov head: Each position in the drafted block gets its logits biased by a low-rank term keyed on the previous token, chained in-graph across the block
- Result: One forward pass → a full block of drafts with left-to-right signal recovery that pure block diffusion loses
The draft model uses a DeepSpec checkpoint trained for a specific target (e.g., deepseek-ai/dspark_qwen3_4b_block7 for Qwen3-4B) [S4]. For DeepSeek-V4-Flash-0731, the draft weights are the target weights — the DSpark module is baked in.
Running It Locally: GGUF and Quantization
Unsloth released GGUF quantizations within days of the official launch [S2]. The range is impressive:
| Quantization | Size | Use Case | |————–|——|———-| | UD-IQ1_S (1-bit) | 82.5 GB | Maximum compression, experimental | | UD-Q4_K_XL (4-bit) | 155 GB | Recommended balance | | UD-Q8_K_XL (8-bit) | 162 GB | Near-lossless | | BF16 (16-bit) | 11.3 GB* | Full precision (note: this is likely a typo in source; actual BF16 ~600 GB) |
*Unsloth notes: “To run DeepSeek-V4-Flash-0731 in full precision lossless, run Q8 (UD-Q8_K_XL), which is 162GB and only 7GB bigger than Q4 (UD-Q4_K_XL)” [S2]. The 4-bit UD-Q4_K_XL at 155 GB is the practical sweet spot for high-end multi-GPU setups (e.g., 4× H100 80GB or 8× A100 80GB).
Unsloth’s Dynamic 2.0 quantization claims superior accuracy over other leading quantization methods, with per-tensor scaling that preserves outlier weights [S2].
Enabling Speculative Decoding
vLLM (Recommended for Production)
Add a single flag to your serve command [S1]:
“bash vllm serve deepseek-ai/DeepSeek-V4-Flash-0731 \ --trust-remote-code --kv-cache-dtype fp8 --block-size 256 \ --data-parallel-size 4 --enable-expert-parallel \ --moe-backend deep_gemm_mega_moe \ --attention-config '{"use_fp4_indexer_cache": true}' \ --speculative-config '{"method":"dspark","num_speculative_tokens":7,"draft_sample_method":"greedy"}' “
Critical: Do not set a separate --speculative-draft-model-path. The target and draft weights come from the same checkpoint [S6].
SGLang
“bash sglang serve \ --trust-remote-code \ --model-path deepseek-ai/DeepSeek-V4-Flash-0731 \ --tp 4 \ --moe-runner-backend flashinfer_mxfp4 \ --speculative-algorithm DSPARK \ --mem-fraction-static 0.90 \ --chunked-prefill-size 4096 \ --swa-full-tokens-ratio 0.1 “
Same principle: no separate draft model path [S6].
llama.cpp (Not Yet Documented for DeepSeek)
As of llama.cpp b10240 (released August 3, 2026) [S5], the speculative.md documentation lists DSpark support only for Qwen3 backbone drafts [S4]. The conversion command pattern would be:
“bash python convert_hf_to_gguf.py deepseek-ai/DeepSeek-V4-Flash-0731 \ --target-model-dir deepseek-ai/DeepSeek-V4-Flash-0731 --outtype bf16 --outfile DeepSeek-V4-Flash-0731.gguf “
Then:
“bash llama-server -m DeepSeek-V4-Flash-0731.gguf \ --spec-type draft-dspark --spec-draft-n-max 7 -fa on --jinja “
But this is speculative — llama.cpp hasn’t officially documented DeepSeek-V4 DSpark support yet. Expect it soon given the rapid adoption pattern (Qwen3 parser landed in b10227, two days before V4-Flash-0731’s GGUF release) [S5].
Sampling Parameters for Local Use
DeepSeek recommends specific sampling for the official release [S1]:
- Temperature: 0.6
- Top-p: 0.95
- Max output length: 32,768 tokens for
thinking-hardandthinking-maxreasoning levels - Thinking modes: Three levels —
thinking,thinking-hard,thinking-max— controlled via thethinkingparameter
The model does not include a Jinja-format chat template. Instead, DeepSeek provides an encoding folder with Python scripts for OpenAI-compatible message encoding [S1]. This is a minor friction point for llama.cpp users who expect --jinja to work out of the box.
Why This Matters for Local Operators
Three factors converge in V4-Flash-0731:
- MIT License: Commercial use, modification, and redistribution are explicitly permitted. No “non-commercial” or “research-only” restrictions like Kimi K3’s custom license [S1].
- Single-Checkpoint Speculative Decoding: No extra VRAM, no draft model hunt, no conversion pipeline. Enable a flag, get 2-3x throughput.
- Agentic Benchmark Leadership: Beating V4-Pro on Terminal-Bench, DeepSWE, Toolathlon, and Cybergym means this model actually works for the coding/agent workflows local operators care about.
The tradeoff: 304B parameters is still huge. Even at 4-bit (155 GB), you need serious hardware. But the GGUF quantization ladder from Unsloth gives options, and the MIT license means cloud providers can host it without legal friction — expect Novita, DeepInfra, and others to deploy it quickly [S2].
What to Watch
- llama.cpp DSpark support for DeepSeek-V4: The pattern is established; support will likely land within weeks
- vLLM/SGLang optimization: FP4 indexer cache, deep_gemm MoE backend, and chunked prefill are all evolving rapidly
- Unsloth Dynamic 3.0: If Dynamic 2.0 is this good, the next iteration could push 4-bit quality closer to 8-bit
- DeepSeek-V4-Pro official release: If Flash beats Preview Pro, what does Official Pro look like?
Bottom Line
DeepSeek-V4-Flash-0731 is the first frontier-class open model that combines MIT licensing, built-in speculative decoding from a single checkpoint, and agentic benchmark scores competitive with proprietary models. For local operators with the hardware to run it, it’s a step change in deployment practicality. For everyone else, it raises the bar for what “open” should mean.
The model card says it best: “We release the full DeepSeek-V4 model weights under the MIT License, making frontier intelligence openly available for research, deployment, and further innovation” [S1]. They delivered.
Sources
- [S1] deepseek-ai/DeepSeek-V4-Flash-0731 · Hugging Face — Hugging Face (2026-07-31)
- [S2] unsloth/DeepSeek-V4-Flash-0731-GGUF · Hugging Face — Hugging Face (2026-08-02)
- [S3] DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence · arXiv — arXiv (2026-04-26)
- [S4] llama.cpp/docs/speculative.md at master · ggml-org/llama.cpp — GitHub (2026-08-02)
- [S5] Release b10240 · ggml-org/llama.cpp · GitHub — GitHub (2026-08-03)
- [S6] DeepSeek-V4-Flash-0731 vLLM recipe · vLLM documentation — vLLM (2026-08-01)
