Dedicated Endpoints

Run this model inference on single tenant GPU with unmatched speed and reliability at scale.

Learn more

Get help setting up a custom Dedicated Endpoints.

Talk with our engineer to get a quote for reserved GPU instances with discounts.

README

License: apache-2.0

At a glance

Base modelQwen/Qwen3.5-35B-A3B
FormatBF16
Total params28B
Active / token3B
Experts / layer
Layers
Hidden size
Context
On-disk size57 GB

Which variant should I pick?

VariantFormatLink
Qwen3.5-264BBF16link
Qwen3.5-264B-FP8FP8link
Qwen3.5-264B-W4A16W4A16link
Qwen3.5-28B (this)BF16link
Qwen3.5-35B-EXL3-4bpwEXL3-4bpwlink
Qwen3.5-76BBF16link
Qwen3.5-76B-GGUFGGUFlink
Qwen3.5-88BBF16link
Qwen3.5-99BBF16link
Qwen3.5-99B-GGUFGGUFlink

This is a 20% expert-pruned version of Qwen/Qwen3.5-35B-A3B, produced using the REAP (Router-weighted Expert Activation Pruning) method from the paper "REAP the Experts: Why Pruning Prevails for One-Shot MoE Compression" (ICLR 2026).

The model retains 205 of 256 experts (~80% of original experts) while remaining competitive on standard benchmarks.


What We Did

Method: REAP Layerwise Pruning

REAP prunes MoE experts by scoring each expert's importance using a combination of:

  1. Router gate-values — how often and how strongly the router selects each expert
  2. Expert activation norms — the magnitude of each expert's output contribution

Router logit weights are renormalized to sum to 1 after pruning (critical for maintaining output scale). Pruning is applied layer-by-layer (layerwise mode).

Calibration Data

Observations were collected over a mixed calibration dataset of 1,000 samples per category:

  • theblackcat102/evol-codealpaca-v1 (250 samples)
  • open-r1/Mixture-of-Thoughts[code] (250 samples)
  • open-r1/Mixture-of-Thoughts[math] (250 samples)
  • open-r1/Mixture-of-Thoughts[science] (250 samples)

Max sequence length: 4096 tokens. Angular distance measure for expert similarity.

Pruning Config

ParameterValue
Compression ratio20% (51 experts removed)
Original experts256
Remaining experts205
Pruning methodREAP
Router weight renormalization
Seed42
Calibration samples1,000 total

Benchmark Results

All evaluations run with vLLM (tensor-parallel across 8x RTX 3090), greedy decoding, 0-shot.

Coding (EvalPlus, greedy, 0-shot)

BenchmarkOriginalPruned (20%)Delta
HumanEval (pass@1)76.2%73.2%-3.0%
HumanEval+ (pass@1)72.0%70.1%-1.9%

Multiple Choice / Reasoning (lm-eval, 0-shot, 250 samples/task)

BenchmarkOriginalPruned (20%)Delta
MMLU84.34%80.89%-3.45%
MMLU - Humanities82.40%76.35%-6.05%
MMLU - Social Sciences90.04%88.38%-1.66%
MMLU - STEM81.46%78.88%-2.58%
MMLU - Other84.52%81.05%-3.47%
ARC-Challenge60.00%60.40%+0.40%
ARC-Easy84.00%83.20%-0.80%
BoolQ88.00%89.20%+1.20%
HellaSwag (norm)76.40%75.60%-0.80%
OpenBookQA (norm)45.20%47.20%+2.00%
RTE81.20%82.00%+0.80%
WinoGrande77.20%76.80%-0.40%

Perplexity (WikiText-2, 10k tokens, llama.cpp)

ModelPPL
Original (256 experts)6.83
Pruned 20% (205 experts)9.51

Throughput (4x RTX 3090, TP=4, vLLM, enforce_eager)

Batch SizeOriginal tok/sPruned tok/sSpeedup
112.312.51.02x
437.036.00.97x
874.470.30.95x
1689.386.00.96x

Note: throughput speedup is minimal at this compression level with current vLLM routing overhead. The primary benefit is reduced VRAM footprint.


Memory Footprint

ModelSizeShards
Original~71 GB (bf16)14 safetensors
Pruned 20%~53 GB (bf16)2 safetensors

Usage

python

from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "0xSero/Qwen3.5-35B-A3B-REAP-20pct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [{"role": "user", "content": "Write a quicksort in Python."}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))

With vLLM:

bash

vllm serve 0xSero/Qwen3.5-35B-A3B-REAP-20pct \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.9 \
--max-model-len 32768

Reproducing

bash

git clone https://github.com/cerebras/reap
cd reap
bash scripts/build.sh
python -m reap.layerwise_prune \
--model_name Qwen/Qwen3.5-35B-A3B \
--dataset_name "theblackcat102/evol-codealpaca-v1:250,open-r1/Mixture-of-Thoughts[code]:250,open-r1/Mixture-of-Thoughts[math]:250,open-r1/Mixture-of-Thoughts[science]:250" \
--compression_ratio 0.20 \
--prune_method reap \
--seed 42 \
--renormalize_router_weights true

License & citation

License inherited from the base model.

bibtex

@misc{lasby2025reap,
title = {REAP the Experts: Why Pruning Prevails for One-Shot MoE Compression},
author = {Mike Lasby and Ivan Lazarevich and Nish Sinnadurai and Sean Lie and Yani Ioannou and Vithursan Thangarasa},
year = {2025}, eprint = {2510.13999}, archivePrefix = {arXiv}
}

Sponsors

Made possible by NVIDIA · TNG Technology · Lambda · Prime Intellect · Hot Aisle.

Model provider

0xSero

Model tree

Base

Qwen/Qwen3.5-35B-A3B

Fine-tuned

this model

Modalities

Input

Video, Text, Image

Output

Text

Pricing

Dedicated Endpoints

View details

Supported Functionality

Model APIs

Dedicated Endpoints

Container

More information

Explore FriendliAI today