Skip to content
AI Primer
update

Kimi K3 report details RL distillation and FlashKDA infrastructure

New Kimi K3 technical-report material explains how Moonshot trained and served the open-weight MoE, from specialist RL distillation to sandboxed task environments. Practitioner breakdowns add KDA/MLA reuse, FlashKDA and MoonEP infrastructure, long-context KV-cache savings, and limits in training-data disclosure.

8 min read
Kimi K3 report details RL distillation and FlashKDA infrastructure
Kimi K3 report details RL distillation and FlashKDA infrastructure

TL;DR

The technical report is unusually useful because it puts architecture, RL, and serving infrastructure in one document. The official blog frames the headline as 2.5x intelligence per unit of compute over K2, while the vLLM deployment guide gets down to serve flags, KDA prefix caching, and DSpark speculative decoding. The AgentENV release post says its Firecracker-based sandboxing cuts agent environment costs by 88.6% to 96.8% under typical workloads.

What shipped

Moonshot shipped more than weights. The release bundled the model, the report, the tech blog, and three pieces of infrastructure that explain why K3 can be trained and served at this size.

Architecture

K3 is Christmas come early for architecture diagram people. The report's core pattern is three KDA layers plus one Gated MLA layer per block, with sparse expert capacity after attention.

  • Sequence mixing: KDA handles efficient long-sequence recurrence, while periodic Gated MLA layers preserve global attention, according to the technical report.
  • Position handling: K3 uses NoPE everywhere; rasbt called it the first frontier-level NoPE-everywhere architecture he knew of.
  • Width: Stable LatentMoE routes each token to 16 of 896 experts, with 104B active parameters, per mervenoyann's spec list.
  • Depth: Attention Residuals let later layers retrieve earlier block representations, and rasbt's architecture notes quote about 4% extra training cost and 2% extra inference cost.
  • Stability: K3 uses lower-bounded KDA decay, SiTU-GLU, RMSNorm, and Quantile Balancing as scale-control mechanisms, as rohanpaul_ai's report summary lays out.

suchenzang put the design theme bluntly: sequence length, depth, and MoE width each needed its own dynamic-range bandages.

RL distillation

The post-training section is the most reusable part of the report. K3 does not train one generic RL policy and hope effort controls work later.

  1. SFT: K3 starts from synthesized long-horizon agent trajectories, multi-stage verification, human annotation, a unified XTML format, and quantization-aware training with MXFP4 routed-expert weights and MXFP8 activations, according to ZhihuFrontier's K3 pipeline breakdown.
  2. RL specialists: Moonshot trains policies across General, General Agents, and Coding Agents, each at low, high, and max reasoning effort, producing nine teacher policies, not to be confused with K3's 896 routed MoE experts.
  3. Budgeted behavior: a cold-start model estimates an initial token budget, then domain-specific multipliers shape max, high, and low policies; stochasticchasm's effort note calls the post-SFT budget estimate especially clean.
  4. MOPD: the final student generates its own rollout, then the matching teacher scores the sampled next token from the student's actual prefix, giving token-level supervision on the student's state distribution, per ZhihuFrontier's K3 pipeline breakdown.
  5. No top-k win: nrehiew_'s pipeline note says Moonshot reported no advantage from top-k distillation.

Agent environments

Agent RL at K3 scale looks less like a benchmark loop and more like cluster orchestration for unreliable contractors. The report describes long-running tasks, resumable rollouts, external KV retention, and persistent sandbox state.

  • Task synthesis: nrehiew_'s task-synthesis note says K3 builds a knowledge graph with web-search agents, samples keys, retrieves internet material, and synthesizes tasks from those seeds.
  • Task mix: nrehiew_'s task dump lists general verifiable work, kernel optimization, personal assistant tasks, autoresearch, and webdev tasks including SVG and 3D.
  • Partial rollouts: _lewtun's Journal Club summary says completed trajectories can trigger updates while unfinished ones are carried into later iterations and reprioritized.
  • Sandbox scale: nrehiew_'s sandbox notes quote 51,219,741 sandboxes across 1,505,678 images during K3 training and evaluation.
  • Isolation: the AgentENV blog says each task runs in a Firecracker microVM with on-demand image loading, incremental snapshots, copy-on-write forks, and elastic lifecycle management.

rauchg points to the security lesson buried in the report: container isolation was not enough when agents could trigger kernel panics and deadlocks.

Serving stack

K3 forced serving engines to handle two cache worlds at once: recurrent KDA state and MLA KV cache. That detail shows up all over the day-zero deployment work.

  • FlashKDA: Kimi_Moonshot's FlashKDA post claims 1.72x to 2.22x prefill speedups over flash-linear-attention on H20, with a drop-in backend.
  • MoonEP: the MoonEP GitHub README describes dynamic redundant experts, perfect token-load balance, zero-copy communication, and static shapes for expert parallelism.
  • vLLM: vLLM_project's deployment thread says prefix caching had to be rebuilt around recurrent KDA state, then lists P/D disaggregation, KV offloading, tool calling, structured output, and DSpark speculative decoding.
  • SGLang: lmsysorg's SGLang post reports 423 tok/s on GSM8K with fused KDA decode kernels, DP attention, DSpark, PD disaggregation, and KDA-aware prefix caching.
  • Batch-one speed: vLLM_project's speed post reports 464 tok/s on a low-entropy reasoning workload with batch size 1 and 4x4 GB300.

nrehiew_ caught the important cache gotcha: K3 has KDA state and MLA KV cache, and recurrent-state shape makes block-level hashing too coarse.

Harness economics

The same K3 checkpoint behaved very differently depending on the agent harness around it. Composio ran 28 tasks through Kimi Code, Hermes, and Claude Code, then ThursdAI graphed the spread.

Cline went one step weirder: cline's self-improvement run says K3 modified the Cline harness for 17 hours, raising Terminal-Bench from 77.5% to 88.8% and cutting run cost from $79 to $49.8.

Open-weight caveats

K3 is open-weight, not a permissive open-source release. the license writeup notes that Moonshot avoids calling the license open source in its own materials.

  • MaaS trigger: rohanpaul_ai's license summary says model-as-a-service providers need a separate Moonshot agreement once licensee-plus-affiliate revenue exceeds $20M over any trailing 12 months.
  • Product attribution: the same summary says commercial products over 100M monthly users or $20M monthly revenue must prominently display “Kimi K3.”
  • No public pricing restriction: rohanpaul_ai's license summary says the public license does not specify royalties, revenue sharing, or mandatory commercial pricing terms.
  • Missing training scale: stochasticchasm's missing-data note says the report does not disclose training tokens or compute for K3 or MoonViT 2, while cedric_chee's hardware-detail note says the report is light on hardware details compared with K2.5.
  • Serving floor: ZhihuFrontier's hardware-cost breakdown says K3 weights occupy roughly 1.56TB and identifies 8x MI355X or 8x B300 as the lowest public load-class configurations, with production serving possibly moving toward 64-plus accelerators.
  • Early API price parity: jaminball's pricing note says Baseten and Fireworks were both at $3 per million input tokens and $15 per million output tokens, matching Moonshot's direct pricing at the time of the post.

Further reading

Discussion across the web

Where this story is being discussed, in original context.

On X· 8 threads
TL;DR3 posts
What shipped3 posts
Architecture2 posts
RL distillation2 posts
Agent environments3 posts
Serving stack3 posts
Harness economics3 posts
Open-weight caveats4 posts
·
Other sources· 1 post

moonshotai/Kimi-K3

moonshotai/Kimi-K3 As promised earlier this month, Moonshot have released the weights for their excellent 2.8 trillion parameter Kimi K3. They're a hefty 1.56TB on Hugging Face. Kimi introduced their own janky modified version of the MIT license with K2 back in July 2025. That license just added this paragraph requiring attribution beyond a certain size of commercial entity: Our only modification part is that, if the Software (or any derivative works thereof) is used for any of your commercial products or services that have more than 100 million monthly active users, or more than 20 million US dollars (or equivalent in other currencies) in monthly revenue, you shall prominently display "Kimi K2" on the user interface of such product or service. The K3 license no longer calls itself "modified MIT" and goes further, requiring a separate agreement with Moonshot for large "Model as a Service" businesses: If the Licensee or any of its affiliates operates a Model as a Service business, and the aggregate revenue of the Licensee and its affiliates exceeds 20 million US dollars (or the equivalent in other currencies) in total over any consecutive 12 months, the Licensee must enter into a separate agreement with Moonshot AI before using the Software or its derivative works for any commercial purpose. To Kimi's credit, they make no attempt to describe this as an "open source" license in their own materials, consistently using the term "open weight" in its place. OpenRouter is already of

Share on X