Pruned MoE experts and the capabilities that die with them
MoE Guide

Expert pruning in MoE models: pitfalls and practice

August 2026 · Black Sheep AI Research

Three quantized variants scored 15 out of 15 on our automated tests. One of them couldn’t translate a sentence into Spanish without dropping a Chinese character into the middle of it. That gap between “passes the suite” and “works” is the whole story of expert pruning.

The failure that a green test suite hid

We pruned 18.1% of the experts from Qwen3.5-397B-A17B, 5,562 of its 30,720 expert instances, based on activation profiling. Every automated quality check we had said the model was fine. Then we read the outputs.

Here is the prompt: “Translate the following to Spanish: ‘The weather is beautiful today and I plan to go hiking in the mountains.’”

The unpruned model:

El clima está hermoso hoy y planeo ir de caminata a las montañas.

The pruned model:

El clima está hermoso hoy y我 plane to go hiking in the mountains.

It starts in Spanish, drops the Chinese character 我 (“I”) into the middle, then gives up and finishes in English. This passed our collapse test because the test checks for a minimum length of ten characters and has no keyword check for translation prompts. By the metric, it was a pass.

That wasn’t the only regression. Asked to explain what a monad is, the pruned model confidently denied that monads exist in functional programming. Given the fox-chicken-corn river-crossing puzzle, the unpruned model wrote a complete 1,119-character solution; the pruned model produced 206 characters that mostly restate the problem and never solve it. Both passed, because the tests only looked for a keyword and a length floor.

Why the tests lied

We ran the standard 15-prompt collapse suite against three variants. The results looked like a clean bill of health:

Variant Pass Warn Fail
With pruning (ExpertQuant) 15 0 0
Baseline (no pruning) 15 1 0
With pruning (Hybrid) 15 0 0

The pruned models had fewer warnings than the untouched baseline. Collapse tests check for minimum response length, keyword presence, repetition, and empty output. Those catch a model that has fallen over completely. They say nothing about a model that answers fluently and wrongly. Language contamination, factual denial, and truncated reasoning all sail straight through.

Activation frequency is not importance

The pruning itself is trivial and cheap. To remove an expert you don’t delete it; you set its row in the router’s gate weight to a large negative value so softmax drives its selection probability to zero:

# gate_weight shape: [num_experts, hidden_dim] = [512, 4096]
gate_weight[expert_idx, :] = -1e9

After softmax, that expert is never in the top-k. Zero runtime cost. The mechanism is sound. The target selection is where it goes wrong.

We picked experts to prune by activation frequency: anything that fired on less than 0.05% of tokens across 150 calibration prompts. The reasoning feels airtight, if an expert almost never activates, surely removing it costs almost nothing. It doesn’t hold, for a reason worth stating plainly: an expert that activates 0.03% of the time isn’t 30 times less important than one that activates 1% of the time. It might be the only expert that handles a rare but essential capability. A fire extinguisher is used 0% of the time during normal operations. That doesn’t make it safe to remove.

Our companion perplexity study makes the size of the danger concrete. On a 256-expert model, removing just the least-used 5% of experts, roughly 13 of 256 per layer, blew perplexity up by 13.2x, from 6.580 to 86.906. At 10% the model was effectively destroyed; at 25% it output noise. The full numbers are in why you can’t prune MoE experts, even the ones nobody uses. The router was trained with every expert present. Zero one out and the weighted sum it expects has a hole in it that no other expert was trained to fill.

The calibration set was the real culprit

The experts we pruned weren’t random. They were disproportionately the specialists our calibration set never exercised. All 150 prompts were primarily English, 25 per domain, and even the “multilingual” bucket held relatively simple translations. Against that input distribution, the experts carrying non-English generation, niche domain knowledge like functional programming, and extended multi-step reasoning barely fired. So they looked prunable. They weren’t; they were just off-camera.

This is the same sample-size trap we hit during activation profiling. Measured against 5 prompts, about 30% of a model’s experts can look dead. Measured against 100 diverse prompts, that figure falls to 0.6%. Small calibration sets don’t reveal redundancy, they manufacture the appearance of it. When you then prune on that appearance, you delete the model’s long tail of rare capabilities while keeping every common-case skill intact, which is exactly why the damage is invisible to English-centric smoke tests and obvious the moment someone asks for Spanish.

The benchmark breakdown pointed the same way. On MMLU-Pro the pruned model scored 43.6% overall, but History came in at 0% and Biology at 20%. Without a matched baseline run we can’t attribute every point of that to pruning, but a knowledge domain collapsing to zero is exactly the signature of removed knowledge-domain experts.

What to do instead

The lesson is not “never touch the expert pool.” It’s that activation frequency during calibration is a poor proxy for importance, and that quality gates built for collapse detection can’t see the failures pruning produces. If you’re going to prune anyway, do it like this.

There’s a better use for the same activation data: keep every expert and vary precision instead of existence. Tiered quantization gives the busy experts more bits and the quiet ones fewer, and in our measurements it costs a fraction of a percent of perplexity rather than orders of magnitude. Compress precision, not coverage.

The full pruning study, with the router-masking implementation, the complete failure transcripts, and the benchmark tables, is below.

Read the full research →

Continue Reading

From our research and product team.

Expert pruning in MoE models, when dead experts aren't dead
MoE Research

Expert Pruning in MoE Models, When Dead Experts Aren’t Dead

We pruned 18% of experts from a 512-expert model, it passed every automated test, and then produced Chinese characters inside Spanish translations.

Why you can't prune MoE experts, even the ones nobody uses
MoE Research

Why You Can’t Prune MoE Experts, Even the Ones Nobody Uses

Removing just 5% of the least-used experts from a 256-expert MoE model causes a 13x perplexity blow-up. Rarely activated does not mean safely removable.

Profiling expert activation patterns in 512-expert MoE models
MoE Research

Profiling Expert Activation Patterns in 512-Expert MoE Models

How we profiled 30,720 experts across two large MoE models and why activation frequency is a poor proxy for how much an expert matters.

View All Research