All essays
RSS
Model Distillation · Field Notes

K3 Mini: Distilling a
2.8T Model Into
Something That Fits

You can't quantize a 2.8-trillion-parameter model small enough to run on a laptop — no amount of compression gets you there. What you can do is borrow its architectural ideas, train something genuinely smaller, and use K3 itself as the teacher.

Reading time · 11 min Filed under · Distillation, small language models, MoE, KDA Difficulty · Technical

Yes — this is probably the most economically interesting consequence of K3's release. But it's worth being precise about what "small K3" actually means, because the obvious phrasing is wrong.

Build a small model inspired by K3's architecture, then distill K3's capabilities into it.

Not "quantize K3 until it becomes small." 2.8 trillion parameters cannot be compressed down to laptop scale by any quantization scheme — the gap is too large. The path that actually works is training a genuinely smaller network that borrows K3's architectural ideas, then pouring K3's capability into it through distillation.


01 What K3 Actually Is

more than just Kimi Linear scaled up

K3 isn't a single technique — it's a stack of architectural decisions layered on top of each other:

Moonshot describes KDA, AttnRes, Gated MLA, and Stable LatentMoE as K3's architectural backbone, per the Kimi K3 technical blog.


02 A Plausible "K3 Mini"

sketching the spec sheet

ParameterValue
Total parameters8–16B
Active per token2–3B
Layers24–32
Attention ratio3 KDA : 1 Gated MLA
Experts16–32
Selected experts2–4
Context128K initially
ModalityText-only initially
Weight formatBF16 train → INT4 infer

That could plausibly fit into:

It wouldn't equal full K3 — nothing at this scale would. But it could be extremely attractive if it retained strong coding, tool-use, or domain-specific capability, which is a much lower bar than matching K3 across the board.


03 Why KDA Is Attractive for a Small Model

the KV-cache problem doesn't scale down with the model

Small dense models have a quiet, under-discussed weakness: they still suffer from growing KV caches, and that cost doesn't shrink just because the model did.

small model + enormous context
= surprisingly large inference memory

A small KDA hybrid sidesteps most of that:

75% fixed recurrent state
25% growing MLA cache

Approximate attention-layer composition of a K3 Mini hybrid

That composition makes long-running agents dramatically more practical on consumer hardware. The model itself could live in 5–10 GB, while the context state stays manageable even across long coding or research sessions — the exact workload where ordinary small models start to strain.


04 Do We Actually Want MoE in a Small Model?

the biggest open design question

MoE is attractive because it buys more total knowledge capacity without activating every parameter on every token:

16B total
2–3B active per token

But that appeal comes with real costs, and they land harder on CPUs and consumer GPUs than on datacenter hardware:

For a local CPU model specifically, a dense KDA model may actually win out:

3B dense KDA model
        versus
16B-total / 3B-active MoE

Both perform roughly similar active computation per token. But the dense model has far better weight locality and a smaller stored footprint — nothing to scatter, nothing that has to "still fit somewhere" beyond what's actually running.

3–4B dense KDA/MLA

Laptops, CPUs, and consumer GPUs. Predictable memory access, small footprint, easier to deploy well.

The dense version is likely the more commercially useful starting point — it's the one that actually runs well on the hardware most people already own.


05 How K3's Open Weights Actually Help

a teacher with logits, not just text

Once the weights exist, K3 becomes a teacher a student model can train against directly:

inputPrompts and tasks
teacherK3
↓ produces
signalAnswers, reasoning trajectories, logits
↓ trains
outputSmall K3-style student

With local weight access, distillation can draw on far more than final text output:

That's a categorically richer supervision signal than anything obtainable by calling a closed API — you're reading the teacher's internal judgment, not just its final sentence.

Mining routing statistics for a domain

One particularly interesting angle: studying which of K3's experts activate most for a target domain, then using that as a design signal — not a copy source — for the student.

start896 general experts
↓ measure routing on code workloads
analyzeIdentify useful expert clusters
resultTrain a much smaller coding-specialized expert pool

Directly copying or deleting experts from the teacher probably won't work well without retraining — but the routing statistics themselves can meaningfully inform the student's architecture.


06 What Cannot Simply Be Copied

architectural knowledge transfers; tensors don't

Weights from a 2.8T model generally can't be sliced down into a 3B model — the shapes don't line up:

The small model needs real training or substantial distillation — there's no shortcut around that. What's reusable is the architectural knowledge; what's not is the tensors themselves. The available toolbox for closing that gap includes:


A Sensible Development Path

nine steps, in order

01
Train a 300M–500M KDA/MLA model to validate the architecture and kernels.
02
Compare it against a same-size ordinary Transformer.
03
Build a 2–4B dense version.
04
Distill from K3 on coding, reasoning, and long-context tasks.
05
Add AttnRes once the basic architecture is stable.
06
Experiment with a small MoE variant.
07
Quantize to INT4.
08
Build optimized llama.cpp CPU and CUDA inference.
09
Benchmark quality per dollar — not merely benchmark scores.

The metrics that actually matter for a model like this look different from a leaderboard:


The Actual Commercial Opportunity

not another general-purpose tiny model

The interesting product here isn't "yet another small general-purpose model." It's narrower, and more useful for that:

A K3-derived, long-context SLM designed to run an autonomous business agent cheaply on one machine.

Full K3 supplies broad intelligence and synthetic supervision during training. The smaller KDA model then handles the repetitive production workload day to day, with a clean escalation path when a request exceeds it:

Most requests
Local K3 Mini
Hard requests
Full K3 API

That split could cut inference expenditure enormously while still preserving a frontier-model fallback for the requests that genuinely need one.

So yes — this is a genuinely strong idea. The only adjustment worth making is starting with a dense 3–4B KDA hybrid rather than immediately reproducing K3's extremely sparse 896-expert structure. Once the dense model works and the training signal is validated, a modest MoE version can follow — one designed around workstation and single-node serving, not supernode hardware.