Read the KV cache numbers behind DeepSeek V4.1 Flash.
DeepSeek V4.1 Flash is DeepSeek’s current model, and its technical report is built around a single number: the global KV cache it needs per token. At 890 bytes that is roughly a quarter of V4-Flash and 437 times smaller than the first DeepSeek model, which is what makes million-token agent workloads affordable to serve.
Specifications, benchmarks and architecture notes on this page come from DeepSeek’s own model card and technical report for V4.1 Flash. The weights are MIT licensed, but DeepSeek publishes no per-token rate on the card.
The two charts DeepSeek publishes for V4.1 Flash
The model card carries two figures: an agentic benchmark comparison and a chart of how far the KV cache has fallen across four model generations. Everywhere else DeepSeek draws its numbers in JavaScript, so these are the only static figures the vendor publishes.
Both figures belong to DeepSeek and are reproduced with credit: DeepSeek V4.1 Flash model card
How DeepSeek describes V4.1 Flash
DeepSeek titles its technical report “Pushing the Limits of KV Cache Compression”, and the numbers back the title. This is a model sold on the cost of holding a long context, not on winning every benchmark.
The headline is memory, not raw capability
890 bytes of global KV cache per token, about a quarter of V4-Flash’s 3,514 and 437 times less than V1’s 389,120. For input-heavy agentic workloads served at long context, that is the difference between one node and a rack.
An encoder-decoder that shares one cache
V4.1 Flash uses a 40-layer Causal Encoder-Decoder: 20 encoder layers followed by 20 decoder layers, where the decoder’s global KV cache is projected from the final encoder hidden states instead of being derived layer by layer. DeepSeek says that is why only 8B parameters are activated per token during prefill, and 16B during decode.
Sparse attention with three static modes
Compressed Sparse Attention 2 gives each attention layer one of three modes — Full, Reindex or Reuse — so main KV and indexer K are shared across layers and Top-K indices are reused. A hierarchical sparse indexer then bounds deeper indexer cost independently of context length, and FP4 main KV caching stores one E4M3 scale per 16 channels.
Native multimodality from pre-training
A DeepSeek-ViT encoder trained from scratch with 2D-RoPE and 3×3 pixel-unshuffle feeds a two-layer MLP projector, and images are processed jointly with text from the start of language-model pre-training. The corpus is 45T tokens; sparse attention was trained at 64K and the context extended to 1M at the 34T mark.
Reasoning effort is a dial, not three settings
V4.1 Flash takes a reasoning_effort value from 1 to 100 — continuous, rather than the usual low, medium and high. DeepSeek built the model around that trade: its post-training changes are almost entirely data-pipeline work, automating the synthesis of agent tasks and environments, rather than algorithmic ones.
What the model card reports
The vendor’s own table at maximum reasoning effort. The last column names the best rival score in the same table, so the rows where V4.1 Flash loses are visible beside the ones where it wins.
| Benchmark | DeepSeek V4.1 Flash | Best rival in the same table |
|---|---|---|
| Terminal-Bench 2.1 | 90.6 | Opus-5.0 — 89.1 |
| Terminal-Bench 3.0 | 30.0 | Opus-5.0 — 43.3 |
| DeepSWE v1.1 | 74.2 | Opus-5.0 — 74.0 |
| NL2Repo-Bench | 64.0 | Opus-5.0 — 75.3 |
| CyberGym | 88.1 | GPT-5.6 Sol — 84.5 |
| HLE with tools | 63.9 | Opus-5.0 — 63.6 |
| Automation-Bench | 54.8 | Opus-5.0 — 50.3 |
| GPQA Diamond | 90.9 | GPT-5.6 Sol — 94.1 |
| HLE | 36.8 | Opus-5.0 — 56.3 |
| Codeforces (rating) | 3471 | DeepSeek-V4-Pro — 3348 |
DeepSeek states that scores within 0.3 of each other are treated as equivalent in its own base-model evaluations. The card also notes that agentic results depend heavily on the harness: the same model scores 74.2 on DeepSWE v1.1 with mini-SWE and 65.6 with Codex.
Documented specifications
Every row below is stated on DeepSeek’s model card or in its technical report.
- Developer
- DeepSeek
- Model
- DeepSeek V4.1 Flash
- Architecture
- Causal Encoder-Decoder, 20 + 20 layers
- Backbone parameters
- 552B
- Activated parameters
- 8B prefill · 16B decode
- Experts
- 1 shared + 384 routed, 6 routed per token
- Context
- Up to 1,000,000 tokens
- Pre-training corpus
- 45T multimodal tokens
- Vision encoder
- DeepSeek-ViT, trained from scratch
- KV cache
- 890 bytes per token
- Reasoning effort
- Continuous, 1 to 100
- Licence
- MIT
Documented access channels
DeepSeek ships this one as downloadable weights with a technical report attached, and leaves hosting to you or to a provider. That makes the licence the first thing to read, not the last.
Official model card
The architecture notes, both figures, the full evaluation tables and the recommended sampling parameters.
OpenTechnical report
The PDF the model card links to, describing the compression methods in full.
OpenWeights and licence
Both the repository and the model weights are MIT licensed — no user threshold in the licence text, and no field-of-use restriction beyond applicable law.
deepseek-recipe
A set of Rust libraries with Python bindings that encode Messages, Chat Completions and Responses API requests into V4 and V4.1 prompts, and parse streamed output back.
OpenDeepSeek V4.1 Flash questions
Is DeepSeek V4.1 Flash really multimodal?
Yes. It takes text and images and returns text. Images go through a DeepSeek-ViT encoder trained from scratch with 2D-RoPE and 3×3 pixel-unshuffle downsampling and then a two-layer MLP projector, and the model card reports DocVQA at 95.6, RefCOCO-avg at 86.0 and MMMU-Pro at 56.5.
What does 890 bytes per token mean in practice?
It is the global KV cache the model must keep per token of context, measured in bytes. The same figure was 3,514 bytes for V4-Flash and 389,120 for the original DeepSeek-V1, so the serving arithmetic for a million-token request changes by orders of magnitude rather than by a few percent.
Can I run it locally?
The repository, its inference folder and its evaluation folder assume serious hardware: a 552B backbone with 8B parameters activated during prefill and 16B during decode. DeepSeek documents weight conversion and the recommended sampling parameters, but it publishes no minimum hardware figure, so this page does not invent one.
What licence do the weights carry?
MIT. Both the repository and the model weights are MIT licensed, which is unusual for a model of this class and means there is no revenue threshold or user-count clause in the licence itself.
How much does the API cost?
DeepSeek’s model card does not publish per-token pricing, and this page will not guess at it. Rate cards for the hosted service live on DeepSeek’s own platform pages. What the card does publish is the recommended sampling setup: temperature 1.0, top_p 0.95 or 1.0, a 1M-token context window and at least 256K output tokens.
What is reasoning_effort, and why 1 to 100?
It is a continuous dial rather than three named levels: any integer from 1 to 100 trades inference cost for accuracy. Every instruct score in the table above was measured at 100, the maximum setting.
Why extend the context to 1M rather than train at it?
On the vendor’s own account, sparse attention was trained at a 64K sequence length and the context was extended to 1M after 34T of the 45T training tokens. That schedule is also why the compression work matters: a long context is only useful if the cache it needs stays small.