- DeepSeek-V4.1-Flash shipped on September 10, 2026. License is MIT, weights are on Hugging Face.
- 552B backbone parameters, but only 8B active while reading input and 16B while generating output. That asymmetry is the whole point of the model.
- New architecture: Causal Encoder-Decoder (CED). 40 layers, 20 causal encoder plus 20 decoder. The decoder’s global KV cache is projected from the encoder’s final hidden states instead of from each decoder layer’s own.
- Result: a global KV cache of 890 bytes per token. One quarter of V4-Flash, and 1/437 of DeepSeek-V1.
- Natively multimodal: images go through DeepSeek-ViT, a vision encoder trained from scratch, from the very start of language-model pre-training. Pre-training corpus is 45T tokens.
- Beats Claude Opus 5 on several agentic benchmarks: 90.6 vs 89.1 on Terminal-Bench 2.1, 74.2 vs 74.0 on DeepSWE v1.1, 54.8 vs 50.3 on AutomationBench.
- Reasoning effort is a continuous 1-100 dial, not an on/off thinking toggle.
- API pricing is $0.15 in / $0.60 out per million tokens off-peak, double that at peak. Roughly one twentieth of Claude Opus 5’s output price.
- DeepSeek is retiring V4 Pro: from September 14, 2026,
deepseek-v4-prorequests get routed to V4.1 Flash and billed at Flash rates.
Everyone in the open-weight race this year is chasing the same two numbers: active parameters and KV cache. The first decides what each token costs, the second decides how much memory a long context eats. GLM-5.3-Flash answered with hybrid attention, Qwen3.8-Flash-Next with 6B active parameters.
DeepSeek’s answer is more radical. DeepSeek-V4.1-Flash splits the model in two: the half that reads your input and the half that writes the answer no longer share a cost structure. The technical report says as much in its title: pushing the limits of KV cache compression.
The fun detail is how it arrived. A week ago the model showed up in the API as deepseek-v4.1-flash-expires-on-0910. That “expires on Sept 10” turned out to be a launch date, not a shutdown. Let’s go through it. 👇🏻
What DeepSeek V4.1 Flash Is
A mixture-of-experts model that reads text and images, writes text, and ships its weights under MIT. Formally it is an interim release in the V4 line, but do not read too much into “interim”: this is the largest architectural change in the series since the first V4 preview.
| Spec | DeepSeek-V4.1-Flash |
|---|---|
| Backbone parameters | 552B |
| Active parameters | 8B (prefill) / 16B (decode) |
| Layers | 40 (20 encoder + 20 decoder) |
| Experts | 1 shared + 384 routed, 6 active per token |
| Extra memory | Engram, 196B parameters (sparsely accessed) |
| Pre-training | 45T tokens, multimodal |
| Context | 1M tokens |
| Max output | 384K tokens |
| Input | Text + images |
| Global KV cache | 890 bytes per token |
| License | MIT |
The row that matters is the second one. In a MoE model the total parameter count is marketing; what drives your bill is how many parameters fire per token. There are two numbers here because the model spends a different amount of compute reading than it does writing.
For reference, DeepSeek’s own previous models: V4-Flash at 284B total / 13B active, V4-Pro at 1.6T total / 49B active. V4.1-Flash runs a backbone twice the size of V4-Flash with fewer active parameters than V4-Flash had.
What Changed in the Architecture 🧠
1. Causal Encoder-Decoder: cheap input, expensive output
In a standard Transformer every layer derives its own KV cache from its own hidden state. For agentic workloads that sets up the wrong balance: a coding agent may read 200K tokens of context and write 500 tokens back, so the overwhelming majority of the compute sits on the reading side.
CED corrects that. The model splits into a 20-layer causal encoder and a 20-layer decoder, and the decoder’s global KV cache is projected from the encoder’s final hidden states rather than derived per decoder layer. That is what buys 8B active parameters while ingesting and 16B while generating.

The companion idea is SWA Bounded Replay: instead of persisting sliding-window attention KV state to SSD, the model reconstructs the missing states by replaying only the most recent n_win tokens. Persistent KV footprint drops to roughly one eighth of V4-Flash.
2. CSA2: three modes for attention layers
Compressed Sparse Attention 2 assigns every attention layer one of three static modes: Full, Reindex or Reuse. A Full-mode layer does the work from scratch; the other two share main KV and indexer keys across layers and reuse Top-K sparse-attention indices.
The decoder adds a Hierarchical Sparse Indexer: later indexing layers are restricted to a candidate pool built by the first Full-mode layer, which bounds deep indexer cost independently of context length. At a million tokens the cost of deciding where to look is itself a serious line item, so this matters.
On top of that sits FP4 main KV caching (E2M1 format, one E4M3 scale per 16 channels). Together these bring the global KV cache to 890 bytes per token. DeepSeek’s own chart gives the full run: 389,120 bytes on V1 back in 2023, 48,068 on V3.2 at the end of 2025, 3,514 on V4-Flash this April, and 890 now.
Concretely: a full one-million-token context window costs roughly 890 MB of global KV cache. The same context would take four times that on V4-Flash, and 437 times that on the DeepSeek-V1 architecture.
Why care? Because at long context the bottleneck is usually memory capacity and bandwidth, not FLOPs. A smaller cache means more concurrent requests fit on the same GPU, which is directly connected to the 2500-concurrent-request limit on the price list.

3. Engram, DSpark and mHC
Three more components: Engram, a 196B-parameter conditional memory accessed sparsely by token-based lookup and counted outside the backbone; DSpark, speculative decoding with semi-autoregressive draft generation and confidence-scheduled verification; and Single-Pass mHC, a rewrite of residual-stream mixing on an efficient Mega-mHC kernel.
4. Vision was not bolted on
Images are handled by DeepSeek-ViT, a vision encoder trained from scratch with 2D-RoPE and 3×3 pixel-unshuffle downsampling. A two-layer MLP projector feeds visual embeddings into the same stream as text embeddings, and it has been that way since the very start of language-model pre-training.
In practice that means the model can also decide when to use the image, which a retrofitted vision module does not do.
Benchmark Scores 📊
Base model
Pre-post-training scores are the most honest way to see whether an architecture works. Everything below was run in DeepSeek’s own harness under identical settings:
| Benchmark | V4.1-Flash-Base | V4-Flash-Base | V4-Pro-Base |
|---|---|---|---|
| Active / backbone params | 8B-16B / 552B | 13B / 284B | 49B / 1.6T |
| MMLU-Pro | 74.1 | 68.3 | 73.5 |
| SimpleQA-Verified | 42.3 | 30.1 | 55.2 |
| HumanEval | 79.4 | 69.5 | 76.8 |
| GSM8K | 93.0 | 90.8 | 92.6 |
| MATH | 61.1 | 57.4 | 64.5 |
| LongBench-V2 | 45.2 | 44.7 | 51.5 |
| MMMU-Pro (multimodal) | 56.5 | -- | -- |
| DocVQA (multimodal) | 95.6 | -- | -- |
How to read it: V4.1-Flash-Base beats the 49B-active V4-Pro-Base on parts of code and math. But it is well behind on SimpleQA-Verified (42.3 vs 55.2), the encyclopedic-knowledge test, and behind on long-context comprehension too. That is the expected trade: 1.6 trillion parameters store more facts.
Against frontier models
All scores below use maximum reasoning effort (reasoning_effort=100):
| Benchmark | DS-V4.1-Flash | DS-V4-Pro | Opus 5 | GPT-5.6 Sol | K3 | GLM-5.3 |
|---|---|---|---|---|---|---|
| HLE | 36.8 | 42.7 | 56.3 | 44.5 | 43.5 | 42.0 |
| Codeforces (rating) | 3471 | 3348 | -- | -- | -- | -- |
| Terminal-Bench 2.1 | 90.6 | 87.9 | 89.1 | 88.8 | 88.3 | 88.2 |
| Terminal-Bench 3.0 | 30.0 | 11.8 | 43.3 | 34.4 | 17.7 | 28.3 |
| Terminal-Bench 4.0 | 31.2 | 12.4 | 51.8 | 39.9 | 12.6 | 37.9 |
| DeepSWE v1.1 | 74.2 | 62.7 | 74.0 | 73.0 | 67.5 | 66.9 |
| NL2Repo-Bench | 64.0 | 61.5 | 75.3 | 56.8 | 58.0 | 58.0 |
| CyberGym | 88.1 | 83.3 | -- | 84.5 | 80.0 | 84.5 |
| AutomationBench | 54.8 | 43.2 | 50.3 | 45.8 | 46.7 | 48.8 |
| Agent's Last Exam | 31.8 | 25.7 | 28.6 | 26.7 | 27.6 | 28.5 |
| HLE (with tools) | 63.9 | 60.0 | 63.6 | -- | 59.8 | 62.5 |

The table tells a two-part story.
On agentic work the model is genuinely at the frontier. It tops the list on Terminal-Bench 2.1, DeepSWE v1.1, AutomationBench, Agent’s Last Exam and CyberGym. The 88.1 on CyberGym stands out, because that is a security-focused benchmark where GPT-5.6 Sol and GLM-5.3 both stall at 84.5.
On raw knowledge it is not. HLE at 36.8 sits far below Opus 5’s 56.3. Run the same test with tools and the score jumps to 63.9 (Opus 5: 63.6), so the model does not know but can find out. If your workload needs facts held in the weights, this is the wrong model.
This is the confusing pair of rows. V4.1-Flash leads the field on Terminal-Bench 2.1 at 90.6, then lands at 30.0 on version 3.0, behind Opus 5 (43.3) and GPT-5.6 Sol (34.4).
The reason is that 3.0 and 4.0 are substantially harder revisions and every model’s score collapses on them (K3 at 17.7, V4-Pro at 11.8). 2.1 is a saturated benchmark: everybody is jammed into the 88-90 band, where a point or two may be noise. The real separation shows up on 3.0 and 4.0, and there Opus 5 still leads clearly.
So “it beat Opus 5” is a misleading sentence unless you name the benchmark version.
Same model, different scaffold, different score
The most instructive table DeepSeek published. One model, one benchmark, eight agent scaffolds:
| Benchmark | mini-SWE | DSH Minimal | Claude Code | Codex | OpenCode | Pi | DSH Standard |
|---|---|---|---|---|---|---|---|
| DeepSWE v1.1 | 74.2 | 72.6 | 69.8 | 65.6 | 65.5 | 66.2 | 70.5 |
| Terminal-Bench 2.1 | 90.3 | 90.6 | 88.0 | 84.1 | 85.0 | 86.1 | 85.8 |

The spread between best and worst scaffold on DeepSWE is 8.7 points. The headline 74.2 comes from the mini-SWE harness; the same model scores 65.6 under Codex, which puts it below GLM-5.3 (66.9).
The practical lesson: a benchmark score belongs to the model plus scaffold, not the model. Whatever you measure in your own agent can land anywhere in that range depending on the harness you run.
Reasoning Effort Is a Dial 🎚️
Most models expose thinking in steps: off, low, medium, high. V4.1-Flash makes it a continuous integer from 1 to 100, so the compute-versus-accuracy trade is a slider rather than a switch.
Every score above was taken at reasoning_effort=100, the most expensive setting. Run it at 30-40 in production and both the bill and the latency drop, along with some accuracy. DeepSeek did not publish the effort-accuracy curve, so finding the right number means testing on your own workload.
What It Costs 💸
Per million tokens, effective from 12:00 Beijing time on September 10, 2026:
| Item | Off-peak | Peak |
|---|---|---|
| Input (cache hit) | $0.003 | $0.006 |
| Input (cache miss) | $0.15 | $0.30 |
| Output | $0.60 | $1.20 |

Peak is 01:00-04:00 and 06:00-10:00 UTC on weekdays. Everything else, weekends and holidays included, is half price. For US readers that means the entire American working day is off-peak; for Europe, the expensive window covers early morning through late morning.
The model name is now deepseek-flash. The old deepseek-v4-flash and deepseek-v4-flash-vision-exp names still resolve, but the models behind them are retired, so those requests are served by V4.1-Flash and billed at Flash rates. Concurrency limit is 2500.
The most overlooked part of this launch. DeepSeek’s pricing page states that after extensive testing V4.1 Flash has comprehensively surpassed V4 Pro on performance, cost, speed and total time, so V4 Pro is being retired in an orderly fashion.
From 12:00 Beijing time on September 14, 2026, all deepseek-v4-pro requests will be routed to V4.1 Flash and billed at V4.1 Flash prices. Your input cost drops 4.4x and output 3.3x; in exchange, your model changes underneath you.
If you have production traffic on V4 Pro, re-test your knowledge-heavy prompts (the SimpleQA gap is 13 points) and your long-context jobs before that date. What happens when V4.1 Pro eventually lands is unstated.
For comparison, Claude Opus 5 is $5 in / $25 out. On output that is roughly a 20x gap at peak and 40x off-peak. You can put both side by side for your own workload in our LLM cost calculator, and measure what your input actually costs with the token counter.
How to Use It
The API is OpenAI-compatible and the base URL did not change:
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ.get("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com",
)
response = client.chat.completions.create(
model="deepseek-flash",
messages=[{
"role": "user",
"content": "Read this stack trace and list the likely root causes.",
}],
stream=True,
)
DeepSeek also exposes an Anthropic-compatible endpoint, so pointing Claude Code at the model is two environment variables:
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=<your_api_key>
claude
On your own hardware
Weights are on Hugging Face under deepseek-ai/DeepSeek-V4.1-Flash, MIT licensed. Recommended sampling: temperature=1.0, top_p=0.95 or 1.0, max_tokens of at least 256K.
This release ships no Jinja chat template. The repo’s encoding/ folder has a self-contained Python reference implementation, and for production DeepSeek published deepseek-recipe, a set of Rust libraries with Python bindings that convert Messages, Chat Completions and Responses API requests into the prompt format the model expects and parse the output back. Inference, tool execution and HTTP transport are left to you.
Do not let 8-16B active fool you: all the weights have to be resident in memory. On top of the 552B backbone sits the 196B-parameter Engram memory.
Rough math: the backbone alone is around 550 GB at FP8, and 280-300 GB at 4-bit quantization. That is not a single consumer card. You need a serious multi-GPU box or plenty of system RAM to offload to.
The good news is the KV cache. At 890 bytes per token, a full 1M-token context costs roughly 890 MB, which makes long context the cheapest line in this model’s memory budget.
Who Should Use It
- Input-heavy agentic workloads: this is exactly what CED exists for. A coding agent or document pipeline that reads a lot and writes a little cashes in the 8B-active prefill directly.
- Anyone on V4 Pro: the choice disappears on September 14 anyway. Price drops 3-4x, agentic scores go up. Re-test your knowledge-heavy prompts and move on.
- Long-context and automation work: no other open-weight model serves a million tokens on 890 MB of KV cache, and CyberGym (88.1) and AutomationBench (54.8) are the highest scores on the board. MIT licensing means no fine print for commercial products either.
- Work that needs encyclopedic recall: not this model. HLE at 36.8 and the SimpleQA gap say so plainly. Turn tools on and the picture changes, but do not expect it to produce facts without search.
- A single-GPU local setup: also not this model.
Frequently Asked Questions
Q: When was DeepSeek V4.1 Flash released? A: September 10, 2026. A week earlier it ran as a limited beta in the API under the name deepseek-v4.1-flash-expires-on-0910; the date in the name was a launch date, not a shutdown. New Flash pricing took effect the same day at 12:00 Beijing time.
Q: How many parameters does DeepSeek V4.1 Flash have? A: 552B backbone parameters, plus a 196B-parameter sparsely accessed Engram memory. Active parameters per token are 8B while processing input and 16B while generating output. Each MoE layer has 1 shared and 384 routed experts, 6 of which fire per token.
Q: Is DeepSeek V4.1 Flash open source? Can I download it? A: The weights are on Hugging Face at deepseek-ai/DeepSeek-V4.1-Flash under the MIT license, so commercial use is essentially unrestricted. The precise term is still “open weights”: the model files were released, the training data was not.
Q: How much does DeepSeek V4.1 Flash cost? A: Per million tokens, off-peak it is $0.15 input (cache miss) and $0.60 output; peak is double. Cache-hit input is $0.003. Peak hours are 01:00-04:00 and 06:00-10:00 UTC on weekdays, and everything else including weekends is half price.
Q: What is happening to DeepSeek V4 Pro? A: It is being retired. From 12:00 Beijing time on September 14, 2026, deepseek-v4-pro requests will be routed to V4.1 Flash and billed at Flash rates. DeepSeek’s stated reason is that V4.1 Flash comprehensively surpassed V4 Pro on performance, cost, speed and total time.
Q: What is the context window? A: 1M tokens, with a maximum output of 384K tokens. Sparse attention was trained at a sequence length of 64K and the context was extended to 1M at the 34T-token mark of pre-training.
Q: Is DeepSeek V4.1 Flash better than Claude Opus 5? A: It depends on the benchmark. On several agentic tests, yes: 90.6 vs 89.1 on Terminal-Bench 2.1, 74.2 vs 74.0 on DeepSWE v1.1, 54.8 vs 50.3 on AutomationBench. On the harder Terminal-Bench 3.0 and 4.0 revisions and on knowledge-heavy HLE, Opus 5 leads clearly. On output tokens V4.1 Flash is roughly 20x cheaper.
Q: Does it accept image input? A: Yes. Images are processed by DeepSeek-ViT, a vision encoder trained from scratch, and the capability has been present since the beginning of language-model pre-training rather than added afterwards. It scores 56.5 on MMMU-Pro and 95.6 on DocVQA.
Q: What is the reasoning effort setting? A: An integer from 1 to 100 that continuously trades inference cost against accuracy. Every published benchmark score uses the maximum (100), so running lower in production reduces both your bill and your scores.
Q: How much VRAM does it need? A: Even though only 8-16B parameters are active, all weights must be resident. Roughly 550 GB at FP8 and 280-300 GB at 4-bit quantization. It is not a single-consumer-card model; you need multi-GPU or CPU offloading. The KV cache, at 890 bytes per token, is the cheap part.
Q: Can I use it with Claude Code? A: Yes. DeepSeek exposes an Anthropic-compatible endpoint. Set ANTHROPIC_BASE_URL to https://api.deepseek.com/anthropic and pass your key as ANTHROPIC_AUTH_TOKEN.
Q: Does it work with Ollama or llama.cpp? A: The release ships no Jinja chat template and the architecture is new, so tooling will take time to catch up. DeepSeek published deepseek-recipe, a Rust library for the prompt format, and community quantizations should follow.
Take care… 🙂
