Usage
from transformers import AutoModelForCausalLM, AutoTokenizer model_id = "Nickyang/GLM-4.7-Flash-RAZOR-17B-A3B-E32of64"tokenizer = AutoTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained( model_id, dtype="bfloat16", device_map="auto",) messages = [{"role": "user", "content": "Explain mixture-of-experts routing."}]inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, return_tensors="pt",).to(model.device)print(tokenizer.decode(model.generate(inputs, max_new_tokens=256)[0]))
Requires a Transformers build that contains the native glm4_moe_lite
implementation. The checkpoint stores bfloat16 weights in five safetensors
shards.
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 wj, let
c=∑j∈Swjfj be the routed mixture and rj=fj−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 wr is
its score divided by the original selected score sum. With λ the
routed-output scale, the exact local output change is
δi=λ∥c−c~−i∥2=λ
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-GLM-4.7-Flash> \ --data data/RazorCal.json --max-len 32768 --out out/salrazor prune --model <path-to-GLM-4.7-Flash> --saliency out/sal \ --method razor --ratio 0.5 --out out/pruned
kept_expert_indices.json in this repository is the keep-set manifest this
checkpoint was built from, in the format razor verify expects:
razor verify --pruned . --src <path-to-GLM-4.7-Flash>
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.
The calibration corpus is multi-domain but finite, so behaviour on domains far
from it is not characterised by the released measurements. This repository
publishes the 50% expert-removal setting only; the paper also reports 25%.
License and attribution
This is a derivative of GLM-4.7-Flash,
released by Z.ai 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.
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},}