Kimi-K3
Fields
models/kimi-k3Notes
CONTEXT SCALING: null is a VERIFIED value here, checked against config rather than left blank. config.json (moonshotai/Kimi-K3) declares rope_scaling null, max_position_embeddings 1048576. The 1M window is native as far as the config states, with no declared PI / NTK / YaRN step; null verified, not unfilled. The largest open-weight model in this slice by a wide margin: vendor 2.8T total / 104B activated, safetensors total 2779.93B, native multimodal, 1M context. K3's own card claims 2.5x better scaling efficiency than K2. kv_cache_bytes_per_token = 24 full-attention layers x (kv_lora_rank 512 + qk_rope_head_dim 64) x 2 bytes = 24 x 576 x 2 = 27,648 B/token (27 KiB). This is the clearest illustration of the hybrid-attention trick: 2.78T total parameters with 104B active, yet KV per token is LOWER than Qwen3-8B's 144 KiB (a dense 8B) and less than half of DeepSeek-V3's 68.6 KiB. At 128k context a sequence is 3.38 GiB. Attention composition per the card: 69 KDA + 24 Gated MLA across 93 layers; config linear_attn_config confirms 24 full_attn_layers and 69 kda_layers, with a gate_lower_bound of -5.0 on the KDA layers and a 'Stable LatentMoE' activating 16 of 896 experts. New ingredients versus K2: Attention Residuals, 16 experts per token (up from 8), 896 experts total, and MXFP4 weights with MXFP8 activations from quantization-aware training onward - so the published repo is ALREADY 4-bit, and this is the main practical reason its memory footprint is far below 2.8T would suggest. first_k_dense_replace 1, moe_intermediate_size 3072, intermediate 33792, hidden 7168. num_experts_per_token 16, and 2 shared experts (num_shared_experts 2) - per-token active is 16 routed PLUS 2 always-on shared, worth remembering when reading the vendor's 104B figure. Licence is the bespoke Kimi K3 License.
SERVICEABILITY JOIN (added 2026-10-03; the architecture x engine matrix this record was missing, with a citation per cell in docs/13-model-compatibility.md): FAMILY=hybrid-attention-ssm. REQUIRED KERNEL CLASS: two kernel families in one graph - a chunked linear-attention / delta-rule kernel for the SSM or linear-attention layers, and an ordinary or MLA decode kernel for the full-attention minority - plus a fixed-size recurrent state allocator. Three independent records say the recurrent branch is the hard part: flop/ssm-recurrent-state-update (the state is a fixed per-sequence tax that never amortises, so it scales with concurrency and NOT with context); flop/ssm-sequential-scan-tensor-core-mismatch (the recurrence is a multiplicative chain that tensor cores cannot express, so it must run as a sequential scan; the published SSD-vs-fused-scan gap is 2-8x for identical mathematics); and llama.cpp's own dispatch table, which puts every hybrid and SSM architecture in its supports_sm_tensor == false list [[mdl2-llamacpp-arch-class-registry]] - the engine agreeing with the arithmetic. That same list also shows llama.cpp needed ONE shared hybrid code path (llm_arch_is_hybrid, 18 entries: JAMBA, FALCON_H1, PLAMO2, GRANITE_HYBRID, LFM2, LFM2MOE, NEMOTRON_H, NEMOTRON_H_MOE, QWEN3NEXT, KIMI_LINEAR, BAILINGMOE3, KIMI_K3, GLM5_NEXT, QWEN35, QWEN35MOE, QWEN4EXP, DEEPSEEK4, MINIMAX_01) covering exactly the families vLLM and SGLang each ship as separate rows, which is why hybrid support arrives per engine release rather than at once. SUPPORTED BY (cited): vLLM native rows MambaForCausalLM, Mamba2ForCausalLM, JambaForCausalLM, FalconMambaForCausalLM, FalconH1ForCausalLM, NemotronHForCausalLM, GraniteMoeHybridForCausalLM, Qwen3NextForCausalLM, KimiLinearForCausalLM, Lfm2ForCausalLM, Lfm2MoeForCausalLM, OlmoHybridForCausalLM, KimiK3ForConditionalGeneration, BailingMoeV3ForCausalLM, Qwen3_5 rows [[mdl2-vllm-supported-models-2026-10]]; SGLang generative table names Granite 4.0 micro as 'hybrid Mamba-MoE ... combining gated short convolutions with a small number of grouped query attention blocks', Kimi Linear as 'hybrid linear attention model ... Kimi Delta Attention (KDA) for up to 6x faster decoding and 75% KV cache reduction vs full attention', Nemotron Nano as 'hybrid Mamba-Transformer architecture', Ling as 'hybrid MoE model: per-layer mix of DeepSeek-style MLA full attention and Qwen3 Gated-Delta-Net (GDN) linear attention', LFM2 as 'hybrid backbone', Mamba-Codestral as 'Mamba2 ... holds no KV cache', and its multimodal page carries the descriptor 'hybrid KDA/MLA' [[mdl2-sglang-generative-models]] [[mdl2-sglang-multimodal-language-models]]. TensorRT-LLM has rows for NemotronHForCausalLM, Qwen3NextForCausalLM, Qwen3_5MoeForCausalLM, Qwen4ExpForCausalLM, KimiLinearForCausalLM and KimiK3ForConditionalGeneration but NO row at all for MambaForCausalLM, Mamba2ForCausalLM, FalconH1ForCausalLM, Lfm2ForCausalLM or GraniteMoeHybridForCausalLM [[mdl2-trtllm-supported-models]]. PER-FAMILY FEATURE TRAPS, all from the TRT-LLM key-models matrix, which is the only per-architecture feature matrix in this repo [[mdl2-trtllm-supported-models]]: Qwen3NextForCausalLM has Sliding Window Attention = No and Speculative Decoding = No; Kimi K3 has no MTP or EAGLE-3 head at all (spec method DSpark only) and needs Blackwell SM100; MiniMax-M3 sparse-attention path supports neither KV cache reuse nor MTP in this release; DeepSeek-V4 and Step-3.7 are 'Untested' for disaggregated serving. KERNEL BUGS THAT ARE ARCHITECTURE-SPECIFIC AND REPRODUCED: (1) vLLM's EAGLE last-block drop (drop_eagle_block) costs 6-10 points of prefix-cache hit rate, and on a hybrid GDN/Mamba layout the scheduler alignment unit is 1,648 tokens instead of a 16-token dense block, so the same protection costs ~100x more cache hit - 97.5% to 86.9-91.7% hit rate and 30-40% batch throughput on prefix-reusing workloads [[eagle-prefix-cache-last-block-drop]]. (2) llama.cpp decode collapses on hybrid gated-deltanet GGUF models at high KV position: 33 t/s at 68K to 1.4 t/s at 91K with the model fully resident, across KV quant types and with FA on or off, reproduced on Windows and WSL2 on master and release [[gated-deltanet-decode-collapse-long-context]]. (3) llama.cpp's SYCL path has a regression specific to hybrid linear-attention graphs - qwen3next/qwen3_35 architecture models crash in ggml_sycl_op_mul_mat or return empty output on 2x Arc Pro B60, bracketed between builds b8477 (works) and b9479 (fails), while dense-attention models on the same cards are unaffected [[sycl-hybrid-linear-attention-arch-crash-intel-arc]]. (4) FlashInfer rejects large head sizes at engine init for the head geometry these hybrids introduce [[flashinfer-rejects-large-head-dim]]. Hybrid Gated MLA + KDA on the largest checkpoint in the repo. TRT-LLM footnote: Kimi K3 is only supported on NVIDIA Blackwell GPUs (SM100 family), with a recipe split where DEP16 needs GB300-class per-GPU memory (210 GB/rank) and TEP16 needs 115 GB/rank and is validated on GB200 at 16 GPUs; on B200 kernel and module support is functional and CI-covered; the FP8 weight-read path does not relax the DEP16 requirement because conversion happens after weights are already resident in BF16. It also has no MTP or EAGLE-3 head, spec method DSpark only [[mdl2-trtllm-supported-models]]. vLLM has KimiK3ForConditionalGeneration with PP supported [[mdl2-vllm-supported-models-2026-10]]. Its prefix-cache interaction is the eagle-prefix-cache-last-block-drop case: 1,648-token scheduler alignment on hybrid GDN layouts instead of a 16-token dense block [[eagle-prefix-cache-last-block-drop]].
CONTEXT_SCALING_METHOD (none-verified): config declares no rope_scaling and no rope_theta at all, yet the record cites a 1048576 context. Absent a declaration the method cannot be called native, so it is 'not confirmed' rather than asserted.
LAYER LAYOUT (kimi-k3): config has no layer_types array; the split is reconstructed from linear_attn_config.full_attn_layers vs .kda_layers. Those two lists leave gaps - layer 0 (and, for Kimi K3, index 92-vs-93 off-by-one region) are short-conv mixer layers that are neither full attention nor KDA, recorded here as 'short_conv' rather than silently dropped.
Cross-references
This record references no other records — it is a leaf. It is cited by 4.