models / compare / kimi-k3-1-pro-vs-qwen3-5
Kimi K3.1 Pro vs Qwen3.5-397B-A17B
How Kimi K3.1 Pro (Moonshot AI, October 2026) and Qwen3.5-397B-A17B (Alibaba Qwen, February 2026) are built, drawn on the same November 2026 blueprint. They make different choices on 8 of 27 components. Select a component in either diagram to find it in the table.
--- frontier-llm@2026-11+++ kimi-k3-1-pro@2026-10+0~5−2
Kimi K3.1 Pro
Moonshot AI, October 2026, 2.8T total, 104B active
--- frontier-llm@2026-11+++ qwen3-5@2026-02+0~3−3
Qwen3.5-397B-A17B
Alibaba Qwen, February 2026, 397B total, 17B active
Component by component
Kimi K3.1 Pro and Qwen3.5-397B-A17B differ on 8 of 27 components.
| Blueprint component | Kimi K3.1 Pro | Qwen3.5-397B-A17B |
|---|---|---|
Block Attention Residuals (AttnRes)Each sublayer reads a softmax-weighted mix of the embedding and earlier 12-layer block summaries, as in K3. | Single residual streamOne d = 4,096 pre-norm residual stream with zero-centred RMSNorm gains; no hyper-connections or depth attention. | |
QK-Clip and normalized latents; LayerNorm on the indexer keyNo per-head QK-Norm: K2-style weight clipping for MLA, L2-normalized q/k in KDA, a LayerNorm on the DSA indexer key. | Same as the blueprintPer-head RMSNorm (zero-centred gain) over the 256-dim heads on q and k in the 15 gated-attention layers, applied before RoPE. The Gated DeltaNet layers instead L2-normalize q and k inside the kernel. | |
Same as the blueprintGated MLA in the same 24 layers as K3 (4, 8, …, 92 plus 93), every projection the same shape: 96 heads, queries via a 1,536-dim latent, keys and values from a 512-dim latent plus a 64-dim shared key slot (576 cached values per token per layer), q/k head dim 192, v head dim 128. The difference is the key set: each query now attends only to the 2,048 tokens its layer's DSA indexer selects, not the full prefix. | Gated grouped-query attentionEvery fourth layer: full causal GQA with 32 query heads sharing 2 KV heads of dim 256, QK-Norm and a sigmoid output gate. | |
Same as the blueprintNew in K3.1: a DSA lightning indexer in each of the 24 MLA layers, each with its own weights (vLLM: no index sharing). 32 heads × 128 dims; queries from the 1,536-dim query latent (1,536 → 4,096), one shared 128-dim key from the hidden state with a LayerNorm, per-head weights from a 7,168 → 32 projection. Scores I = Σₕ wₕ·ReLU(qₕ·k) pick the top 2,048 tokens per query. 7.44M BF16 parameters per layer. DeepSeek-V3.2's indexer has 64 heads. How it was trained is unpublished. | ||
Sigmoid router with Quantile BalancingSigmoid scores pick 16 of 896 experts; each expert's selection bias is set every step from a quantile of routing margins. | Softmax top-k routerA linear router scores 512 experts; softmax, keep the top 10, renormalize. No selection bias. | |
Stable LatentMoE routed experts (SiTU-GLU)896 SiTU-GLU experts run in a 3,584-dim latent (half of d); 16 fire per token; an RMSNorm precedes the up-projection. | Same as the blueprint512 SwiGLU experts with intermediate size 1,024 at the full model width 4,096 (no latent projection); 10 are active per token, about 2% of the pool. Weights ship in BF16, with an official FP8 variant. | |
No MTP layer in the open checkpointThe checkpoint ships without MTP weights; Moonshot has not described a K3.1 drafter, so serving engines bring their own. | Same as the blueprintOne MTP layer: a full gated-attention + 512-expert MoE block whose input is a linear projection (8,192 → 4,096) of the RMSNorm'd next-token embedding concatenated with the RMSNorm'd trunk state. It reuses the main embedding and LM head and, per the model card, was trained with multiple steps, so the one layer is applied repeatedly to draft several tokens. | |
Same as the blueprintInherited from K3's pretraining: Per-Head Muon, which orthogonalizes each head's block of the Q, K and V momentum separately, plus Kimi K2's weight clipping, a cosine LR schedule with 1% linear warmup and weight decay 0.1. Moonshot has not said which optimizer trained the new indexer or K3.1's own training stages. |