Kimi Linear 48B-A3B
Moonshot AI · Kimi Linear · open weights
- MLA
- Linear attention
- DeltaNet / KDA
- Hybrid
- RoPE
- Partial RoPE
- NoPE layers
- Pre-norm
- MoE
- Shared expert
- Dense first layers
Facts and where they come from
| Released | 2025-10 | config.jsonconfig.jsonHugging Face repository creation date (api.createdAt) |
|---|---|---|
| Licence | mit | config.jsonconfig.jsonREADME metadata: license |
| Total parameters | 48B | labmodel cardmodel name Kimi-Linear-48B-A3B |
| Active parameters | 3B | labmodel cardmodel name ...-A3B |
| Context length | not disclosed | not disclosed |
| Norm placement | pre | codemodelling codetransformers 5.18.0 / repo modelling code for kimi_linear: input_layernorm before attention, post_attention_layernorm before the MLP |
| Norm type | RMSNorm | codemodelling codetransformers 5.18.0 / repo modelling code for kimi_linear: input_layernorm before attention, post_attention_layernorm before the MLP |
| QK-norm | no | codemodelling codeno q/k normalisation in the attention block (MLA normalises its latent vectors, which is not QK-norm) |
| Positional encoding | RoPE on 33.3% of each head; MLA layers use no RoPE; the linear-attention layers carry order | config.jsonconfig.jsonmla_use_nope |
| Parallel attention and MLP | no | codemodelling codetransformers 5.18.0 / repo modelling code for kimi_linear: input_layernorm before attention, post_attention_layernorm before the MLP |
Architecture, drawn from the data
20× Kimi Delta Attention + 7× MLA 32h, latent 512. Each column is one layer: its token mixer above, its feed-forward block below. Paler columns reuse another layer’s keys and values.
Modelled costs
From the cost model, batch size 1. Totals the lab states are in the table above; differences come from rounding, from what a lab counts, or from parts the model does not describe (listed on the about page).
| Parameters (modelled) | 49.3B |
|---|---|
| Active per token (modelled) | 3.67B |
| Without embeddings and output head | 48.6B total, 2.92B active |
| Published weights (Hugging Face count) | 49.1B |
| KV cache per token, BF16 (layers that grow with context) | 7.88 KiB |
| KV cache + state at 128K tokens, BF16 | 1.01 GiB |
| Decode FLOPs per token at 4K context | 7.24 GFLOP |
| Prefill FLOPs for a 4K prompt | 25.4 TFLOP |
KV cache against context
Every architecture field
| Field | Value | Source |
|---|---|---|
| d_model | 2,304 | config.jsonconfig.jsonhidden_size |
| vocab | 163,840 | config.jsonconfig.jsonvocab_size |
| tied_embeddings | false | config.jsonconfig.jsontie_word_embeddings |
| mixers.mla.type | mla | codemodelling codemulti-head latent attention |
| mixers.mla.heads | 32 | config.jsonconfig.jsonnum_attention_heads |
| mixers.mla.q_lora_rank | null | codemodelling codeq_lora_rank: null (full-rank query) |
| mixers.mla.kv_lora_rank | 512 | config.jsonconfig.jsonkv_lora_rank |
| mixers.mla.qk_nope | 128 | config.jsonconfig.jsonqk_nope_head_dim |
| mixers.mla.qk_rope | 64 | config.jsonconfig.jsonqk_rope_head_dim |
| mixers.mla.v_head_dim | 128 | config.jsonconfig.jsonv_head_dim |
| mixers.kda.type | kda | codemodelling codeKimi Delta Attention |
| mixers.kda.k_heads | 32 | config.jsonconfig.jsonlinear_attn_config.num_heads |
| mixers.kda.v_heads | 32 | config.jsonconfig.jsonlinear_attn_config.num_heads |
| mixers.kda.k_head_dim | 128 | config.jsonconfig.jsonlinear_attn_config.head_dim |
| mixers.kda.v_head_dim | 128 | config.jsonconfig.jsonlinear_attn_config.head_dim |
| mixers.kda.conv_kernel | 4 | config.jsonconfig.jsonlinear_attn_config.short_conv_kernel_size |
| ffns.dense.type | dense | codemodelling codeMLP block |
| ffns.dense.d_ff | 9,216 | config.jsonconfig.jsonintermediate_size |
| ffns.dense.gated | true | codemodelling codeMLP: gated (SwiGLU/GeGLU) |
| ffns.moe.type | moe | codemodelling codeMoE block |
| ffns.moe.experts | 256 | config.jsonconfig.jsonnum_experts |
| ffns.moe.active | 8 | config.jsonconfig.jsonnum_experts_per_token |
| ffns.moe.d_expert | 1,024 | config.jsonconfig.jsonmoe_intermediate_size |
| ffns.moe.gated | true | codemodelling codeexperts are gated MLPs |
| ffns.moe.shared | 1 | config.jsonconfig.jsonnum_shared_experts |
| ffns.moe.d_shared | 1,024 | config.jsonconfig.jsonmoe_intermediate_size |
| layout | 1× kda/dense · 2× kda/moe · 1× mla/moe · 3× kda/moe · 1× mla/moe · 3× kda/moe · 1× mla/moe · 3× kda/moe · 1× mla/moe · 3× kda/moe · 1× mla/moe · 3× kda/moe · 1× mla/moe · 2× kda/moe · 1× mla/moe | config.jsonconfig.jsonlinear_attn_config.full_attn_layers (1-based), first_k_dense_replace |
Sources
- config.json @ 3b171c1
- model card
- arXiv 2510.26692
- modelling code · transformers 5.18.0 modelling code, or the model repository's own modelling file at the pinned revision
Listed in the LLM Architecture Gallery checklist as “Kimi Linear (48B-A3B)” (name only; see about).