Channel Selection for Mixture-of-Experts Decoding Needs No Calibration Data
Organizations: KAIST
Abstract
Mixture-of-Experts (MoE) models are bottlenecked by loading routed-expert weights from memory during interactive decoding at small batch sizes. Because most intermediate channels in a routed expert contribute little to any single token, channel selectors predict which channels matter and read only their weights, typically keeping channels above a threshold calibrated on offline data. We show that channel selection needs no calibration data. First, a calibrated threshold does not fix how much a selector reads, because the number of channels passing it varies across inputs; Prox with thresholds calibrated for an 18% read budget actually reads only 12.9% on average across our benchmarks. Second, top-k keeps each token's k highest-scoring channels and needs no calibration data. At the calibrated budget, a selector's top-k version matches or beats its threshold version on the same score in 40 of 43 comparisons at 13% and 18% budgets, including all 23 on generation tasks. The top-k versions also avoid the repetition-loop collapse that calibrated thresholds cause on Gemma 4. Calibrating a threshold thus provides neither of the two things selectors use it for: a known read budget and a consistent accuracy gain at that budget. We furthermore introduce a reader built entirely from the model's weights, which screens channels with a ternary sketch and recovers the skipped ones with a low-rank map. Across three post-trained MoE models, our reader retains 98.1% of full-model accuracy at 17.8% of routed-expert reads, with Triton kernels running MoE blocks 1.60 to 1.90x faster than optimized vLLM at batch one and up to 2.69x at larger batches on the same three models.
Figures & tables
| About 13% of reads | About 18% of reads | |||||||
|---|---|---|---|---|---|---|---|---|
| Selector | Target | Realized | Mean | Worst | Target | Realized | Mean | Worst |
| Our reader | – | 12.8 | 94.5 | 86.9 | – | 17.8 | 98.1 | 95.0 |
| Prox score, top- | – | 13.5 | 87.0 | 61.1 | – | 18.5 | 96.1 | 90.4 |
| Prox as published, calibrated | 13 | 8.5 | 51.5 | 0.0 | 18 | 12.9 | 68.5 | 12.1 |
| WINA as published, top- | – | 15 | 2.4 | 0.0 | – | 20 | 28.4 | 1.1 |
| WINA score, calibrated | 15 | 7.8 | 0.2 | 0.0 | 20 | 11.2 | 5.0 | 0.0 |
Appendix figures & tables24 assets
Supplementary material from the paper’s appendix.
Appendix
| Study | Regime | Models | Same score | Matched | Ahead |
|---|---|---|---|---|---|
| La RoSA ( 2025b ) | dense, PPL | LLaMA2-7B | yes | target | top- (PPL) |
| Batch-wise pruning ( 2026c ) | dense, CoT | 2 distilled 7–8B | yes | target | top- (batch 4) |
| Sparsing Law ( 2025 ) | dense, short tasks | 0.1B, 0.8B | no | target | threshold |
| Prox ( 2026 ) | dense, short tasks | Qwen3-8B, 14B | yes | target | threshold (+1.8) |
| TopK-Guided ( 2026 ) | dense, short tasks | Llama-2/3, 7–8B | no | target | hybrid; top- vs. mixed |
| Sparser-MoE ( 2026d ) | MoE, short tasks | OLMoE | unclear | target | top- ( 1 pt) |
| Routed experts | Width | MoE | Always | Added memory (%) | ||||
|---|---|---|---|---|---|---|---|---|
| Model | Total | Active | Expert | Hidden | layers | full | Sketch | Recovery |
| Qwen3-Thinking | 128 | 8 | 768 | 2048 | 48 | – | 7.6 | 0.50 |
| Gemma 4 | 128 | 8 | 704 | 2816 | 30 | dense MLP | 7.0 | 0.35 |
| Qwen3.5 | 256 | 8 | 512 | 2048 | 40 | shared expert | 7.0 | 0.47 |
| OLMoE | 64 | 8 | 1024 | 2048 | 16 | – | 7.3 | 0.50 |
| Sampling | |||||||
| Model | Benchmark | Items | Samples | Temperature | Top- | Top- | Max tokens |
| Qwen3-Thinking | GPQA-D | 198 | 4 | 0.6 | 0.95 | 20 | 32,768 |
| IFEval | 541 | 1 | 0.6 | 0.95 | 20 | 32,768 | |
| MMLU-Pro | 1,000 | 1 | 0.6 | 0.95 | 20 | 32,768 | |
| Gemma 4 | GPQA-D | 198 | 4 | 1.0 | 0.95 | 64 | 32,768 |
| IFEval | 541 | 1 | 1.0 | 0.95 | 64 | 32,768 | |
| Routed-expert reads (%) | ||||||
|---|---|---|---|---|---|---|
| Model | Sketch read | Sketch | Exact channels | Recovery | Metadata | Total |
| Qwen3-Thinking | partial | 4.86 | 7.29 | 0.66 | 0.04 | 12.85 |
| partial | 4.86 | 12.30 | 0.63 | 0.04 | 17.83 | |
| full | 7.99 | 20.00 | 0.59 | 0.10 | 28.68 | |
| full | 7.99 | 30.00 | 0.54 | 0.10 | 38.62 | |
| Gemma 4 | partial | 4.78 | 7.49 | 0.54 | 0.03 | 12.84 |
| Sketch read | partial | partial | full | full | full | full |
| Channels computed exactly (%) | 7.0–7.5 | 12.0–12.5 | 20 | 30 | 50 | 70 |
| Reads (% of full model) | 12.8 | 17.8 | 28.7 | 38.7 | 58.6 | 78.5 |
| Batch size | 1 | 4 | 8 |
|---|---|---|---|
| Full model | 75.6 | 229.1 | 359.3 |
| Our reader | 13.9 | 49.9 | 92.3 |
| Share | 18.3% | 21.8% | 25.7% |
| Realized reads (%) | ||||
|---|---|---|---|---|
| Method | Calibrated for (%) | Min | Mean | Max |
| CATS | 53.3 | 51.1 | 52.1 | 53.0 |
| 66.7 | 63.8 | 65.1 | 66.0 | |
| Our reader, calibrated | 12.8 | 11.2 | 11.8 | 12.4 |
| 17.8 | 15.2 | 16.5 | 17.1 | |
| 28.7 | 24.5 | 26.5 | 27.7 | |
| Context before the window | Kept channels | Change | |
|---|---|---|---|
| Question and all 6,000 earlier answer tokens | 9,983 | – | |
| Question and the last 1,000 answer tokens | 11,423 | ||
| Question only | 15,422 | ||
| Start of the answer (different tokens) | 17,283 | ||
| Model | Task | Score | Budget (%) | |||||
|---|---|---|---|---|---|---|---|---|
| Gemma 4 | GPQA-D | Prox, output-scaled | 13 | 16.2 | 54.0 | |||
| Prox | 13 | 6.1 | 51.0 | |||||
| IFEval | Prox, output-scaled | 13 | 23.1 | 63.6 | ||||
| Prox | 13 | 3.5 | 45.8 | |||||
| TEAL | 18 | 0.0 | 7.0 | – | ||||
| OLMoE | BBH | Prox, output-scaled | 13 | 25.4 | 26.1 | = | ||
| Model | Task | Score | Budget (%) | |||||
|---|---|---|---|---|---|---|---|---|
| Gemma 4 | GPQA-D | Prox, output-scaled | 13 | 16.2 | 30.3 | |||
| Prox | 13 | 6.1 | 24.2 | |||||
| IFEval | Prox, output-scaled | 13 | 23.1 | 34.0 | ||||
| Prox | 13 | 3.5 | 16.5 | |||||
| TEAL | 18 | 0.0 | 0.2 | – | ||||
| OLMoE | BBH | Prox, output-scaled | 13 | 25.4 | 25.3 | = | ||
| Prompt | Task | Budget (%) | |||||
|---|---|---|---|---|---|---|---|
| full model | ARC-C | 13 | 49.7 | 50.0 | = | ||
| ARC-E | 13 | 73.9 | 73.2 | = | |||
| HellaSwag | 13 | 75.4 | 74.9 | ||||
| MMLU | 13 | 50.3 | 50.3 | = | |||
| PIQA | 13 | 77.7 | 76.4 | = | |||
| ARC-C | 18 | 51.9 | 51.4 | = | |||
| Prompt | Task | Budget (%) | |||||
|---|---|---|---|---|---|---|---|
| full model | ARC-C | 13 | 49.7 | 50.0 † | = | ||
| ARC-E | 13 | 73.9 | 73.2 † | = | |||
| HellaSwag | 13 | 75.4 | 74.9 † | ||||
| MMLU | 13 | 50.3 | 49.7 | = | |||
| PIQA | 13 | 77.7 | 76.4 † | = | |||
| ARC-C | 18 | 51.9 | 52.8 | = | |||
| At the calibrated budget | At realized reads | |||||
|---|---|---|---|---|---|---|
| Model | Comparisons | Comparisons | ||||
| Qwen3-Thinking | 4 | 4 | ||||
| Qwen3.5 | 3 | 2 | ||||
| OLMoE | 32 | 31 | ||||
| Gemma 4 | 4 | 4 | ||||
| Task | Shots | Metric | Questions | Full model (%) |
|---|---|---|---|---|
| MMLU | 5 | accuracy | 14,042 | 52.71 |
| HellaSwag | 10 | normalized accuracy | 10,042 | 79.40 |
| ARC-E | 0 | accuracy | 2,376 | 78.11 |
| ARC-C | 25 | normalized accuracy | 1,172 | 55.20 |
| PIQA | 0 | accuracy | 1,838 | 79.98 |
| Reads (%) | 13.5 | 18.5 | 28.5 | 38.4 |
|---|---|---|---|---|
| Full sketch, no recovery | 0.553 | 0.277 | 0.107 | 0.051 |
| Full sketch with recovery | 0.488 | 0.245 | 0.096 | 0.047 |
| Partial sketch with recovery | 0.310 | 0.187 | 0.090 | 0.053 |
| Prox’s 4-bit copy, output-scaled top- , recovery | 0.305 | 0.187 | 0.070 | 0.035 |
| Variant at 17.8% of reads (OLMoE, development) | KL |
|---|---|
| Full sketch, no recovery (rotated, top- over all routed experts) | 0.286 |
| Without rotation | 0.348 |
| Fixed share of channels per expert | 0.491 |
| Score from an INT4 copy of the gate projection, same top- | 0.811 |
| Score from TEAL’s input magnitudes, top- inputs | 1.471 |
| Method | Budget (%) | GPQA-D | IFEval | MMLU-Pro |
|---|---|---|---|---|
| Qwen3-Thinking | ||||
| Full model | 100 | 70.8 | 87.8 | 80.5 |
| Our reader | 12.8 | 63.8 | 85.0 | 76.9 |
| 17.8 | 67.3 | 87.2 | 78.2 | |
| 28.7 | 67.9 | 85.4 | 78.6 | |
| 38.7 | 70.8 | 86.1 | 80.3 | |
| Budget | Method | Reads (%) | KL ( ) | Top-1 ( ) |
|---|---|---|---|---|
| Our reader | 12.8 | 0.334 | 0.751 | |
| Prox, calibrated, division tuned on development data | 13.2 | 0.488 | 0.709 | |
| Prox as published, calibrated | 13.7 | 0.462 | 0.723 | |
| HiRE-style gate screen | 12.8 | 1.709 | 0.469 | |
| Our reader | 17.8 | 0.199 | 0.808 | |
| Prox, calibrated, division tuned on development data | 18.3 | 0.298 | 0.774 |
| Batch size | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | |
|---|---|---|---|---|---|---|---|---|---|
| Qwen3-Thinking | |||||||||
| MoE block (ms) | Full model | 3.084 | 5.525 | 8.517 | 11.969 | 18.370 | |||
| Our reader | 1.619 | 2.604 | 3.562 | 5.131 | 9.260 | not measured | |||
| Speedup ( ) | 1.90 | 2.12 | 2.39 | 2.33 | 1.98 | ||||
| Per output token (ms) | Full model | 6.253 | 9.454 | 12.450 | 15.666 | 22.044 | 27.366 | 34.107 | 38.196 |
| Our reader | 4.605 | 6.609 | 7.453 | 8.957 | 12.850 | 19.831 | 28.925 | 38.363 | |
Mixture-of-Experts Inference
Mixture-of-experts inference studies how to run sparsely activated expert models efficiently while preserving their quality.
See all 177 papers