Kimi K3 · Review C · capstone
Three tests, one for each part of the mission. Reconstruct the architecture, explain it to someone else, and read a passage you have never seen.
The mission had three legs: read frontier papers unaided, explain K3 to other people, judge it for deployment. This page tests each one directly. The last exercise is the one that matters most, because it uses material the course never covered.
Get a blank sheet of paper. Do this before reading anything below, and expect it to be harder than it looks.
Draw Kimi K3 from memory. The repeating block, the layer counts, what pairs with what, the input pathway, and the numbers on each component.
For each of these, state the problem it solves and what it costs: KDA, NoPE, AttnRes, LatentMoE, SiTU-GLU, Quantile Balancing, Per-Head Muon.
Three numbers from memory: K3's parameter derivation, one max-resolution image in tokens, and one 50-turn coding session's cost with and without cache.
The same model, three audiences. Being able to switch register is what distinguishes understanding from recitation.
Explain to a smart non-specialist, in about thirty seconds, why K3 can read a million tokens when most models cannot.
Explain to an ML engineer, in about a minute, what is architecturally novel in K3 rather than merely scaled up.
A colleague asks whether to switch a production agentic coding workload from Claude Fable 5 to K3. Give them a real answer.
This is the real exam. The passage below is from §5.2.1, on MoonEP, K3's expert-parallelism scheme. The course never covered it. Read it cold, then answer.
"In conventional EP schemes, token loads are imbalanced across ranks.
The resulting computational imbalance degrades training throughput,
and the dynamically varying shapes of routed-expert activations cause
substantial memory fragmentation. We therefore propose MoonEP, an EP
scheme that achieves perfect load balance with dynamic redundant
experts. [...]
MoonEP requires every rank to receive exactly S × K tokens, where S
is the sequence length and K is the number of experts selected per
token, so that all ranks perform identical amounts of computation.
The key question is how many redundant experts suffice to guarantee
such a balance. Let E be the number of experts and R the EP size. We
prove that a balanced plan always exists with at most E/R redundant
experts per rank and that this bound is essentially tight. Reserving
E/R redundant-expert slots per rank therefore guarantees that planning
always admits a feasible solution, so training is never interrupted.
In contrast, prior work such as ECHO and UltraEP presets the number of
redundant experts or imposes a per-rank token cap. Training is then
forced to stop whenever no feasible plan exists within the cap, and the
cap itself requires manual tuning..."
What two distinct problems does imbalanced expert parallelism cause here, and why is the second one non-obvious?
static computation shapes and zero-copy communication(§5.2.1): predictable shapes are a goal in their own right.
Compute the redundant-expert bound for K3's own configuration, assuming an EP size of 64. What does the answer mean practically?
What kind of claim is "essentially tight", and what is the authors' rhetorical move against ECHO and UltraEP?
The rhetorical move is to reframe a quantitative difference as a qualitative one. Prior work presets a number or caps tokens per rank, which means a plan can fail and training must stop, plus the cap needs hand-tuning. MoonEP's contribution is framed as a guarantee rather than a better heuristic: no tuning, no failure mode. This is a common and legitimate pattern in systems papers. Watch for it, and watch for whether the guarantee holds under assumptions the paper states quietly.
Which mechanism from this course does MoonEP most resemble in spirit, and why?
┌──────────────────────────────────────────────────────────────────┐
│ KIMI K3 2.78T total · 104.2B active · 93 layers · 1M context │
│ native multimodal · open weights · Jul 2026 │
└──────────────────────────────────────────────────────────────────┘
THE BLOCK × 23, plus one trailing Gated MLA = 93 layers
3 × [ KDA + Stable LatentMoE ] linear, O(n), 69 total
1 × [ Gated MLA + Stable LatentMoE ] global, NoPE, 24 total
── SEQUENCE ──────────── how tokens mix ─────────────────────────
KDA fade (channel-wise α) → erase (delta rule) → write
chunkwise: recurrent between, parallel within
g_min = −5 → 1/Γ < e⁸⁰ < BF16 → all Tensor Core
Gated MLA one latent per token, exact global recall
NoPE position from recurrence → no retuning 8K→1M
── DEPTH ─────────────── how layers mix ─────────────────────────
Block AttnRes 8 blocks × 12 (final partial), learned pseudo-
query per layer, RMSNorm on keys,
O(Ld) → O(Nd), ~4% train / 2% infer
blocks 1/4/final feed the spec-decoding draft
── WIDTH ─────────────── how channels mix ───────────────────────
Stable LatentMoE 896 routed @ ℓ=3,584 (0.5d), 16 active
sparsity 56, 2 shared @ full width
≈2.72T params = 98% of the model
RMSNorm pre-W↑ stabilises the routed branch
SiTU-GLU β₁=4, β₂=25 → bounded at 100, for MXFP4
Quantile Balancing bias from score quantile, 1 step, LP dual
── INPUT ────────────────────────────────────────────────────────
MoonViT-V2 401M · 27 layers · patch 14 · from scratch (NTP)
pixel-shuffle 2×2 → 3584² = 16,384 tok = 1.6% of 1M
hidden in pipeline bubbles
── OPTIMISATION ─────────────────────────────────────────────────
Per-Head Muon 96 heads orthogonalised separately, and cheaper
cosine > WSD each schedule tuned independently
claimed 2.5× vs K2, undecomposed, unreplicated
── SERVING ──────────────────────────────────────────────────────
$0.30 hit / $3.00 miss / $15.00 out per MTok · >90% hit coding
MXFP4 experts + MXFP8 acts, QAT through SFT and RL
64+ accelerators · decoupled prefix-cache granularities
cache-affinity routing · budget-based admission control
── BEHAVIOUR ────────────────────────────────────────────────────
SFT → RL (3 domains × 3 efforts = 9 experts) → MOPD → one model
Limitations: thinking-history sensitivity · over-proactiveness
· UX gap vs Fable 5 and GPT-5.6 Sol
The course is finished, so the useful thing is what replaces it.
## Gaps section of RESOURCES.md tracks them.