DeepSeek-V4-Flash-0731-RAZOR-230B-A13B-E192of256
DeepSeek-V4-Flash-0731 with a quarter of its routed experts removed by RAZOR, a training-free expert pruning method. Every learned-router MoE layer keeps 192 of its original 256 routed experts, including the multi-token-prediction layers. No gradient updates or recovery training were applied: the retained weights are the base model's own weights.
| Base | This model | |
|---|---|---|
| Routed experts per MoE layer | 256 | 192 |
| Total parameters | ~304B | 230B (215B excluding the MTP module) |
| Active parameters per token | ~13B | ~13B |
| Active experts per token (top-k) | 6 | 6 (unchanged) |
| MoE layers | 43 | 43 (unchanged) |
All 43 MoE layers are pruned to the same budget, including the three
fixed token-ID hash layers (num_hash_layers: 3). Those layers have no learned
router scores, so their keep-sets come from the pipeline's hash-layer policy
rather than from a RAZOR score; see
docs/models.md.
Attention, shared experts, the embedding and the LM head are untouched.
Routed experts are stored in MXFP4 (expert_dtype: fp4), with FP8 shared
experts and UE8M0 scales, matching the base model's storage. Parameter counts
above account for the 4-bit packing.
The other budget is DeepSeek-V4-Flash-0731-RAZOR-156B-A13B-E128of256.
Usage
DeepSeek-V4 does not ship a Jinja chat template. Prompt encoding is handled by
the official reference implementation, which is included in this repository as
encoding/encoding_dsv4.py (copied unmodified from the
base model repository):
from encoding.encoding_dsv4 import encode_messages
prompt = encode_messages([
{"role": "user", "content": "Explain mixture-of-experts routing."}
])
See encoding/README.md for multi-turn, tool calling and reasoning formats, and
the base model repository for the reference inference stack. Loading the FP4
weights requires a runtime that supports the base model's quantized layout.
How the experts were selected
RAZOR asks whether the surviving computation can replace an expert's function, rather than how often or how strongly the expert fires. For a token routed to the set $S$ with normalized weights $w_j$, let $c=\sum_{j\in S} w_j f_j$ be the routed mixture and $r_j=f_j-c$ the consensus residual of expert $j$. Deleting a selected expert $i$ makes the router promote its highest-ranked unselected expert $r$, whose pseudo-weight $w_r$ is its score divided by the original selected score sum. With $\lambda$ the routed-output scale, the exact local output change is
$$ \delta_i=\lambda\lVert c-\tilde c^{-i}\rVert_2 =\lambda,\frac{\lVert w_i r_i - w_r r_r\rVert_2}{1-w_i+w_r}. $$
Scores are aggregated by conditional root mean square over the calibration tokens routed to each expert, and the highest-scoring experts are retained per layer. See the paper for the derivation and the code for the implementation.
Reproducing this checkpoint
Calibration used 32,768-token rows from RazorCal, the 2,048-sample multi-domain corpus released with RAZOR.
pip install razor-moe
razor saliency --model <path-to-DeepSeek-V4-Flash-0731> \
--data data/RazorCal.json --max-len 32768 --out out/sal
razor prune --model <path-to-DeepSeek-V4-Flash-0731> --saliency out/sal \
--method razor --ratio 0.25 --out out/pruned
kept_expert_indices.json is the keep-set manifest this checkpoint was built
from, in the format razor verify expects:
razor verify --pruned . --src <path-to-DeepSeek-V4-Flash-0731>
Selection depends on the calibration draw, so an independent run reproduces the procedure rather than this exact expert set.
Limitations
Expert pruning is lossy. Benchmark retention and predictive fidelity do not guarantee stable generation: the paper reports that responses change in diversity, formatting and termination behaviour even where task accuracy is largely preserved. Evaluate on your own workload before deploying.
This checkpoint was validated by tensor-level checks against the pruning plan. The logprob equivalence gate used for the other backbones was not applicable here, because it renders prompts through a chat template that this model family does not use.
The calibration corpus is multi-domain but finite, so behaviour on domains far from it is not characterised by the released measurements.
License and attribution
This is a derivative of
DeepSeek-V4-Flash-0731,
released under the MIT license, and is distributed under the same license. The
retained weights are the base model's own weights; RAZOR contributes the expert
selection, not new parameters. encoding/ is redistributed unmodified from the
base model repository under its license.
The RAZOR code is Apache-2.0. RazorCal records remain subject to their applicable upstream terms; see data/LICENSE-DATA.
Citation
@misc{song2026razorpruningreplaceableexperts,
title={RAZOR: Pruning Replaceable Experts in LLMs},
author={Mingyang Song and Mao Zheng},
year={2026},
eprint={2609.30465},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2609.30465},
}