DeepSeek · released 2026-08-13
DeepSeek-V4-Pro-0813
What DeepSeek-V4-Pro-0813’s own documents say it is built from — every method with the sentence that describes it.
Curator’s noteGA release of DeepSeek-V4-Pro (1.6T total / 49B active, 1M context, MIT), built on the preview's model structure with a DSpark speculative-decoding module attached; the release also added Responses API support and low/high/max thinking-effort control. Same arXiv 2606.19348 report as the rest of the V4 line.
Against the consensus recipe
Its documents state 1 of the 15 methods the field agrees on.
The recipe from the overview: the methods the most labs adopt, per stage. A missing one is something the documents do not say, not something the model lacks.
Data curation
- Agentic data synthesis pipelinenot in its documents
Training objective
- Multi-Token Predictionnot in its documents
- KL alignment lossnot in its documents
Model architecture
- Mixture of Expertsnot in its documents
- Hybrid Attentionnot in its documents
- Multi-Token Predictionnot in its documents
Optimization
- Muonnot in its documents
- Expert Parallelismnot in its documents
- Cosine decaynot in its documents
Post-training
- Group Relative Policy Optimizationnot in its documents
- Supervised fine-tuningnot in its documents
- Multi-Teacher On-Policy Distillationnot in its documents
Inference & serving
- Configurable reasoning effortoptional
- Speculative decodingnot in its documents
- FP8 KV-cache quantizationnot in its documents
Checked in its code
Its code shows 13 of the 19 architecture features checked — 13 of them are not stated in its documents.
Documents say what a lab chose to describe; the modeling code says what the checkpoint runs. Each feature below was put to a code verifier, and only the config values and source lines it cited that were found in the files are shown, linked to the line.
Read from Hugging Face Transformers (modeling_deepseek_v4.py, configuration_deepseek_v4.py) and config.json at revision 72e1d3230f, by anthropic/claude-sonnet-5 on 2026-09-25.
| Feature | Code | Its documents | Evidence |
|---|---|---|---|
| Grouped-query attention | not in its code | not stated | The attention uses a single shared KV head broadcast to all query heads via repeat_kv (multi-query attention with num_key_value_heads=1, not grouped KV heads with independent projection), but the model is MLA-style (kv_proj to a shared low-rank head_dim); num_key_value_groups is set to num_attention_heads (MQA), and true GQA (multiple, but fewer, distinct KV heads) is not implemented. num_key_value_heads = 1 |
| Multi-head latent attention code only | in its code | not stated | Queries and KV are down-projected via low-rank q_lora_rank/kv_proj (to a single head_dim latent) and up-projected per head, with a decoupled rope key applied to the trailing rope slice, DeepSeek-V2/V3-MLA style. q_lora_rank = 1536qk_rope_head_dim = 64 |
| Sliding-window attention code only | in its code | not stated | Every layer, including compressed layers, uses a sliding-window cache/mask with sliding_window=128 set in config, and the mask is built with create_sliding_window_causal_mask. sliding_window = 128 |
| Interleaved sliding-window and global attention code only | in its code | not stated | layer_types (derived from compress_ratios in this config) interleave sliding_attention, compressed_sparse_attention, and heavily_compressed_attention layers, each with different attention/context scope, per the compress_ratios array mapping to layer types. compress_ratios = [128, 128, 4, 128, 4, 128, 4, 128, 4, 128, 4, 128, 4, 128, 4, 128, 4, 128, 4,… |
| Indexer-selected sparse attention (DeepSeek Sparse Attention) code only | in its code | not stated | The DeepseekV4Indexer scores compressed KV entries with a lightweight scorer and each query attends only to the top index_topk entries selected, used in compressed_sparse_attention layers. index_topk = 1024index_n_heads = 64index_head_dim = 128 |
| Linear-attention or state-space layers alongside full attention | not in its code | not stated | No linear-attention or state-space recurrent mixer layers are implemented; all layer types (sliding, CSA, HCA) are variants of softmax attention with different KV compression, not linear-complexity recurrence. |
| Gated DeltaNet layers | not in its code | not stated | No gated delta-rule recurrent module exists in the code; layer_types only cover sliding/CSA/HCA softmax-attention variants. |
| Mamba-2 layers | not in its code | not stated | No Mamba-2 SSD/selective state-space block is implemented anywhere in this file. |
| Learnable attention sink code only | in its code | not stated | Each attention layer has a per-head learnable sink parameter concatenated into the softmax denominator before dropping it, gpt-oss style. |
| Gated attention output | not in its code | not stated | There is no input-dependent sigmoid gate multiplying the attention output before the output projection; the attn_output only goes through a rope-undo and grouped output projection. |
| QK normalization code only | in its code | not stated | Queries are normalized per head with an unweighted RMSNorm after the q_b_proj up-projection, and keys/values (the shared kv latent) are RMSNorm'd via kv_norm before attention. |
| Partial RoPE code only | in its code | not stated | RoPE is applied only to the trailing rope_head_dim slice of each head (qk_rope_head_dim=64 out of head_dim=512), leaving the leading nope channels untouched. qk_rope_head_dim = 64head_dim = 512 |
| YaRN RoPE scaling code only | in its code | not stated | rope_scaling type is yarn in the config and is applied to the compress rope-type branch used by CSA/HCA layers via the ROPE_INIT_FUNCTIONS yarn initializer. rope_scaling = {"beta_fast": 32, "beta_slow": 1, "factor": 16, "original_max_position_embedd… |
| Layers without positional encoding (NoPE) | not in its code | not stated | All attention layers apply RoPE (partial, on the trailing rope slice) via either the main or compress rope type; no attention layer entirely skips positional encoding. |
| Mixture of experts code only | in its code | not stated | The SparseMoeBlock routes tokens to a top-k of n_routed_experts=384 expert MLPs via a learned router (TopKRouter or HashRouter for early layers). n_routed_experts = 384num_experts_per_tok = 6 |
| Shared expert code only | in its code | not stated | Every SparseMoeBlock adds a DeepseekV4MLP shared_experts pass that every token goes through, and n_shared_experts=1 in config. n_shared_experts = 1 |
| Auxiliary-loss-free load balancing (selection bias) code only | in its code | not stated | The TopKRouter adds e_score_correction_bias only to the scores used for top-k selection (not to the output weights), matching DeepSeek-V3's noaux_tc bias mechanism, with topk_method set to noaux_tc. topk_method = "noaux_tc" |
| Multi-token prediction layers code only | in its code | not stated | num_nextn_predict_layers=1 in config declares an MTP module count, and the modeling file explicitly ignores mtp.* weights on load, indicating the checkpoint carries MTP layers even though they are not instantiated here. num_nextn_predict_layers = 1 |
| SwiGLU feed-forward code only | in its code | not stated | Both the dense MLP and expert MLPs compute SiLU(gate(x)) * up(x) with hidden_act=silu, clamped by swiglu_limit. hidden_act = "silu" |
model architecture 1
multimodal architecture 1
training objective 1
language modelling objective 1
post-training 1
filed at the root 1
inference & serving 5
decoding strategy 2
reasoning control 1
agentic scaffolding 2
software implementation 1
infrastructure service 1
unfiled 4
Sources
The curated document list for this model. "not fetched" means the URL is recorded but its text was not read in the current run.
| Document | Kind | Publisher | Status |
|---|---|---|---|
| api-docs.deepseek.com/updates | official blog | DeepSeek | read |
| arxiv.org/abs/2606.19348 | technical report | DeepSeek | read |
| huggingface.co/deepseek-ai/DeepSeek-V4-Pro-0813 | model card | DeepSeek | read |
| openrouter.ai/deepseek/deepseek-v4-pro-0813 | vendor docs | OpenRouter | read |