244 lines
9.1 KiB
Markdown
244 lines
9.1 KiB
Markdown
# DeepSeek v4 model card synopsis
|
||
|
||
This document extracts the most important information from the official
|
||
DeepSeek-V4-Flash Hugging Face model card, with emphasis on facts that matter
|
||
for local inference, DS4 development, and benchmark interpretation.
|
||
|
||
Source: https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash
|
||
|
||
## Model Family
|
||
|
||
DeepSeek-V4 is a preview model family with two Mixture-of-Experts language
|
||
models:
|
||
|
||
| Model | Total parameters | Active parameters | Context length |
|
||
|---|---:|---:|---:|
|
||
| DeepSeek-V4-Flash | 284B | 13B | 1M tokens |
|
||
| DeepSeek-V4-Pro | 1.6T | 49B | 1M tokens |
|
||
|
||
Flash is the smaller and more efficient model. The model card says Flash-Max can
|
||
approach Pro reasoning performance when given a larger thinking budget, while
|
||
remaining behind Pro on pure knowledge and the most complex agentic tasks.
|
||
|
||
## Architecture
|
||
|
||
DeepSeek-V4 uses long-context compressed attention. The model card calls the
|
||
hybrid design Compressed Sparse Attention (CSA) plus Heavily Compressed
|
||
Attention (HCA). In DS4 terms, each layer keeps a raw sliding-window KV cache
|
||
for the latest 128 tokens. This is the high-resolution local context.
|
||
|
||
After that raw window, the model uses layer-dependent compressed KV rows:
|
||
|
||
| 0-based layer indexes | DS4 ratio | Extra state | Meaning |
|
||
|---|---:|---|---|
|
||
| 0, 1 | none | none | Raw 128-token sliding window only |
|
||
| even layers from 2 onward | 4 | compressed KV + indexer KV | One compressed row per 4 tokens, with an indexer selecting visible compressed rows |
|
||
| odd layers from 3 onward | 128 | compressed KV | One compressed row per 128 tokens |
|
||
|
||
So, after the first two layers, the model alternates ratio-4 and ratio-128
|
||
compressed attention. A token in a compressed layer attends over both the raw
|
||
latest-128-token window and the older compressed history. The compression here
|
||
is time-axis compression: several token positions are pooled into one KV row.
|
||
The attention rows still use the model attention/value dimensions, so raw and
|
||
compressed rows can be consumed by the same mixed-attention computation.
|
||
|
||
Ratio-4 layers are the selective compressed-attention layers. They maintain a
|
||
second compressed stream for the indexer, and when the compressed history is
|
||
larger than the configured top-k, DS4 scores the compressed rows and selects up
|
||
to 512 of them for attention. Ratio-128 layers are the heavily compressed path:
|
||
they do not have the indexer stream and use the available ratio-128 compressed
|
||
rows directly.
|
||
|
||
DS4 validates these details from the GGUF metadata. The relevant fixed
|
||
implementation constants are:
|
||
|
||
- Layers: 43
|
||
- Raw sliding-window attention: 128 tokens
|
||
- Indexer heads: 64
|
||
- Indexer head dimension: 128
|
||
- Indexer top-k: 512
|
||
|
||
This is the practical reason the model can expose a 1M-token context without a
|
||
standard full KV cache for every token in every layer. The model card reports
|
||
that, at 1M tokens, DeepSeek-V4-Pro needs much less single-token inference
|
||
compute and KV cache than DeepSeek-V3.2.
|
||
|
||
The family also uses:
|
||
|
||
- Manifold-Constrained Hyper-Connections (mHC), intended to improve signal
|
||
propagation stability across layers.
|
||
- The Muon optimizer, used for faster convergence and training stability.
|
||
- A post-training pipeline with domain expert cultivation followed by unified
|
||
consolidation via on-policy distillation.
|
||
|
||
## Precision And Weights
|
||
|
||
Official download entries include:
|
||
|
||
| Model | Precision |
|
||
|---|---|
|
||
| DeepSeek-V4-Flash-Base | FP8 Mixed |
|
||
| DeepSeek-V4-Flash | FP4 + FP8 Mixed |
|
||
| DeepSeek-V4-Pro-Base | FP8 Mixed |
|
||
| DeepSeek-V4-Pro | FP4 + FP8 Mixed |
|
||
|
||
For the instruct models, the model card describes FP4 + FP8 Mixed as using FP4
|
||
for MoE expert parameters and FP8 for most other parameters.
|
||
|
||
## Reasoning Modes
|
||
|
||
The instruct models support three reasoning-effort modes:
|
||
|
||
| Mode | Intended behavior | Output shape |
|
||
|---|---|---|
|
||
| Non-think | Fast, intuitive replies | `</think>` summary |
|
||
| High | Deliberate reasoning for harder tasks | `<think>... </think>` summary |
|
||
| Max | Largest reasoning budget | Special system prompt plus thinking and summary |
|
||
|
||
The model card recommends using at least a 384K-token context window for Think
|
||
Max.
|
||
|
||
## Important Flash Benchmarks
|
||
|
||
### DeepSeek-V4-Flash Across Reasoning Modes
|
||
|
||
| Benchmark | Non-Think | High | Max |
|
||
|---|---:|---:|---:|
|
||
| GPQA Diamond Pass@1 | 71.2 | 87.4 | 88.1 |
|
||
| MMLU-Pro EM | 83.0 | 86.4 | 86.2 |
|
||
| SimpleQA-Verified Pass@1 | 23.1 | 28.9 | 34.1 |
|
||
| Chinese-SimpleQA Pass@1 | 71.5 | 73.2 | 78.9 |
|
||
| HLE Pass@1 | 8.1 | 29.4 | 34.8 |
|
||
| LiveCodeBench Pass@1 | 55.2 | 88.4 | 91.6 |
|
||
| HMMT 2026 Feb Pass@1 | 40.8 | 91.9 | 94.8 |
|
||
| IMOAnswerBench Pass@1 | 41.9 | 85.1 | 88.4 |
|
||
| SWE Verified Resolved | 73.7 | 78.6 | 79.0 |
|
||
| Terminal Bench 2.0 Acc | 49.1 | 56.6 | 56.9 |
|
||
| MCPAtlas Pass@1 | 64.0 | 67.4 | 69.0 |
|
||
| Toolathlon Pass@1 | 40.7 | 43.5 | 47.8 |
|
||
|
||
### DeepSeek-V4-Flash-Base
|
||
|
||
The base-model table reports these Flash-Base scores:
|
||
|
||
| Benchmark | Shots | Score |
|
||
|---|---:|---:|
|
||
| SuperGPQA EM | 5-shot | 46.5 |
|
||
| MMLU EM | 5-shot | 88.7 |
|
||
| MMLU-Pro EM | 5-shot | 68.3 |
|
||
| Simple-QA verified EM | 25-shot | 30.1 |
|
||
| HumanEval Pass@1 | 0-shot | 69.5 |
|
||
| GSM8K EM | 8-shot | 90.8 |
|
||
| LongBench-V2 EM | 1-shot | 44.7 |
|
||
|
||
The model card reports SuperGPQA for the base model table, not in the instruct
|
||
reasoning-mode comparison table.
|
||
|
||
## Chat Template And Encoding
|
||
|
||
The release does not use a Jinja chat template as the source of truth. The
|
||
official prompt renderer is the Python code in
|
||
`encoding/encoding_dsv4.py`, with examples and tests in the same `encoding`
|
||
directory:
|
||
|
||
- https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/raw/main/encoding/encoding_dsv4.py
|
||
- https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/raw/main/encoding/test_encoding_dsv4.py
|
||
|
||
The important special tokens are:
|
||
|
||
| Purpose | Token |
|
||
|---|---|
|
||
| Beginning of sequence | `<|begin▁of▁sentence|>` |
|
||
| End of assistant turn | `<|end▁of▁sentence|>` |
|
||
| User turn prefix | `<|User|>` |
|
||
| Assistant turn prefix | `<|Assistant|>` |
|
||
| Latest reminder prefix | `<|latest_reminder|>` |
|
||
| Thinking start | `<think>` |
|
||
| Thinking end / non-thinking marker | `</think>` |
|
||
| DSML tool markup marker | `|DSML|` |
|
||
|
||
The renderer accepts `system`, `user`, `assistant`, `tool`,
|
||
`latest_reminder`, and `developer` roles. The `developer` role is described in
|
||
the Python comments as an internal search-agent role, not as a normal public
|
||
chat role.
|
||
|
||
Normal chat mode starts with the BOS token, then system text if present, then
|
||
alternating user and assistant markers. In non-thinking chat mode, a new
|
||
assistant generation is opened with:
|
||
|
||
```text
|
||
<|Assistant|></think>
|
||
```
|
||
|
||
That immediate `</think>` tells the model to skip hidden reasoning and produce
|
||
the visible answer. In thinking mode, a new assistant generation is opened with:
|
||
|
||
```text
|
||
<|Assistant|><think>
|
||
```
|
||
|
||
Completed assistant thinking turns are rendered as reasoning content inside
|
||
`<think>...</think>`, followed by the visible answer and the EOS token.
|
||
|
||
By default, the Python renderer drops earlier assistant reasoning content before
|
||
the last user message. If tools are present on any message, it disables that
|
||
reasoning drop and keeps the full reasoning/tool context. `reasoning_effort=max`
|
||
also prepends a special high-effort instruction prefix before the first rendered
|
||
message in thinking mode.
|
||
|
||
Tool definitions are passed in OpenAI-compatible function schema form, but the
|
||
model is instructed to emit DSML. A tool call is rendered as a DSML
|
||
`tool_calls` block containing one or more `invoke` entries, each with named
|
||
parameters. Parameters carry a `string="true"` flag for raw strings and
|
||
`string="false"` for JSON values such as numbers, booleans, arrays, or objects.
|
||
|
||
DeepSeek-V4 does not render standalone `tool` role messages. The Python
|
||
preprocessor converts tool results into user content blocks and renders each
|
||
result as:
|
||
|
||
```text
|
||
<tool_result>...</tool_result>
|
||
```
|
||
|
||
Tool-result bodies are rendered as raw text. Literal `<`, `>`, and `&` from
|
||
file contents or shell output are preserved; only the exact closing sentinel
|
||
`</tool_result>` is escaped so the wrapper cannot be terminated by data.
|
||
|
||
When there are multiple tool results, the renderer sorts them to match the
|
||
order of the preceding assistant tool calls.
|
||
|
||
The same script also defines special task tokens for internal quick tasks such
|
||
as title generation, search-query generation, action selection, authority
|
||
classification, domain classification, and URL-read decisions. Those are
|
||
separate from normal chat/tool rendering.
|
||
|
||
## Local Running Notes
|
||
|
||
The model card lists vLLM and SGLang examples for OpenAI-compatible serving.
|
||
For local deployment, it recommends:
|
||
|
||
- `temperature = 1.0`
|
||
- `top_p = 1.0`
|
||
- At least 384K context for Think Max
|
||
|
||
These are deployment recommendations from the model card, not necessarily the
|
||
same settings used for deterministic benchmarking. DS4 keeps `top_p=1.0` but
|
||
adds a local `min_p=0.05` default to avoid sampling tokens whose probability is
|
||
far below the best token.
|
||
|
||
## Licensing
|
||
|
||
The repository and model weights are licensed under the MIT License.
|
||
|
||
## Citation
|
||
|
||
The model card cites:
|
||
|
||
```bibtex
|
||
@misc{deepseekai2026deepseekv4,
|
||
title={DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence},
|
||
author={DeepSeek-AI},
|
||
year={2026},
|
||
}
|
||
```
|