Two words decide the shape of a private AI server: dense, or mixture of experts. A buyer meets them on a spec sheet, with no way to tell what either costs. The honest answer is in the model's own configuration file, which every open-weight vendor publishes, and it takes about ten minutes to read.
Concede the headline first. A mixture-of-experts model is a genuine memory win, and for high-volume, low-complexity work it is the better buy. The question is how big the win is, and where it stops.
What the two words mean
A dense model reads every weight it has to produce one token. A mixture-of-experts model splits most of its weights into experts and reads only a few of them per token. Qwen3.6-35B-A3B publishes 256 experts and 8 experts per token. So it carries 36 billion parameters and reads about 3 billion at a time.
That is the promise: the memory bandwidth cost of a small model, with the knowledge of a large one.
The two configuration files, read on the same day
Both files were read on 2026-09-23. They are the vendor's own, machine-readable, and they hold every number that decides capacity.
| Field | Qwen3.8-27B, dense | Qwen3.6-35B-A3B, MoE |
|---|---|---|
| Hidden layers | 64 | 40 |
| Of which full attention | 16 | 10 |
| Key-value heads | 4 | 2 |
| Head dimension | 256 | 256 |
| Experts, active per token | none | 256, 8 |
Three of every four layers in both models hold a fixed recurrent state instead of a growing cache. Only the full-attention layers pay per token. That is why the layer count alone tells you nothing.
The cache arithmetic, from those numbers
Each full-attention layer stores a key and a value for every token. The cost of one token is 2, for the key and the value, times the full-attention layers, times the key-value heads, times the head dimension, times the bytes per number.
| Dense 27B | MoE 35B-A3B | |
|---|---|---|
| Bytes per token, fp8 | 32,768 | 10,240 |
| Bytes per token, bfloat16 | 65,536 | 20,480 |
| One 8k conversation, fp8 | 268 MB | 84 MB |
| One 8k conversation, bfloat16 | 537 MB | 168 MB |
The MoE holds under a third of the cache per conversation. It wins twice: it has 10 full-attention layers against 16, and 2 key-value heads against 4. Memory is the seat constraint on a single card, so this is the part of the promise that holds.
Where the promise starts to fail
The weight saving is the other half of the promise, and it is the half that does not survive a crowd.
Eight experts per token is true for one token. A server answers many people in one batch, and the batch has to read every expert that any of its tokens routed to. With 256 experts and 8 per token, 32 tokens can already reach all 256. Above that batch size the model reads something close to its whole expert set on every step, and the saving that justified the architecture is gone.
This is the reason a MoE throughput figure quoted from the single-token case is not a capacity figure. It describes one person using the machine.
The quality side of the trade
Each vendor publishes its own model's scores on its own model card. Both cards were read on 2026-09-23, and two benchmarks appear on both.
| Benchmark | Dense 27B | MoE 35B-A3B |
|---|---|---|
| LiveCodeBench v6 | 90.3 | 80.4 |
| SWE-bench Pro | 61.7 | 49.5 |
The two cards compare against different sets of rival models, so read each number as the vendor's own claim for its own model, not as a controlled head-to-head. Even read that way, the gap on both coding benchmarks is about ten points.
What this means for a buyer
The choice is not which architecture is better. It is which of the two constraints binds in your building.
- Many people, simple work: classification, summarising, document question answering, overnight batches. The MoE wins on memory and the quality gap costs you little.
- Fewer people, hard work: drafting, analysis, code, research. The dense model wins, and the seat count is rarely the thing the department feels.
- Ask any vendor for a capacity figure with four terms attached: how many concurrent users, at what context length, at what tokens per second each, with what cache precision. A number missing any of the four cannot be checked.
- For an MoE quote, ask one more thing: at what batch size was it measured. A figure taken at one request tells you nothing about thirty.
With Bastion
What Bastion changes
Bastion is a private AI system delivered as one sealed appliance that runs inside your building. One monthly fee covers the hardware, the model, the hardened operating system and support, and nothing your team types leaves the building.
Bastion sells the dense model as its default, because a sealed box that runs the second-best open model is the wrong box for reasoning work.
The published capacity quote is the Reasoning node: 35 concurrent users, at 8,000 tokens of context, at 30 tokens per second each, with an fp8 key-value cache. It is calculated from arithmetic of exactly the kind above, not measured on a machine.
We publish no capacity number for a mixture-of-experts node. The first calculation we made ignored the expert-union effect described above, so it was withdrawn rather than corrected quietly. It stays withdrawn until the first box is built and measured.
Questions this article answers
- What is the difference between a dense and a MoE LLM?
- A dense model reads all its weights for every token. A mixture-of-experts model reads only a few experts per token: Qwen3.6-35B-A3B publishes 256 experts with 8 active per token, read 2026-09-23. The MoE therefore reads less memory per token, at the cost of quality on hard work.
- Does a MoE model serve more concurrent users?
- On memory, yes. Read on 2026-09-23, the MoE holds 10,240 bytes of fp8 cache per token against the dense model's 32,768, so one 8k conversation costs 84 MB against 268 MB. On compute the win shrinks with the batch: at 8 experts of 256 per token, 32 tokens can already reach every expert.
- Which architecture should a company choose for a private AI server?
- It depends on which constraint binds. High-volume, low-complexity work suits the MoE. Reasoning work suits the dense model: on its own vendor card, read 2026-09-23, the dense Qwen3.8-27B scores 90.3 on LiveCodeBench v6 against the MoE's 80.4, and 61.7 on SWE-bench Pro against 49.5.
On the record
- 1
- 2
- 3
- 4
- 5
Read next
- What hardware runs a local LLM, and what the parts list leaves outThe memory arithmetic, calculated from a published model configuration and a published card specification. Why a 32-billion-parameter model does not fit on a 32 GB card, what a conversation costs in memory, and the five items no parts list contains.Read the article
- How many people can one AI server actually support?Concurrent users are not employees. Capacity is decided by the model, the context length, the KV cache and the serving engine, and the vLLM project measured a case where the engine alone changed usable memory by a factor of two to five.Read the article