Definition: every token, every parameter
A dense model is a decoder-only Transformer where every token activates the entire set of feed-forward weights at every layer. When a token flows through an FFN block, it goes through all the neurons — no routing, no gating, no selective activation. If a model has 70B parameters, all 70B participate in processing every single token, every position, every batch.
Three properties that fall out of the definition
- Total = active. What you see is what you compute. The parameter count on the card is the parameter count that fires.
- Uniform compute per token. The word "the" costs the same as a complex code token. Capacity planning is straightforward — multiply tokens by per-token cost.
- Deterministic activation path. Same input, same weights, same path through the network every time. No router decisions to debug.
What dense gives up, and what it keeps
Dense gives up the ability to scale total parameters faster than per-token compute. Doubling a dense model's parameter count roughly doubles the FLOPs per token. At frontier scale (100B+) this gets expensive fast — which is why MoE exists. But dense keeps almost everything else: simplicity, debuggability, fine-tuning ergonomics, and the entire mature serving ecosystem (vLLM, llama.cpp, MLX, TensorRT-LLM all started as dense-first stacks).
Where dense still wins in 2026
Below ~30B parameters, MoE overhead (router, load balancing, expert parallelism) often eats the efficiency gains. So small/medium open-weight models are still overwhelmingly dense — Llama 3 8B, Gemma 3 27B, Qwen3 14B/32B, Phi-4 14B, Mistral NeMo 12B. Dense is also the default for any local-deployment workload where you want predictable memory and quantization-friendly behavior.